Asp.net web api 从Web API POST方法发布数据时,无法设置DB列的默认值
我将下面的Db表Person定义为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的
[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) 如果有帮助,您可以查看此帖子: