C# 发生引用完整性约束冲突可为Null FK
我的表中有一个可为null的int作为fk,如下所示。我已经做了FK int?。但是如果我试图用空值保存,会得到一个引用约束错误吗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
[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);