【发布时间】: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