我首先使用EF Core代码。
我有这两个实体:
public class BOM
{
[Key]
public Guid IdBOM { get; set; }
public Guid IdArticleCompound { get; set; }
public Article ArticleCompound { get; set; }
public Guid IdArticleComponent { get; set; }
public Article ArticleComponent { get; set; }
}
public class Article
{
[Key]
public Guid IdArticle { get; set; }
##############
#other fields#
##############
public ICollection<BOM> BOMComponents { get; set; }
public ICollection<BOM> BOMCompounds { get; set; }
}
流畅的API:
modelBuilder.Entity<BOM>(entity =>
{
entity.Property(e => e.IdBOM).ValueGeneratedOnAdd();
entity.HasOne(m => m.ArticleCompound).WithMany(t => t.BOMCompounds).HasForeignKey(m => m.IdArticleCompound).OnDelete(DeleteBehavior.Restrict);
entity.HasOne(m => m.ArticleComponent).WithMany(m => m.BOMComponents).HasForeignKey(m => m.IdArticleComponent).OnDelete(DeleteBehavior.Restrict);
});
一篇文章可以有多个BOM行,其中他是一个组件,一篇文章可以作为一个化合物存在于多个BOM行中。
当我更新我的数据库时,除了id列(IdArticleCompound,IdArticleComponent)之外,它还会创建2列(ArticleCompound,ArticleComponent) 我尝试了很多东西来映射这两个海关外国钥匙,但我不能让它工作。我只想将id列放在我的数据库中..
如果有人可以帮我搞清楚,那就太好了! 谢谢你的帮助。