繁体   English   中英

c#EF核心迁移代码第一个无效列

[英]c# EF Core Migration code First invalid column

我为SQLite的Core-Projekt做过几次迁移,现在我尝试从SQLite切换到SQL。

不幸的是,我得到一个“ System.Data.SqlClient.SqlException(0x80131904):无效的columnname1'columnname1'。无效的columnname2'columnname2'。”-我现有的SQL语句异常。

使用类似

migrationBuilder.Sql("INSERT INTO tablename ('columnname1', 'columnname2 ') VALUES ('columnname1value','columnname2value')");

在SQLite下,它可以正常工作。

由于SQL和SQLite之间的命名竞争不同,我试图将“ dbo。”-前缀添加到表名。 同样的错误。

由于语句的原因,未在数据库中创建脚本中定义的表

创建表后,我尝试在迁移中分离SQL语句。 已创建定义的表,但存在相同错误。

不允许选择种子,因为在某些迁移中,我使用update或delete语句。

我的陈述错了什么? 它是语法还是逻辑问题,还是我一直都做错了,我很幸运在SQLite下工作。

谢谢你的回答

对于所有其他遇到相同问题的男女生。 这是我的解决方案:

sle1306得到了正确的提示。 删除语法错误我将引号更改为方括号。

要使其与SQLite和MS SQL一起使用:在所有表上展开生成的SQLite代码

Id = table.Column<int>(nullable: false) .Annotation("Autoincrement", true)

用/

Id = table.Column<int>(nullable: false) .Annotation("Autoincrement", true).Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),

现在它适用于我的两个数据库

对于所有其他遇到相同问题的男女生。 这是我的解决方案:

sle1306得到了正确的提示。 删除语法错误我将引号更改为方括号。

要使其与SQLite和MS SQL一起使用:在所有表上展开生成的SQLite代码

Id = table.Column<int>(nullable: false) .Annotation("Autoincrement", true)

用/

Id = table.Column<int>(nullable: false) .Annotation("Autoincrement", true).Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),

现在它适用于我的两个数据库

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM