sql-server - EF 2.1 中的播种日期

标签 sql-server asp.net-core entity-framework-core

我在 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/

相关文章:

c# - 管理 SQL 连接和事务的正确/理想方式 - C#

sql-server - 将整个 SQL Server 数据库从服务器复制到本地 SQL Express 的最简单方法

c# - 插入后如何获取新行的 GUID 值?

c# - .NET Core Web应用程序启动类中的app.UseMigrationsEndPoint做什么

c# - 嵌套包含 Entity Framework Core

sql-server - Sql Filestream 可以流式传输视频吗?

c# - ASP.NET Core 2.1 Razor 页面返回带模型的页面

c# - IViewLocalizer 返回错误的语言

.net - 完整.NET Framework上的ASP.NET Core 2.1

asp.net-core - Automapper : The instance of entity type cannot be tracked because another instance with the key is already being tracked 使用异常