0
使用实体框架流利的配置有同样的表现方式,我会带属性做到这一点如何配置:如何将导航属性配置为实体框架中的同一张表?
public class Product
{
public int? ParentId { get; set; }
[ForeignKey("ParentId")]
public virtual Product Parent { get; set; }
}
使用实体框架流利的配置有同样的表现方式,我会带属性做到这一点如何配置:如何将导航属性配置为实体框架中的同一张表?
public class Product
{
public int? ParentId { get; set; }
[ForeignKey("ParentId")]
public virtual Product Parent { get; set; }
}
假设你想创建一个自参照实体,我假设你有一个Product
类像这样:
public class Product
{
public int Id { get; set; }
public int? ParentId { get; set; }
public virtual Product Parent { get; set; }
}
在上下文,你需要实现OnModelCreating
方法,以配置自我参考。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Product>().
HasOptional(e => e.Parent).
WithMany().
HasForeignKey(m => m.ParentId);
}
其实我试过了。它会导致另一个错误:导航属性'Parent'不是'Product'类型的声明属性。验证它是否未明确从模型中排除,并且它是有效的导航属性。 有什么建议吗? – 2015-01-15 18:48:53
它适用于我在我的答案中显示的相同产品类的情况。你是否以同样的方式声明了Parent属性? – octavioccl 2015-01-15 19:29:42
Hello @ChrisKlingsater,我看到你发布了一个关于该问题的新问题,你是否通过Parent属性删除了外键属性?尽量不要将Fluent Api与Data Annotations合并,这不是一个好的做法 – octavioccl 2015-01-15 20:44:00