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

时间:2017-07-04 06:47:51

标签: c# sql entity-framework sqlite core

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

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

使用类似

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

在SQLite下它运行正常。

我尝试添加“dbo。” - 由于SQL和SQLite之间的命名对话不同,因此Tablename的前缀。相同的错误。

由于语句,脚本中的已定义表未在DB

中创建

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

制作种子不是一种选择,因为在某些迁移中我使用更新或删除语句。

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

感谢您的回答

对于具有相同问题的所有其他人和女士。在这里我的解决方案:

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

要使它与SQLite和MS SQL一起使用: 在所有表上扩展已编译的SQLite代码

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

with / to

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

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

1 个答案:

答案 0 :(得分:0)

对于具有相同问题的所有其他人和女士。在这里我的解决方案:

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),

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