如何合并SQL Server和NHibernate之间的级联更新/删除?
时间:2020-03-06 15:04:23 来源:igfitidea点击:
我正在编写带有手工域模型(类)和手工数据模型(表/关系)的应用程序,并让NHibernate处理映射。
最好是告诉数据库执行级联更新或者删除,还是告诉NHibernate执行级联(cascade =" all-delete-orphan")?他们俩可以同时设置吗?
解决方案
我更喜欢让NHibernate为我做这件事。设置起来更容易,并且效果很好。
级联:如果没有触发器,all-delete-orphan是无法在SQL中完成的,所以还有另一个原因
Can they both be set up to do it at the same time?
我认为,如果我们尝试这样做,可能会引起NHibernate的抱怨,因为大多数操作都会检查行数,以确保插入/更新/删除了预期的行数。
正如Ben所说,让NHibernate做到这一点。
最终,NHibernate(通常是ORM)使我们将数据库视为一种存储和检索机制。我们仍然想要创建约束,主键,外键和索引,但是ORM仍应遵守这些规则。
与任何数据访问场景一样,如果我们发现自己在数据库中创建了复杂的约束,那么请记住,这些规则将必须在应用程序中重复。