实体框架数据库优先:如何添加属性到一个模型,将引用自己?



我正在尝试创建一个Product表,该表将有一个SubstitutionProducts列表,应该从同一表中引用其他Product

模型示例:

public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsMissing { get; set; }
public ICollection<Product> SubstitutionProducts { get; set; } 
}

最好在模型中包含父ID:

public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public bool IsMissing { get; set; }
public int? ParentId { get; set; }
public Product Parent { get; set; }
public ICollection<Product> SubStitutionProducts { get; set; }
}

这是如何通过覆盖你的DbContext的OnModelCreatingmethod来配置DB模式:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{

modelBuilder.Entity<Product>().HasOne(x => x.Parent)
.WithMany(x => x.SubStitutionProducts)
.HasForeignKey(x => x.ParentId).IsRequired(false);
}

相关内容

  • 没有找到相关文章

最新更新