Asp.net 具有实体框架核心2.1.4代码优先的.NET核心2.1.1:从字符串转换日期和/或时间时转换失败
创建表后,我有一个扩展方法来为表设置种子:Asp.net 具有实体框架核心2.1.4代码优先的.NET核心2.1.1:从字符串转换日期和/或时间时转换失败,asp.net,asp.net-core,.net-core,entity-framework-core,entity-framework-migrations,Asp.net,Asp.net Core,.net Core,Entity Framework Core,Entity Framework Migrations,创建表后,我有一个扩展方法来为表设置种子: public static class ModelBuilderExtensions { public static void Seed(this ModelBuilder modelBuilder) { modelBuilder.Entity<AppUser>(entity => { entity.HasData( new Eve
public static class ModelBuilderExtensions
{
public static void Seed(this ModelBuilder modelBuilder)
{
modelBuilder.Entity<AppUser>(entity =>
{
entity.HasData(
new Event() { id = 1, WhenDate = DateTime.Now.AddMonths(1) }
)
}
}
公共静态类ModelBuilderExtensions
{
公共静态void种子(此ModelBuilder ModelBuilder)
{
modelBuilder.Entity(Entity=>
{
entity.HasData(
新事件(){id=1,WhenDate=DateTime.Now.AddMonths(1)}
)
}
}
我用这个命令创建了迁移文件
添加迁移初始值创建
然后
更新数据库
要使用表创建数据库,但出现以下错误:
从字符转换日期和/或时间时转换失败
串
在我的InitialCreate文件中,我有一行:
WhenDate=table.Column(类型:“datetime”,可为空:false)
在我的控制台日志中的insert into命令中,我看到以下字符串:
“2019-03-12T16:09:33.617+01:00”
我猜字符串格式不正确,但如何更改它?正确的格式是什么
谢谢我找到了一个解决方案,如果我现在用
UtcNow
替换,它会工作!因为它删除了“+01:00”
替换
DateTime.Now.AddMonths(1)
借
DateTime.UtcNow.AddMonths(1)
字符串结果:
“2019-03-12T17:08:25.682Z”
我找到了一个解决方案,如果我现在用UtcNow替换
替换
DateTime.Now.AddMonths(1)
借
DateTime.UtcNow.AddMonths(1)
字符串结果:
“2019-03-12T17:08:25.682Z”
对我来说,在运行更新数据库后尝试更改列时会发生这种情况:
我通过添加手动默认值进行了修复,如:
默认值:“0001-01-01”
例如:
migrationBuilder.AddColumn<DateTime>(
name: "OperationDateTime",
schema: "DefinitionContext",
table: "Path",
type: "DateTime",
nullable: false,
defaultValue:"0001-01-01");
migrationBuilder.AddColumn(
名称:“OperationDateTime”,
模式:“定义上下文”,
表:“路径”,
键入:“日期时间”,
可为空:false,
默认值:“0001-01-01”);
对于我来说,在运行更新数据库后试图更改列时会发生这种情况:
我通过添加手动默认值进行了修复,如:
默认值:“0001-01-01”
例如:
migrationBuilder.AddColumn<DateTime>(
name: "OperationDateTime",
schema: "DefinitionContext",
table: "Path",
type: "DateTime",
nullable: false,
defaultValue:"0001-01-01");
migrationBuilder.AddColumn(
名称:“OperationDateTime”,
模式:“定义上下文”,
表:“路径”,
键入:“日期时间”,
可为空:false,
默认值:“0001-01-01”);
AppUser类中的“WhenDate”是什么类型?DateTime?是“WhenDate”是DateTime类型。当我在SSMS中复制/超过insert into命令时,错误是相同的,但当我删除“+01:00”时,它起作用了!AppUser类中的“WhenDate”是什么类型?DateTime?是“WhenDate”是DateTime类型。当我在SSMS中复制/通过insert into命令时,错误是相同的,但当我删除“+01:00”时,它工作正常!