发生了一个引用完整性约束违反Nullable FK
本文关键字:完整性约束 Nullable FK 引用 一个 发生了 | 更新日期: 2023-09-27 18:12:22
在我的表中有一个可空的int作为fk,如下所示。我把FK变成了?但如果我试图保存一个空值得到一个参考约束错误?
[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);
例外:
系统。InvalidOperationException:一个引用完整性约束发生了违规行为:项目的属性值。我在一边的属性值不匹配的测试。投影在另一端。
所以问题是在AutoMapper代码中,我需要以下行
.ForMember(dest => dest.ProductId, opts => opts.MapFrom(src => src.ProductId))
.ForMember(dest => dest.Product, opts => opts.Ignore());