实体映射中的NHibernate级联设置是静态的。有没有办法在代码中动态禁用“层叠”设置,以避免在大型数据事务期间在NHiberate中进行昂贵的层叠操作?我们不想使用存储过程或原生SQL,因为我们需要通过NHibernate (审计)捕获实体更改。
发布于 2010-03-24 05:48:27
无法动态禁用级联。
您可以使用StatelessSession。
但是如果你有时在一个特定的关系中不需要级联(-),那就不要设置它。Cascade是一个很好的特性,但它不是所必需的。
发布于 2011-06-14 15:06:46
您可以使用映射和拦截器构建一个新的会话工厂,但修改映射以禁用级联
var config = BuildConfiguration();
var classmapping = config.GetClassMapping("myentity");
classmapping.GetProperty("myprop").Cascade = "none";
var bulkinsertSf = config.BuildSessionFactory();
https://stackoverflow.com/questions/2499749
复制相似问题