Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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
Asp.net web api 从Web API POST方法发布数据时,无法设置DB列的默认值_Asp.net Web Api - Fatal编程技术网

Asp.net web api 从Web API POST方法发布数据时,无法设置DB列的默认值

Asp.net web api 从Web API POST方法发布数据时,无法设置DB列的默认值,asp.net-web-api,Asp.net Web Api,我将下面的Db表Person定义为 [PersonId] INT NOT NULL PRIMARY KEY IDENTITY, [FirstName] VARCHAR(50), [MiddleName] VARCHAR(50), [LastName] VARCHAR(50), [DOB] DATETIME, [EmailAddress] VARCHAR(100), [CreatedDt] DATETIME NOT NULL DEFAULT getDate(), 在使用EF 5.0的

我将下面的Db表Person定义为

[PersonId] INT NOT NULL PRIMARY KEY IDENTITY,

[FirstName] VARCHAR(50),

[MiddleName] VARCHAR(50),

[LastName] VARCHAR(50),

[DOB] DATETIME,

[EmailAddress] VARCHAR(100),

[CreatedDt] DATETIME NOT NULL DEFAULT getDate(),
在使用EF 5.0的Web API项目中,此表的对应模型为

public int personId { get; set; }        

public string firstName { get; set; }

public string middleName { get; set; }

public string lastName { get; set; }

public Nullable<System.DateTime> dob { get; set; }

public string emailAddress { get; set; }

public System.DateTime createdDt { get; set; }
public int personId{get;set;}
公共字符串名{get;set;}
公共字符串middleName{get;set;}
公共字符串lastName{get;set;}
公共可空dob{get;set;}
公共字符串电子邮件地址{get;set;}
public System.DateTime createdDt{get;set;}
我首先使用EF代码来获取和设置JSON格式的值。POST(创建新人员)生成错误{“将datetime2数据类型转换为datetime数据类型导致值超出范围。\r\n语句已终止。”}

然后我将Db列更改为
[CreatedDt]**DATETIME2**NOT NULL DEFAULT getDate(),
,但是现在CreatedDt被保存为01/01/0001,这不是我想要的。我希望将日期设置为当前数据库日期


当我试图从模型中将CreatedDt值作为NULL传递时,它仍然不起作用(因为此列不允许为NULL)。您能帮我将这个CreatedDt列的值设置为getDate(),它是在数据库的列定义中定义的。我需要设置当前数据库日期,这样我就不能同时从Web API POST方法传递当前日期。

现在可以通过将这行代码放入模型映射文件中来实现


this.Property(t=>t.createdDt).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Computed)

如果有帮助,您可以查看此帖子: