我的存储过程中有一个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
?
答案 0 :(得分:0)
您需要在文本编辑器中打开edmx并更改以下内容
<Schema Namespace="CPTTModel.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2005" xmlns:store=....
重要的是“ProviderManifestToken” 参数。据微软称,这个参数有助于实体 模型功能虽然没有连接到数据库,我想也是 有助于最好地构建它针对目标生成的查询 数据库。棘手的是每次更新数据 模型,甚至可以在显示编辑器中移动一个对象,这个值 已更新并保存到与其连接的数据库中。