EF 4.3.1添加如何影响已存在的相关实体

时间:2012-06-25 15:37:57

标签: entity-framework entity-framework-4

想象一下这张图:

设备1 .. * OperatingEnvironment 1 .. * NetworkEndpoint

如果我在内存中构建一个分离的实体图,并且当操作环境存在且NetworkEndpoint存在但是被分配给不同的OperatingEnvironment时,图的根处的Device是新的,那么EF会将所有这些都计算出来吗?

当我说'搞清楚'时,它只是一个走图形并做(IfExist?MergeValues:AddNew)的情况因为实体都有外键,所以在属性合并期间应该有效地自动重新分配关系。

这是EF的工作原理还是我必须走自己的图并运用这个逻辑?如果我这样做,那么我的内存中的图形必须是弱链接的,即避免通过导航属性链接而是使用外键值,否则整个图形将被添加为我添加一个实体,因为EF将抓取导航属性。

谢谢 - 希望这很清楚。

1 个答案:

答案 0 :(得分:1)

您必须do it yourselves。 EF没有内部逻辑来检测实体是否存在于数据库中。