想象一下这张图:
设备 1..* OperatingEnvironment 1..* NetworkEndpoint
如果我在内存中构造一个分离的实体图,并且图根部的设备是新的,而 OperatingEnvironment 存在并且 NetworkEndpoint 存在但被分配给不同的 OperatingEnvironment,EF 会解决这一切吗?
当我说“解决这个问题”时,它只是走图并执行 (IfExist ? MergeValues : AddNew) 因为实体都有外键,所以在属性合并期间应该有效地自动重新分配关系。
这是 EF 的工作方式,还是我必须走自己的图表并应用这个逻辑?如果我这样做,那么我的内存图将必须是弱链接的,即避免通过导航属性链接,而是使用外键值,否则一旦我添加一个实体就会添加整个图,因为 EF 将抓取导航属性。
谢谢-希望那是泥泞的。