NHibernate:如何在所有实体上设置DynamicUpdate?

时间:2013-10-17 11:01:56

标签: nhibernate fluent-nhibernate

如何在我的所有实体上设置DynamicUpdate和DynamicInsert?

当我将它与我的映射代码放在一起时它完美地工作,但我想为我的整个项目只指定一次。

创建会话或在配置中找不到选项。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

我使用流利的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();

答案 1 :(得分:2)

使用按代码映射时,其简单如下: -

var mapper = new ModelMapper();

mapper.BeforeMapClass += (mi, t, map) =>
    {
        map.DynamicUpdate(true);
        map.DynamicInsert(true);
    };

...

请确保通过类映射将其从所有类中删除,因为它们将覆盖此约定。

如果你想要覆盖任何类定义,那么你也可以使用

来完成
mapper.AfterMapClass += (mi, t, map) => { ... }
相关问题