我試圖讓自己的ID遵循這個簡單的規則來改變一個約定:產品代碼,CustomerCode,OrderCode等等等等
我已經找到了一種簡單的方法來做到這一點添加約定:FluentNhibernate和參考
public class PrimaryKeyNameConvention : IIdConvention
{
public void Apply(FluentNHibernate.Conventions.Instances.IIdentityInstance instance)
{
instance.Column(instance.EntityType.Name + "Code");
}
}
現在我已經得到了我想要的東西,但似乎FluentNhibernate拒絕申請與列引用我的主鍵相同的規則。 EX:我的表客戶將有一個名爲PK CustomerCode但我的表訂購將有一個參考列名爲CUSTOMER_ID。 我試過不同的方式重命名列Customer_Id在CustomerCode(表訂購),但似乎沒有任何工作正常。 這似乎工作的唯一解決辦法是增加一個慣例是這樣的:
public class ReferenceConvention : IReferenceConvention
{
public void Apply(FluentNHibernate.Conventions.Instances.IManyToOneInstance instance)
{
instance.Column(instance.Property.PropertyType.Name + "Code");
}
}
但現在FluentNhibernate創建其中引用我的主鍵的兩列:CostumerCode和CUSTOMER_ID。
我搞不清楚我做錯了什麼。 任何幫助將被折衷。
問候,
阿爾貝託
謝謝詹姆斯, 它的工作。 我已經應用了這兩個約定,它按預期工作: PrimaryKeyNameConvention + ForeignKeyConvention Alberto – LeftyX 2010-08-17 09:19:48