为复杂实体定义导航属性的官方方法是:
public class SuperEntity
{
public int Id { get; set; }
//Other properties
}
public class LowerEntity
{
public int Id { get; set; }
public int SuperEntityId { get; set; }
public virtual SuperEntity SuperEntity { get; set; }
//Other properties
}
这里的主要内容是引用的类(允许导航到链接的超级实体)具有两个public SuperEntity SuperEntity { get; set; }
属性,以及它的 Id in public int SuperEntityId { get; set; }
。
我已经花了几天时间进行实体设计,省略了 public int SuperEntityId { get; set; }
“较低实体”中的属性。所以我只通过虚拟 SuperEntity 属性导航。一切正常!但是我有人告诉我它在数据库中创建了一个过多的表。我查过了,这不是真的。当我使用我的方法时,数据库表具有 SuperEntityId 列,并自动使用引用的实体 ID 填充它。那么这个public int SuperEntityId { get; set; }
领域有什么意义呢?
或者,也许,我正在做的事情在 EF 的“新”版本(如 4.3)中可用?