1

我对此很陌生,我正在使用具有Datetimetype 属性的 MVC 视图模型:

namespace FP.WebUI.Models
{
    public class AdminSessionsViewModel
    {
        NewSession _NewSession = new NewSession();
        public NewSession NewSession { get { return _NewSession; } set { _NewSession = value; } }
        public IEnumerable<Sessions> CurrentSessions { get; set; }
    }

    public class NewSession
    {
        [Required]
        public string Title { get; set; }
        public string Description { get; set; }
        [Required]
        public DateTime Date { get; set; }
    }
}

我希望Date属性像这种格式:27/05/2013 06:44AM和 SQL 数据库中的相同。

我真的不知道如何Date在类内部配置NewSession以在我的文本框中自动显示为这样,并且当映射回实体框架时将像这样保存在数据库中。

这是我的实体框架流利的 API 配置:

namespace FP.Domain.Configurations
{
    public class SessionsConfig : EntityTypeConfiguration<Sessions>
    {
        public SessionsConfig()
        {
            ToTable("Sessions");
            Property(p => p.Name).IsRequired();
            Property(p => p.PhotosCount).IsRequired();
            Property(p => p.CoverPhoto).IsRequired();
            Property(p => p.Date).HasColumnType("datetime2").HasPrecision(0);
        }
    }
}
4

1 回答 1

2

您需要将[DisplayFormat]属性添加到 DateTime 属性。那应该照顾用户界面。看到这个答案:Converting DateTime format using razor

[Required]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy hh:mm tt}", ApplyFormatInEditMode = true)]
public DateTime Date { get; set; }

您不需要控制日期时间在 SQL Server 中的存储方式 - 它将存储为日期,而不是字符串。您可以使用FORMAT()T/SQL 中的函数在存储过程等中格式化该日期。如果您没有 MSSQL 2012,您可以使用DATEPART()CONVERT()函数。

于 2013-04-03T16:53:14.263 回答