我正在努力解决这个问题,尽管在SO上有很多关于它的线索。
我有一个类可以为DateTime?
这样的字段:
public class ActiveItem
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public Nullable<DateTime> TimeStarted { get; set; }
public Nullable<DateTime> LastHeard { get; set; }
}
我有一个数据库模式定义为:
CREATE TABLE [dbo].[ActiveItems] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[TimeStarted] DATETIME NULL,
[LastHeard] DATETIME NULL,
CONSTRAINT [PK_ActiveWorkflows] PRIMARY KEY CLUSTERED ([ID] ASC)
);
然后我尝试保存ActiveItem
,其中TimeStarted
和LastHeard
为空。但是,当我尝试这样做时,我收到以下错误:
&#34;无法将值NULL插入列&#39; TimeStarted&#39;,table&#39; dbo.ActiveItems&#39 ;;列不允许空值。 INSERT失败。\ r \ n语句已终止。&#34;
我似乎无法解决这个问题。
奇怪的是,我可以登录到SQL服务器并在表中创建一个具有空值的行。这个实体框架搞砸了吗?
答案 0 :(得分:1)
确保您使用Profiler访问正确的数据库do a SQL Trace。
如果约束违规与您所期望的(在架构方面)与您正在访问其他数据库的内容不一致,则可能发生这种情况。
然后,将用于连接Entity Framework的连接字符串更新为正确的数据库。