我正在编写一个带有手工制作的域模型(类)和手工制作的数据模型(表/关系)的应用程序,并让NHibernate负责映射。
最好告诉数据库执行级联更新或删除,还是告诉NHibernate这样做(cascade =“all-delete-orphan”)?它们可以同时设置吗?
答案 0 :(得分:1)
我更愿意让NHibernate为我做这件事。设置起来比较容易,而且效果很好。
cascade:all-delete-orphan是没有触发器你在SQL中无法做到的事情,所以还有另一个原因
答案 1 :(得分:0)
他们俩可以同时设置吗?
我想如果你尝试的话,你可能会让NHibernate抱怨,因为它的大部分操作会检查行数以确保插入/更新/删除预期的行数。
正如Ben所说,让NHibernate去做。
最终,NHibernate(以及一般的ORM)让您将数据库视为存储和检索机制。您仍然希望创建约束,主键,外键和索引,但ORM仍应遵守这些规则。 与任何数据访问场景一样,如果您发现自己在数据库中创建了复杂的约束,请记住这些规则必须在您的应用程序中重复。