【问题标题】:Entity Framework POCO - Navigation Property does not refresh实体框架 POCO - 导航属性不刷新
【发布时间】:2012-11-06 17:42:51
【问题描述】:

我对 EF 4 中的 poco 类有疑问。

我有一个 Order 实体,其中包含一个 Customer 实体的外键。

因此,Order 类有一个 Customer 类型的导航属性。

看起来像这样:

public class Order
{
     public virtual int Id { get; set; }
     public virtual CustomerId  { get; set; }
     public virtual Customer customer { get; set;}
     …
}

当我加载订单时,导航属性customer是正确的,但是如果CustomerId属性发生变化,导航属性不会随着新客户刷新。

如果我在 EF 上下文中调用 DetectChanges() 方法,则会刷新导航属性。

我读过所有属性都标记为虚拟,关系同步是自动的,但这里不是这样。

我哪里做错了?

感谢您的帮助

【问题讨论】:

  • 我刚刚对此进行了测试,对我来说它按预期工作。你能显示更多细节吗?您正在运行的查询和后续代码,直到您更改 FK 属性、您正在使用的确切 EF 版本以及是否为 ObjectContext 或 DbContext 等。如果加载的订单和客户是动态代理,请在调试器中检查。

标签: entity-framework poco navigation-properties


【解决方案1】:

这意味着由于某种原因没有为您的实体创建代理。看看这篇博文 - http://blogs.msdn.com/b/adonet/archive/2009/12/22/poco-proxies-part-1.aspx。以下是创建代理的要求:http://msdn.microsoft.com/en-us/library/vstudio/dd468057(v=vs.100).aspx。不得禁用代理创建。

【讨论】:

  • 感谢这些有用的链接。它帮助我更好地理解代理的使用,并检查我的代码中可能出现的问题。最后,问题来自另一个导航属性,它没有很好地实现。
猜你喜欢
  • 2011-04-19
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-27
  • 2016-03-29
  • 2016-05-29
相关资源
最近更新 更多