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”的字符串,这可能对您有所帮助。