0

想象一下这张图:

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

如果我在内存中构造一个分离的实体图,并且图根部的设备是新的,而 OperatingEnvironment 存在并且 NetworkEndpoint 存在但被分配给不同的 OperatingEnvironment,EF 会解决这一切吗?

当我说“解决这个问题”时,它只是走图并执行 (IfExist ? MergeValues : AddNew) 因为实体都有外键,所以在属性合并期间应该有效地自动重新分配关系。

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

谢谢-希望那是泥泞的。

4

1 回答 1

1

你必须自己做。EF 没有内部逻辑来检测实体是否存在于数据库中。

于 2012-06-26T08:30:10.277 回答