如何在SQL Server和NHibernate之间组合级联更新/删除?

时间:2008-10-03 12:59:53

标签: sql-server nhibernate entity-relationship database-relations

我正在编写一个带有手工制作的域模型(类)和手工制作的数据模型(表/关系)的应用程序,并让NHibernate负责映射。

最好告诉数据库执行级联更新或删除,还是告诉NHibernate这样做(cascade =“all-delete-orphan”)?它们可以同时设置吗?

2 个答案:

答案 0 :(得分:1)

我更愿意让NHibernate为我做这件事。设置起来比较容易,而且效果很好。

cascade:all-delete-orphan是没有触发器你在SQL中无法做到的事情,所以还有另一个原因

答案 1 :(得分:0)

  

他们俩可以同时设置吗?

我想如果你尝试的话,你可能会让NHibernate抱怨,因为它的大部分操作会检查行数以确保插入/更新/删除预期的行数。

正如Ben所说,让NHibernate去做。

最终,NHibernate(以及一般的ORM)让您将数据库视为存储和检索机制。您仍然希望创建约束,主键,外键和索引,但ORM仍应遵守这些规则。 与任何数据访问场景一样,如果您发现自己在数据库中创建了复杂的约束,请记住这些规则必须在您的应用程序中重复。