通过设置Id更新EF 4.0中的外键关系时出现问题

时间:2011-05-23 15:12:59

标签: c# sql-server entity-framework entity-framework-4

我正在尝试通过外键更新EntityFramework 4中的外键关系(使用microsoft sql server数据库)。

我使用.Single()加载对象,然后尝试设置为Object.ExampleId(示例表是与C#中的枚举对应的引用表)。然后我在上下文中调用SaveChanges()

这样做在本地工作,但在生产服务器上它失败并且似乎挂起。使用调试语句我将范围缩小到我实际设置Id的行。

我能够通过加载整个Example对象并执行Object.Example = loadedExample而不是Object.ExampleId = exampleId来解决问题。

我的问题是为什么会这样?其他地方我只能通过设置Id来更新关系。这是一种不好的做法吗?

1 个答案:

答案 0 :(得分:1)

问题原来是设置FK id导致实体框架加载具有该id的外键关系的所有成员。在我们的暂存和实时服务器上,该关系中的项目数量要高得多。

这导致请求超时并失败。

解决方案在这里:EF4 and undesired loading of related collection with AddObject