1
在代碼下面,客戶可以有多個地址。有一個一對多的關係。我會在地址表中作爲喜歡FK一個名爲「客戶」,而不是「CUSTOMER_ID」字段流利NHibernate:約定/ KeyColumn
我」嘗試添加: .KeyColumn("Customer")
>沒有變化
我試圖用改變ForeignKeyConvention沒有變化。
有什麼想法?
public class CustomerMap : ClassMap<Customer>
{
protected CustomerMap()
{
Id(x => x.Id).Not.Nullable();
Map(x => x.FirstName).Not.Nullable().Length(25);
Map(x => x.LastName);
HasMany<Address>(x => x.Addresses)
.KeyColumn("Customer")
.AsSet()
.Inverse()
.Cascade.AllDeleteOrphan();
}
}
public class AddressMap : ClassMap<Address>
{
public AddressMap()
{
Id(x => x.Id);
Map(x => x.City).Not.Nullable().Length(100);
}
}
public class ForeignKeyReferenceConvention : IHasManyConvention
{
public void Apply(IOneToManyCollectionInstance instance)
{
instance.Key.PropertyRef("EntityId");
}
}
public void DBCreation()
{
FluentConfiguration config = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString("...."))
.Mappings(m =>
m.AutoMappings
.Add(AutoMap.AssemblyOf<Customer>())
.Add(AutoMap.AssemblyOf<Address>()
.Conventions.Setup(c => c.Add<ForeignKeyReferenceConvention>())
)
);
config.ExposeConfiguration(
c => new SchemaExport(c).Execute(true, true, false))
.BuildConfiguration();
}
您的回答不僅僅是回答。目的是匹配一個不是新的數據庫。 –
@ Kris-I是的,對不起,應該是一個評論。順便說一句,我編輯了我的答案,你最有可能混合流利的映射和自動映射的問題。 – cremor