实体映射中的NHibernate级联设置是静态的。反正是否有动态禁用代码中的“级联”设置,以避免在庞大的数据事务期间NHiberate中的昂贵级联操作?我们不想使用存储过程或本机SQL,因为我们需要让NHibernate捕获实体更改(审计)。
答案 0 :(得分:0)
答案 1 :(得分:0)
你可以使用你的映射和拦截器建立一个新的sessionfactory但是改变映射以禁用级联
var config = BuildConfiguration();
var classmapping = config.GetClassMapping("myentity");
classmapping.GetProperty("myprop").Cascade = "none";
var bulkinsertSf = config.BuildSessionFactory();