添加这样的新记录时
ContentContacts c2 = new ContentContacts();
c2.updated_user = c2.created_user = loggedUserId;
c2.created_date = c2.updated_date = DateTime.UtcNow;
db.ContentContacts.AddObject(c2);
Run Code Online (Sandbox Code Playgroud)
我越来越
无法将值NULL插入列'main_email_support',表'SQL2008R2.dbo.ContentContacts'; 列不允许空值.INSERT失败.该语句已终止.
但是数据库中的默认值是一个空字符串,如:

为什么我会收到这样的错误?EF不应该说:
"哦,这是一个
null值,所以让我们添加列默认值"
我做了一个小测试,创建了一个具有默认值但不允许空值的列的表.
那么这个SQL语句:
INSERT INTO [Test].[dbo].[Table_1]
([TestText])
VALUES
(null)
Run Code Online (Sandbox Code Playgroud)
给出了这个错误:
消息515,级别16,状态2,行1
无法将值NULL插入列'TestText',表'Test.dbo.Table_1'; 列不允许空值.INSERT失败.
这里的问题是insert指定所有列,也指定具有默认值的列.Insert尝试使用空值更新列.
你有2个选择:
默认值是业务逻辑,因此可以在应用程序的业务层中设置它.
| 归档时间: |
|
| 查看次数: |
3462 次 |
| 最近记录: |