作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 .NET Core (6.0.1) API,它是使用 EF Core (6.0.1) 的数据库优先方法构建的。每当我尝试 POST 到特定实体时,我都会收到实体中导航属性之一的“需要字段”错误。我还有其他几个以类似方式构建的实体,它们似乎工作正常,但这个实体给我带来了问题,我无法弄清楚。有什么想法吗?
来自 DBContext:
modelBuilder.Entity<InsuranceCompanyStatus>(entity =>
{
entity.HasKey(e => e.InsCoStatusId);
entity.ToTable("InsuranceCompanyStatus");
entity.Property(e => e.InsCoStatusId).HasColumnName("InsCoStatusID");
entity.Property(e => e.InsuranceCompanyId).HasColumnName("InsuranceCompanyID");
entity.Property(e => e.State)
.HasMaxLength(2)
.IsUnicode(false)
.IsFixedLength();
entity.HasOne(d => d.InsuranceCompany)
.WithMany(p => p.InsuranceCompanyStatuses)
.HasForeignKey(d => d.InsuranceCompanyId)
.HasConstraintName("FK_InsuranceCompanyStatus_InsuranceCompanies");
});
脚手架模型:
public partial class InsuranceCompanyStatus
{
public int InsCoStatusId { get; set; }
public Guid InsuranceCompanyId { get; set; }
public string State { get; set; } = null!;
public bool Admitted { get; set; }
public bool? Approved { get; set; }
public virtual InsuranceCompany InsuranceCompany { get; set; } = null!;
}
来自尝试的 POST 正文的 JSON:
{
"insuranceCompanyId": "caa3e956-a3be-4670-83e3-53a6ec47731e",
"state": "AL",
"admitted": true,
"approved": true
}
错误响应状态为400:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "00-cf1de6fe8e4fb67a04ff7d4c8b6a1c68-f426059123424d72-00",
"errors": {
"InsuranceCompany": [
"The InsuranceCompany field is required."
]
}
}
最佳答案
您必须创建可为空的 InsuranceCompanyId
public partial class InsuranceCompanyStatus
{
public int InsCoStatusId { get; set; }
....
public Guid? InsuranceCompanyId { get; set; }
public virtual InsuranceCompany InsuranceCompany { get; set; } // = null!; you don't need it , it is null by default
}
它通常有效,但如果仍然无效,您可以在 fluent appi 中显式添加它
modelBuilder.Entity<InsuranceCompanyStatus>(entity =>
{
.....
entity.Property(e => e.InsuranceCompanyId).IsOptional();
关于c# - 如何解决 .NET Core with EF Core 必填字段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70551158/
在使用网站、加载内容等一段时间后,此消息显示“Fill:SelectCommand.Connection 属性尚未初始化”!我认为这是因为 sql 连接,但不确定......我想知道我能做些什么来防止
我是一名优秀的程序员,十分优秀!