我使用ASP.NET Core MVC6和Entity Framework Core構建應用程序首先在DB上下文中編譯代碼,SQL數據庫已經填充了數據記錄。我最近對數據模型做了一些小改動並重新創建了遷移,在VS 2015包管理器控制檯中命令爲(「dotnet ef migrations add stage3」,「dotnet ef database update」),但出現如下錯誤:實體框架核心錯誤:dotnet.exe:System.Data.SqlClient.SqlException(0x80131904):數據庫中已經有一個名爲'Company'的對象
dotnet.exe : System.Data.SqlClient.SqlException (0x80131904): There is already an object named 'Company' in the database.
公司表位於表格關係的頂部,似乎是因爲表格公司已經存在並且EF無法更新新的表格結構。如果我在連接字符串中更改數據庫名稱,它將創建具有新表結構的新數據庫,而不會有任何問題。我不知道如何解決這個問題?在不久的將來應用程序上線後,我會對模式做出更多更改,並且會再次出現同樣的問題,並且我無法使用實時數據刪除數據庫以重新創建新的表結構,也許我應該在Startup.cs文件中配置它,但我還沒有找到任何有用的資源。請給我一些建議。
我試圖將DB初始化程序更改爲附加的屏幕截圖,但不知道如何去做。
我再次檢查項目代碼,遷移沒有被應用到__MigrationHistory表,遷移代碼實際上包含的代碼來創建整個數據庫的結構示例如下:
migrationBuilder.CreateTable(
name: "Company",
columns: table => new
{
CompanyId = table.Column<int>(nullable: false)
.Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
CompanyName = table.Column<string>(maxLength: 100, nullable: false),
IsAdmin = table.Column<bool>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Company", x => x.CompanyId);
});
我的天堂」 t改變了項目命名空間。最近,我只對幾個表格關係做了一些修改,例如網站用戶權限表(公司有很多網站)。我添加了權限表,所以現在網站用戶權限表可以具有多個權限類型而不是單個權限類型。
不確定如何在實體框架核心中設置自動遷移。
你可以發佈對公司所做的更改嗎? – Yaser
我還沒有對公司表做過更改,最近我只對網站用戶權限表(公司有很多網站)等少數表關係做過一些修改。我添加了權限表,所以現在網站用戶權限表可以具有多個權限類型而不是單個權限類型。 – bearview