我創建了一個新的.NET項目並添加了ADO.NET EF 6.
我通過EF嚮導並選擇Code First from Database。
然後我選擇了一張桌子。我們稱之爲「產品」。
這創建了「公共部分類產品」和「公共部分類Model1」。EF從數據庫中的代碼 - 已經是數據庫中的對象
我立即在我的應用程序中創建了一個查詢「產品」的LINQ查詢,但出現以下錯誤。
There is already an object named 'Product' in the database.
當我運行SQL資料我看到以下內容:
CREATE TABLE [dbo].[Product] ...
我不明白爲什麼這個項目試圖創建表,因爲該表已經存在。
我讀了幾篇文章,告訴我需要啓用遷移,但我真的不希望我的項目能夠在數據庫中創建表。
(我們有一個DBA,不給我們訪問在數據庫中創建「輕鬆」表)
然後我決定嘗試創建一個「遷移」文件夾和一個「內部密封類配置」有以下幾點:
public Configuration()
{
AutomaticMigrationsEnabled = false;
AutomaticMigrationDataLossAllowed = false;
}
這給了我一個新的錯誤。
Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration.
如何解決這個問題?
UPDATE
因此,我創建一個都VB.NET和使用完全相同的代碼指向針對同一數據庫C#應用程序。
C#版本的「已存在數據庫」問題。
VB.NET版本沒有「已存在的數據庫」問題。
您是否嘗試過在包管理器控制檯上執行這兩個命令? 「添加遷移」,然後「更新數據庫」。 [這](https://msdn.microsoft.com/en-au/data/jj591621.aspx)可能會幫助你。 –
@Kosala是的我有和那些命令試圖在數據庫中創建一個名爲「dbo .__ MigrationHistory」的表。我試圖從數據庫中使用Code First而不添加更多的表到數據庫中。 – goroth