2013-06-24 45 views
0

我有以下db表的人定義爲使用無法從網絡API POST發佈數據時,方法

[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(), 

此表在Web API項目相應的模型設定DB列的默認值EF 5.0是

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; } 

我使用EF代碼首先獲取和設置JSON格式的值。 POST(創建新人員)生成錯誤{「將datetime2數據類型轉換爲日期時間數據類型導致超出範圍值。\ r \ n聲明已終止。」}

然後,我將Db列更改爲[CreatedDt] **DATETIME2** NOT NULL DEFAULT getDate(),,但是現在將CreatedDt保存爲01/01/0001,這不是我想要的。我希望將日期設置爲當前數據庫日期。

當我嘗試從模型中傳遞CreatedDt值爲NULL時,它仍然不起作用(因爲此列不允許有空值)。你能幫我把這個CreatedDt列的值設置爲getDate(),它是在數據庫的列定義中定義的。我需要設置當前數據庫日期,因此我無法從Web API POST方法傳遞當前日期。

+0

如果有幫助,你可以查看這篇文章:http://stackoverflow.com/a/14246660/1184056 –

回答

0

這現在工作通過使這行代碼在模型映射文件

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