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

Entity framework EF 4.3.1添加如何影响已存在的相关实体,entity-framework,entity-framework-4,Entity Framework,Entity Framework 4,想象一下这个图表: 设备1..*操作环境1..*网络端点 如果我在内存中构建一个分离的实体图,并且当OperatingEnvironment存在且NetworkedPoint存在但被分配到不同的OperatingEnvironment时,图根处的设备是新的,EF会解决所有这些问题吗 当我说“弄明白这一点”时,它只是一个遍历图并执行(IfExist?MergeValues:AddNew)的例子,因为实体都有外键,所以在属性合并期间,关系应该有效地自动重新分配 这就是EF的工作原理,还是我必须走我自

想象一下这个图表:

设备1..*操作环境1..*网络端点

如果我在内存中构建一个分离的实体图,并且当OperatingEnvironment存在且NetworkedPoint存在但被分配到不同的OperatingEnvironment时,图根处的设备是新的,EF会解决所有这些问题吗

当我说“弄明白这一点”时,它只是一个遍历图并执行(IfExist?MergeValues:AddNew)的例子,因为实体都有外键,所以在属性合并期间,关系应该有效地自动重新分配

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


谢谢-希望一切都像泥一样清晰。

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

同时,我做了后者。弱链接图,手动漫游并使用我为维护CreatedDate stamps.Cool而编写的特殊ApplyCurrentValues扩展进行更新/添加。很高兴知道我没有浪费时间:)