gpt4 book ai didi

c# - 如何强制 Entity Framework 使用 datetime 而不是 datetime2 进行存储过程调用?

转载 作者:行者123 更新时间:2023-11-30 18:17:26 28 4
gpt4 key购买 nike

我的存储过程中有一个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?

异常:

The version of SQL Server in use does not support datatype '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=....

The important thing to look at is the “ProviderManifestToken” parameter. According to Microsoft, this parameter helps the entity model function while not connected to the database, I think it also helps best structure the queries it generates against the target database. The tricky thing is that every time you update the data model, even to move an object around in the display editor, this value is updated and saved to the database it is connected to.

关于c# - 如何强制 Entity Framework 使用 datetime 而不是 datetime2 进行存储过程调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43681888/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com