C# 发生引用完整性约束冲突可为Null FK

C# 发生引用完整性约束冲突可为Null FK,c#,.net,entity-framework,foreign-keys,C#,.net,Entity Framework,Foreign Keys,我的表中有一个可为null的int作为fk,如下所示。我已经做了FK int?。但是如果我试图用空值保存,会得到一个引用约束错误吗 [Table("Tests")] public class Tests : BaseEntity { [MaxLength(255)] public virtual string TestName { get; set; } public virtual int? ProjectId { get; set; } [F

我的表中有一个可为null的int作为fk,如下所示。我已经做了FK int?。但是如果我试图用空值保存,会得到一个引用约束错误吗

  [Table("Tests")]
  public class Tests : BaseEntity 
  {
    [MaxLength(255)]
    public virtual string TestName { get; set; }

    public virtual int? ProjectId { get; set; }

    [ForeignKey("ProjectId")]
    public virtual Project Project { get; set; }
  }       

 [Table("Project")]
  public class Project : BaseEntity
  {
    [Required, MaxLength(100)]
    public virtual string Name { get; set; }

    [Required, MaxLength(200)]
    public virtual string Type { get; set; }
  }

  public class BaseEntity 
  {
    [Key, Required]
    public virtual int Id { get; set; }

    [Required]
    public virtual DateTime CreatedDate { get; set; }
  }

  _testsRepo.InsertOrUpdateAndGetId(test);
例外情况:

System.InvalidOperationException:引用完整性约束 发生冲突:一端的“Project.Id”属性值为 关系的属性值与的属性值不匹配 另一端是“Tests.projectd”


所以问题出在AutoMapper代码中,我需要下面一行

.ForMember(dest => dest.ProductId, opts => opts.MapFrom(src => src.ProductId))
.ForMember(dest => dest.Product, opts => opts.Ignore());

你能显示全部异常吗?你能同时显示
项目
模型的代码吗?我的理解是使fk成为int?应该是所有需要的,并且还需要显示
Save
方法的代码吗?它使用一个repo模式,我没有源代码,但我称之为_testsRepo.InsertOrUpdateAndGetId(tests);