我在 Entity Framework 2.1 中使用新的数据播种方式:
modelBuilder.Entity<Blog>().HasData(new Blog {BlogId = 1, CreateDate = DateTime.Now});
但是,将此应用于数据库会引发异常从字符串转换日期和/或时间时转换失败
。我可以看到在生成的 SQL 中,值以 '2018-06-01T13:22:13.248-07:00'
的形式出现,这是错误的。由于该字段显然是 DateTime
,因此我无法按照我希望的方式将其格式化为字符串。
这是 EF 中的错误吗?或者我错过了一些明显的东西?在传统 EF 代码中它工作正常:
Blog.CreateDate = DateTime.Now;
...
context.SaveChanges();
或者也许在 SQL 方面有一些变通方法可以允许它以这种格式获取日期?
最佳答案
这里的问题 1 是转换失败。这可以通过将列转换为 DateTime2 来解决。 引用:Seeding DateTime in EF 2.1 throws exception #12211
问题 2(DateTime.Now 变为固定日期/时间)也是我正在研究的问题。
关于sql-server - EF 2.1 中的播种日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50651526/