2
我是一個n00b。這是我想要做的:FluentMapping自動翻拍功能對我來說似乎不太適用
使用AutoMapping配置模型 - >表之間的每個屬性。然後我想在流利的地圖中覆蓋2個特定的項目。這兩個項目是:Id &表名稱。
所以,我的地圖看起來就像這樣:
public class BillMasterMap : ClassMap<BillMaster>
{
public BillMasterMap()
{
Table("BILLMAST");
Id(x => x.SYSKEY);
}
}
而且我出廠設置是這樣的:
public static ISessionFactory SessionFactory(string connectionString)
{
if (_sessionFactory == null)
{
_sessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005.ShowSql()
.ConnectionString(c => c.Is(connectionString)).Cache(c => c.UseQueryCache().ProviderClass<HashtableCacheProvider>()))
.Mappings(m =>
m.AutoMappings.Add(AutoMap.AssemblyOf<BillMaster>()
.Where(x => x.Namespace.EndsWith("Entities"))))
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<BillInvoiceMap>())
.BuildSessionFactory();
}
return _sessionFactory;
}
的問題是,FNH找到ID覆蓋了BillMaster,而不是BillInvoice這看起來像這樣(看起來相同)
public class BillInvoiceMap : ClassMap<BillInvoice>
{
public BillInvoiceMap()
{
Id(x => x.SYSKEY);
Table("BILLINV");
}
}
我已經解決了這個問題,通過配置(如下圖)我的設置自動映射:
.Mappings(m =>
m.AutoMappings.Add(AutoMap.AssemblyOf<BillMaster>()
.Setup(s => s.FindIdentity = property => property.Name == "SYSKEY")
.Where(x => x.Namespace.EndsWith("Entities"))))
但我想其他的表格不使用「SYSKEY」作爲自己的標識柱結合汽車&流暢。
想法?這是一個FNH錯誤嗎?