2016-11-16 73 views
0

插入大量相互关联的嵌套对象时,是否最好先创建并坚持内部实体,以尊重外键关系ihps并在层次结构中向上移动,或者是否最好用它们的内部对象创建所有的对象,只保留外部对象?到目前为止,我已经体验到,在实施后者时,实体框架似乎明智地计算出关于关系的首先插入内容。但是有人应该知道的警告吗?第一种方法在我看来是经典的SQL逻辑,而后者似乎更符合实体框架的思想。在实体框架中实现插入语句的方法

回答

0

这完全是关于管理数据损坏的风险并确保数据库有价值。

当您首先持续记录内部记录时,如果外部保存失败,则可能会导致数据错误。根据您的应用需求,孤立的内部记录可能会出现从主要问题到次要问题的任何地方。

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

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

总之:如果内部记录依赖外部,一起保存。如果内在是有意义的,就要根据性能/可读性做出决定。


实例:

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

A HSA(房主协会)没有意义,没有Homeowner s。这些应该一起创建。

显然,使用现有数据时,这些示例很有意思,并且变得微不足道。为了这个问题的目的,我们假设两者都是在同一时间创建的。