EF Core多个自定义外键

时间:2018-03-13 13:43:40

标签: c# entity-framework ef-code-first entity-framework-core ef-fluent-api

我首先使用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列放在我的数据库中..

如果有人可以帮我搞清楚,那就太好了! 谢谢你的帮助。

0 个答案:

没有答案