我做了幾個遷移爲我的核心-Projekt的SQLite的,現在我試圖從SQLite的切換到SQL。我得到一個「System.Data.SqlClient.SqlException(0x80131904):無效的columnname1'columnname1'。無效的columnname2'columnname2'。」 - 與我現有的SQL語句異常。C#EF核心遷移代碼首先無效的列
使用類似
migrationBuilder.Sql("INSERT INTO tablename ('columnname1', 'columnname2 ') VALUES ('columnname1value','columnname2value')");
的SQLite下正常工作。
我試圖「DBO」添加 - 前綴的表名,由於SQL和SQLite之間不同的命名convetions。同樣的錯誤。
由於在腳本中定義的表在DB
沒有創建語句我試圖創建表後,單獨在遷移中的SQL語句。定義的表格被創建,但是相同的錯誤。
使種子是不是一種選擇,因爲在一些遷徙我使用UPDATE或DELETE語句。
我幹了什麼錯我的發言?它是一種語法還是一個邏輯問題,還是我一直在做錯,我很幸運,它在SQLite下工作。
謝謝您的回答
所有其他球員和萊迪斯同樣的問題。在這裏我的解決方案:
sle1306得到了正確的提示。刪除語法錯誤 我將引號更改爲括號。
爲了得到它與SQLite和MS SQL工作: 擴大的SQLite的genertated守則上的所有表
Id = table.Column<int>(nullable: false) .Annotation("Autoincrement", true)
用/
Id = table.Column<int>(nullable: false) .Annotation("Autoincrement", true).Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
現在它爲我的兩個數據庫
的
首先,刪除列名稱的引號。 – sle1306
SQL你是指MS SQL?進行備份,嘗試刪除所有遷移,而不是添加新遷移並更新空數據庫。也請提供您的移植代碼 – itikhomi
@ sle1306現在我得到糟糕的語法附近columnname1 .... –