【问题标题】:Problem updating foreign key relationship in EF 4.0 by setting Id通过设置 Id 在 EF 4.0 中更新外键关系时出现问题
【发布时间】:2011-05-23 15:12:59
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 不,这不是坏习惯——一旦 FK 暴露,你应该使用它们来设置关系。一定有别的东西。在你的开发中。机器使用 SQL 探查器并检查分配 Id 时是否存在延迟加载。

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


【解决方案1】:

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

这导致请求超时并失败。

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

【讨论】:

  • 你找到解决方案了吗?
猜你喜欢
  • 1970-01-01
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-21
  • 2013-10-24
相关资源
最近更新 更多