[英]How to force entity framework to use datetime instead of datetime2 for stored procedure call?
我的存儲過程中有一個datetime
輸入。
當edmx使用數據庫第一種方法構建時,我們有一個
((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("spInsert", ... , payDateParameter);
payDateParameter
定義為:
var payDateParameter = payDate.HasValue ?
new ObjectParameter("PayDate", payDate.Value) :
new ObjectParameter("PayDate", typeof(System.DateTime));
payDate
是DateTime?
。
例外:
正在使用的SQL Server版本不支持數據類型“datetime2”。
據我所知,是在區間的上限datatime
數據類型。 因此,為另一次嘗試添加最小值。
var payDateParameter = payDate.HasValue ?
new ObjectParameter("PayDate", payDate.Value) :
new ObjectParameter("PayDate", new DateTime(1753,1,1));
仍然是同樣的例外。
有沒有辦法迫使存儲過程調用使用我payDateParameter
作為datatime
類型,而不是datetime2
?
您需要在文本編輯器中打開edmx並更改以下內容
<Schema Namespace="CPTTModel.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2005" xmlns:store=....
重要的是“ProviderManifestToken”參數。 根據Microsoft的說法,這個參數在沒有連接到數據庫的情況下幫助實體模型功能,我認為它還有助於最好地構建它針對目標數據庫生成的查詢。 棘手的是,每次更新數據模型時,即使在顯示編輯器中移動對象,該值也會更新並保存到與其連接的數據庫中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.