簡體   English   中英

如何強制實體框架使用datetime而不是datetime2進行存儲過程調用?

[英]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));

payDateDateTime?

例外:

正在使用的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM