【问题标题】:Entity Framework Code First Data Annotations: Self Referencing实体框架代码优先数据注释:自引用
【发布时间】:2013-12-18 18:34:49
【问题描述】:

当我使用简单的主从关系时

public class Master
{
  public long ID { get; set; }
  public virtual Detail Detail { get; set; }
}

public class Detail
{
  public long ID { get; set; }
}

Code First 创建了我期望的数据模型:外部主表引用内部细节。当我以某种方式更改它时,Master 引用了自己

public class Master
{
  public long ID { get; set; }
  public virtual Master Inner { get; set; }
}

Code First 创建一个数据模型,其中内部主机引用外部主机。为什么在这种情况下实体框架的行为会有所不同?我可以用数据注释来纠正这个问题(避免使用流利的 api)吗?

【问题讨论】:

标签: entity-framework ef-code-first


【解决方案1】:

实体框架工作正常。您可以通过添加 Value 属性来查看:

public class Master
{
  public long ID { get; set; }
  **public string Value { get; set; }**
  public virtual Master Inner { get; set; }
}

Entity Framework 所做的所有事情都是颠倒对象的顺序。根对象有 最高的 id 而最内部的对象是以 ID = 0 开头的对象。(考虑一下, EF 这样做的原因很明显)。

所以,我只是误解了数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 2014-05-23
    相关资源
    最近更新 更多