如何在所有實體上設置DynamicUpdate和DynamicInsert?NHibernate:如何在所有實體上設置DynamicUpdate?
當我將其與我的映射代碼放在一起時,它完美地工作,但我想只爲我的整個項目指定一次。
我在創建會話或配置時找不到選項。
任何想法?
如何在所有實體上設置DynamicUpdate和DynamicInsert?NHibernate:如何在所有實體上設置DynamicUpdate?
當我將其與我的映射代碼放在一起時,它完美地工作,但我想只爲我的整個項目指定一次。
我在創建會話或配置時找不到選項。
任何想法?
我用流利的NHibernate的,所以我會改變他們是這樣的:
var fluentConfiguration = Fluently.Configure(NHibernate.Cfg.Configuration().Configure())
.Mappings(m =>
m.FluentMappings
.AddFromAssemblyOf<OrderMap>()
.Conventions.AddFromAssemblyOf<PascalCaseColumnNameConvention>())
.ProxyFactoryFactory("NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate");
var config = fluentConfiguration.BuildConfiguration();
foreach(PersistentClass persistentClass in config.ClassMappings)
{
persistentClass.DynamicUpdate = true;
}
var sessionFactory = config.BuildSessionFactory();
當使用映射,通過編碼其像這樣簡單: -
var mapper = new ModelMapper();
mapper.BeforeMapClass += (mi, t, map) =>
{
map.DynamicUpdate(true);
map.DynamicInsert(true);
};
...
只要確保你刪除它從所有的類通過類映射,因爲它們將覆蓋這個約定。
剛剛完成,如果你想覆蓋類的定義,那麼你也可以使用
mapper.AfterMapClass += (mi, t, map) => { ... }
你讀我的心,我使用功能NHibernate一樣,所以這個完美的作品。 – Tejo
這個方法也適用於普通的vanilla NHibernate,因爲它修改了'Configuration'。另一個更流利的NHibernate類型選項將是創建一個IClassConvention。 –