【发布时间】:2019-07-11 09:32:06
【问题描述】:
我正在尝试将数据插入到具有大量 not null 约束的 SQL Server 表中:
CREATE TABLE [dbo].[Customer]
(
[CustomerId] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [varchar](255) NOT NULL,
[LastName] [varchar](255) NOT NULL,
[AddressLine] [varchar](255) NOT NULL,
[City] [varchar](55) NOT NULL,
[StateCode] [varchar](3) NOT NULL,
[ZipCode] [varchar](10) NOT NULL,
CONSTRAINT [PK_Customer]
PRIMARY KEY CLUSTERED ([CustomerId] ASC)
)
EF 代码:
public virtual DbSet<Customer> Customer { get; set; }
modelBuilder.Entity<Customer>(entity =>
{
entity.Property(e => e.FirstName)
.HasMaxLength(255)
.IsRequired()
.IsUnicode(false);
entity.Property(e => e.LastName)
.HasMaxLength(255)
.IsRequired()
.IsUnicode(false);
entity.Property(e => e.AddressLine)
.HasMaxLength(255)
.IsRequired()
.IsUnicode(false);
entity.Property(e => e.City)
.HasMaxLength(55)
.IsRequired()
.IsUnicode(false);
entity.Property(e => e.StateCode)
.HasMaxLength(3)
.IsRequired()
.IsUnicode(false);
entity.Property(e => e.ZipCode)
.HasMaxLength(10)
.IsRequired()
.IsUnicode(false);
});
尝试向表中添加数据时,代码缺少列,因此无法插入到数据库中。不知道这一点,也没有收到“NOT NULL”错误,就像我在 SQL 数据库中看到的那样。如何将 SQL Server 错误报告回 C# ASP.NET MVC 应用程序? ([Required] 属性会起作用,但我想在 C# 中查看 SQL Server 错误)
var source = new Customer();
source.FirstName = "Joe";
source.LastName = "Smith"; // missing Address, City, State, Zip, etc
_context.Customer.Add(source);
SQL Server 中显示的错误:
无法将值 NULL 插入到列“Last”、表“dbo.Customer”中;列不允许空值。插入失败。
如何在 C# ASP.NET MVC 程序中出现这些错误?
【问题讨论】:
-
您是否尝试过运行 EF 迁移?如果您缺少列是因为它们尚未插入数据库中
-
我在 sql server 中检查了我的 dbcontext 文件和数据库,并使用所有列正确播种数据,它们是同步的
-
try...catch... 如果 SQL 抛出此消息,您将能够在您的异常中得到它。
标签: c# entity-framework .net-core asp.net-core-mvc asp.net-core-2.1