C# 将日期格式从EU更改为US entityFramework

C# 将日期格式从EU更改为US entityFramework,c#,sql-server,entity-framework,datetime,C#,Sql Server,Entity Framework,Datetime,您好,我对SQL server中的DateTime格式没有什么问题。 我有一个与SQL Server 2012连接的应用程序。 我需要在应用程序中使用EU日期格式。SQL server以EU格式保存日期时间 证明: 但当我允许用户以EU格式输入日期时,EntityFramework抛出模型无效 我想C#default DateTimeformat是US 如何修改此代码以允许用户输入EU格式的日期并将其传递给DB而不会出现任何问题: 我的模型: namespace magazyn.Models

您好,我对
SQL server
中的
DateTime
格式没有什么问题。 我有一个与SQL Server 2012连接的应用程序。 我需要在应用程序中使用EU日期格式。SQL server以EU格式保存日期时间 证明:

但当我允许用户以EU格式输入日期时,
EntityFramework
抛出
模型无效
我想C#default DateTimeformat是US 如何修改此代码以允许用户输入EU格式的日期并将其传递给DB而不会出现任何问题: 我的模型:

namespace magazyn.Models
{
    using System;
    using System.Collections.Generic;

    public partial class DeviceInstance
    {
        public int Id { get; set; }
        public int DeviceId { get; set; }
        public string SerialNo { get; set; }
        public System.DateTime CreationDate { get; set; }

        public virtual Device Device { get; set; }
        public virtual DeviceUsage DeviceUsage { get; set; }
    }
}
SQL server以EU格式保存日期时间

不,没有。(至少,如果它在数据库中的一个适当的列类型中,就不需要了。)它以更紧凑的二进制格式保存它——至少我认为是这样。这是一个实现细节。基本上,关键是它是一个日期/时间值。您应该始终以
DateTime
值(或
DateTimeOffset
或其他任何值)而不是字符串的形式与数据库交谈。这样,您就不会参与转换。您在SQL资源管理器中看到的(或用于查询它的任何内容)只是数据库中内容的字符串表示形式。这与数据库中的值不同

同样,您可以要求数据库将数字显示为十进制或十六进制-这不会改变基本数值

您需要在应用程序中对用户输入的数据执行适当的转换,并再次向用户显示数据库中的任何数据,但不需要使用超出“用户边界”的字符串表示

您应该尝试使绝大多数代码使用非基于字符串的表示。尽可能早地将输入数据转换为“自然”表示,尽可能晚地将输出数据转换为特定于区域性的字符串表示

SQL server以EU格式保存日期时间

不,没有。(至少,如果它在数据库中的一个适当的列类型中,就不需要了。)它以更紧凑的二进制格式保存它——至少我认为是这样。这是一个实现细节。基本上,关键是它是一个日期/时间值。您应该始终以
DateTime
值(或
DateTimeOffset
或其他任何值)而不是字符串的形式与数据库交谈。这样,您就不会参与转换。您在SQL资源管理器中看到的(或用于查询它的任何内容)只是数据库中内容的字符串表示形式。这与数据库中的值不同

同样,您可以要求数据库将数字显示为十进制或十六进制-这不会改变基本数值

您需要在应用程序中对用户输入的数据执行适当的转换,并再次向用户显示数据库中的任何数据,但不需要使用超出“用户边界”的字符串表示


您应该尝试使绝大多数代码使用非基于字符串的表示。尽可能早地将输入数据转换为“自然”表示形式,尽可能晚地将输出数据转换为特定于区域性的字符串表示形式。

如果视图中有DateTime字段,并在代码中使用此字段的值,则通常不会有问题。我通常使用mysql,在那里我需要将datetime变量转换为格式为“yyyy-MM-dd”的字符串,这可能会对您有所帮助。如果您在视图中有一个datetime字段,并在代码中使用该字段的值,则通常不会有问题。我通常使用mysql,在那里我需要将datetime变量转换为格式为“yyyy-MM-dd”的字符串,这可能对您有所帮助。