我正在使用Entity Framework 2.1中播种数据的新方法:
modelBuilder.Entity<Blog>().HasData(new Blog {BlogId = 1, CreateDate = DateTime.Now});
但是,将此应用于数据库会引发异常Conversion failed when converting date and/or time from character string
。我可以看到,在生成的SQL中,值为'2018-06-01T13:22:13.248-07:00'
,这是错误的。由于该字段显然是DateTime
,我无法按照我想要的方式将其格式化为字符串。
这是EF中的错误吗?或者我错过了一些明显的东西?在传统的 EF代码中,它可以正常工作:
Blog.CreateDate = DateTime.Now;
...
context.SaveChanges();
或许SQL方面有一些解决方法可以让它以这种格式获取日期?
答案 0 :(得分:0)
使用{[Column(TypeName =“ datetime”)]批注
public class Blog
{[Column(TypeName = "datetime")]
public DateTime CreateDate { get; set; }
答案 1 :(得分:0)
问题1此处是转换失败。可以通过将列转换为DateTime2来解决。 参考:Seeding DateTime in EF 2.1 throws exception #12211
问题2(DateTime.Now变成固定的日期/时间)也是我关注的问题。