Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架中的日期时间区域性问题_C#_Sql Server_Entity Framework_Datetime_Culture - Fatal编程技术网

C# 实体框架中的日期时间区域性问题

C# 实体框架中的日期时间区域性问题,c#,sql-server,entity-framework,datetime,culture,C#,Sql Server,Entity Framework,Datetime,Culture,我使用实体框架和代码优先的方法将模型发送到数据库(即SQL Server 2014) 该模型有2个DateTime字段,其中一个是用户输入。我将它存储在一个datetime?变量中,然后EF将其余的部分存储在数据库中 我的项目是多元文化的,当我使用另一种文化时,如fa-ir,EF显示以下错误: 将datetime2数据类型转换为datetime数据类型导致值超出范围。声明已终止 它在windows 2014和更新版本中工作,这些版本具有波斯文化,但在以前不支持波斯文化的版本中不起作用 任何解决方

我使用实体框架和代码优先的方法将模型发送到数据库(即SQL Server 2014)

该模型有2个DateTime字段,其中一个是用户输入。我将它存储在一个
datetime?
变量中,然后EF将其余的部分存储在数据库中

我的项目是多元文化的,当我使用另一种文化时,如
fa-ir
,EF显示以下错误:

将datetime2数据类型转换为datetime数据类型导致值超出范围。声明已终止

它在windows 2014和更新版本中工作,这些版本具有波斯文化,但在以前不支持波斯文化的版本中不起作用


任何解决方案?

SQL
datetime
数据类型仅支持1753-01-01到9999-12-31之间的日期

但波斯历法的当前年份是1396年


因此,您必须将SQL列更改为支持0001-01-01到9999-12-31的数据类型。

您可以在插入之前将threa的区域性更改为persianvlaue@pranay-拉娜:是的,我改变了我们的文化,但问题没有得到解决!好的,我在ado.net的代码中尝试了这个技巧,它对我起了作用,因此我建议您必须选择一个日历(波斯日历或公历),最好选择一个时区(UTC),并将所有日期以该格式存储在数据库中。将它们全部存储在不同的时区甚至日历中都不会有任何好处。请向我们展示发生异常时正在执行的代码。确保突出显示抛出异常的行。选择此范围内的日期,它将存储在datetime变量中。我想以datetime格式在数据库中存储日期,因为结果在此范围内。这不是导致此错误的原因,此外,我不喜欢解决方法和临时解决方案!