使用Entity Framework C#将String转换为日期

时间:2016-02-01 14:11:53

标签: c# sql entity-framework

我试图使用实体框架,并面临数据库中的类型与我的模型不匹配的问题。

具体来说,我在课堂上有String字段日期,在SQL Server数据库中有date字段。由于我在将数据加载到模型中时出现了关于不正确类型的错误。

我附上了我的一些代码,我认为可以应用强制转换。

public class MovementMap : EntityTypeConfiguration<Movement>
{
    public MovementMap()
    {
        ToTable("viewMovement", "met");
        HasKey(e => e.IdMovement);
        Property(r => r.DateMovement).HasColumnName("dateMovement"); 
        //Type of DateMovement - String, but column dateMovement in db has type date.
    }
}

如何在加载时或何时转换它? 很高兴收到任何想法!

1 个答案:

答案 0 :(得分:1)

您可以在班级的Column媒体资源中添加DateMovement属性。这将告诉Entity Framework数据库值是Date

[Column(TypeName="Date")]
public string DateMovement { get; set; }

话虽如此,我建议将DateMovement属性更改为DateTime以保持一致性。

如果您不想更改模型,可以通过向代码示例添加HasColumnType调用来执行此配置:

public class MovementMap : EntityTypeConfiguration<Movement>
{
    public MovementMap()
    {
        ToTable("viewMovement", "met");
        HasKey(e => e.IdMovement);
        Property(r => r.DateMovement).HasColumnName("dateMovement").HasColumnType("Date"); 
    }
}