2011-10-04 39 views
0

外鍵上的映射使用錯誤的名稱。爲什麼?流利的nHibernate - 錯誤的列名稱,當自引用時

這裏是我的課:

屬性的順序似乎是重要

public class Person 
{ 
    public virtual Person Mother { get; set; } 
    public virtual IList<Item> Items { get; set; } 
    public virtual Person Father { get; set; } 
} 
public class Item 
{ 
    public virtual string Name { get; set; } 
} 

這裏的用流利的NHibernate的

AutoMap.AssemblyOf<Person>(new CustomAutomappingConfiguration()) 

的映射。當我看向數據庫,表中的外鍵似乎是第一個屬性類型的名稱Person後物業項目。這裏的生成創建表的SQL:

CREATE TABLE "Item" (Id integer primary key autoincrement 
    , Name TEXT 
    , Father_id BIGINT 
    , constraint FKC57C4A2B4586680 foreign key (Father_id) references Patient) 

預先感謝您的幫助;)

回答

0

我已經找到了解決辦法是重寫這樣的configuraton:

AutoMap.AssemblyOf<Person>(new CustomAutomappingConfiguration()) 
    .Override<Person>(m => m.HasMany<Item>(x => x.Items).KeyColumn("Patient_Id")) 

是否存在任何讓自動映射無縫工作的解決方案?以及Fluent nHibernate如何選擇外鍵列的名稱?