在实体框架中为插入语句实现什么方法

时间:2016-11-16 22:53:58

标签: entity-framework

当插入大量相互关联的嵌套对象时,最好先创建并保持内部entites以尊重外键关系并在层次结构中向上移动,或者最好用内部对象创建所有对象并坚持只有外层物体?到目前为止,我已经体验到,在执行后者时,实体框架似乎在智能地确定首先要插入关于关系的内容。但有人应该注意一个警告吗?第一种方法在我看来是经典的SQL逻辑,而后者似乎更符合实体框架的概念。

1 个答案:

答案 0 :(得分:0)

一切都是为了管理数据损坏的风险并确保数据库的价值。

当您首先保留内部记录时,如果外部保存失败,您可能会遇到错误数据的可能性。根据您的应用需求,孤立的内部记录可能是从主要问题到轻微烦恼的任何地方。

当您将所有内容保存在一起时,如果单个记录失败,则整个保存将失败。

当然,如果内部记录在没有外部记录的情况下有意义(同样由您的业务需求决定),那么您可能会阻止应用程序的进展。

简而言之:如果内部记录依赖于外部,则保存在一起。如果内在是有意义的,请根据性能/可读性做出决定。

示例:

House的含义没有Homeowner。单独创建House是可以接受的。

HSA(房主协会)在没有Homeowner的情况下没有意义。这些应该一起创建。

显然,这些例子在使用现有数据时是人为的,并且变得微不足道。出于这个问题的目的,我们假设两者都是同时创建的。