2017-07-04 87 views
0

我做了幾個遷移爲我的核心-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), 

現在它爲我的兩個數據庫

+0

首先,刪除列名稱的引號。 – sle1306

+0

SQL你是指MS SQL?進行備份,嘗試刪除所有遷移,而不是添加新遷移並更新空數據庫。也請提供您的移植代碼 – itikhomi

+0

@ sle1306現在我得到糟糕的語法附近columnname1 .... –

回答

0

對於所有其他男人和女人都有同樣的問題。在這裏我的解決方案:

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

現在它爲我的兩個數據庫