【发布时间】:2017-12-04 12:29:22
【问题描述】:
我使用实体框架和代码优先方法将模型发送到数据库(即 SQL Server 2014)。
该模型有 2 个 DateTime 字段,其中一个是用户输入。我将它存储在 datetime? 变量中,然后 EF 完成其余工作以将模型存储在数据库中。
我的项目是多文化的,当我使用像 fa-ir 这样的另一种文化时,EF 会显示以下错误:
将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围。声明已终止。
它适用于具有波斯文化的 Windows 2014 及更新版本,但不适用于不支持波斯文化的先前版本。
有什么办法吗?
【问题讨论】:
-
您可以在插入 vlaue 之前将 threa 的文化更改为波斯语 ..
-
@pranay-rana 是的,我将文化更改为 en-us,但问题没有得到解决!
-
好的,我在我的 ado.net 代码中尝试了这个技巧,它对我有用,所以我建议这样做
-
您必须选择一个日历(波斯或公历),最好选择一个时区(UTC),并将所有日期以该格式存储在您的数据库中。将它们全部存储在不同的时区甚至日历中都没有任何好处。
-
请向我们展示异常发生时正在执行的代码。请务必突出显示引发异常的行
标签: c# sql-server entity-framework datetime culture