我为我的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),
现在它适用于我的两个数据库
答案 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),
现在它适用于我的两个数据库