今天在给EF模型中设置一对一关系报错:

EntityFramework 模型生成过程中检测到一个或多个验证错误: 多重性与关系“tableA”中 Role“tableB”中的引用约束冲突。因为 Dependent Role 中的所有属性都不可以为 null,Principal Role 的多重性必须为“1”。

如果表中的外键id设置为可选(HasOptional)的,必须设置可为null的类型,即int?或Null<int>,如下:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{  
    modelBuilder.Entity<Inf_News>().HasOptional(m => m.Matches).WithMany().HasForeignKey(n => n.match_id);
       
    modelBuilder.Entity<Matches>().HasOptional(m => m.Inf_News).WithMany().HasForeignKey(n => n.news_id);
 
    base.OnModelCreating(modelBuilder);
}

对应Model分别为

    public partial class Inf_News
    { 
        public int? match_id { get; set; }
    }

    public partial class Matches
    {
       public int? news_id { get; set; }
    }
赞(0) 踩(0)

与本文相关的软件

发表我的评论

最新评论

  1. 暂无评论