Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法在“收件人”字段(日期时间)中插入空值_C#_Sql Server_Entity Framework_Datetime - Fatal编程技术网

C# 无法在“收件人”字段(日期时间)中插入空值

C# 无法在“收件人”字段(日期时间)中插入空值,c#,sql-server,entity-framework,datetime,C#,Sql Server,Entity Framework,Datetime,我正在努力解决这个问题,尽管有很多关于它的线索 我有一个类,它有一个可为空的DateTime?字段,如下所示: public class ActiveItem { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int ID { get; set; } public Nullable<DateTime> TimeStarted { get; set;

我正在努力解决这个问题,尽管有很多关于它的线索

我有一个类,它有一个可为空的
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; }
}
然后我尝试保存一个
ActiveItem
,其中
TimeStarted
lasthread
为空。但是,当我尝试这样做时,会出现以下错误:

无法将值NULL插入表“dbo.ActiveItems”的“TimeStarted”列;该列不允许NULL。insert失败。\r\n语句已终止

我好像绕不开这件事


奇怪的是,我可以登录到SQL server并在表中创建一个空值行。这个实体框架出错了吗?

以确保使用探查器访问正确的数据库

如果约束冲突与您所期望的(在模式方面)不一致,则很可能是您正在访问另一个数据库


然后,将用于连接实体框架的连接字符串更新到正确的数据库。

映射保存在哪里和/或如何更新?我不知道有什么地图被保留了下来。谷歌…是的,我指的是EDMX文件=/我的系统表中似乎没有EDMX文件或
\u MigrationHistory
表。您是否尝试对数据库进行跟踪,以查看实际执行的SQL是什么,并验证它是否命中正确的数据库?可能是命中错误的数据库,等等。但为了将来的参考,请记住,如果使用ADO.net保存使用SqlParameter[插入/更新]值,您需要将“NULL”保存到DB-您需要设置为
SqlParameter.value=DbNull.value
。如果将值设置为
c\NULL
,SqlParameter将失败。有趣的是,Oracle ODP.Net
OracleParameter
可以同时执行-
NULL
DbNull.value
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)
);