EF Core 1.1到WebApi核心 - 添加遷移失敗

.net asp.net-core c# entity-framework entity-framework-core

我認為我的所有依賴項都正常運行1.1但是當我嘗試按照這裡的步驟進行操作時https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/new-db我運行Add-Migration命令時出錯。

PM> Add-Migration InitialState

在啟動類--Startup上調用方法“ConfigureQuetServices”時發生錯誤。

考慮使用IDbContextFactory在設計時覆蓋DbContext的初始化。錯誤:此方法找不到用戶密碼ID,因為未設置應用程序的條目程序集。請嘗試使用“.AddUserSecrets(裝配程序集)”方法。在“ApplicationDbContext”上找不到無參數構造函數。要么將無參數構造函數添加到“ApplicationDbContext”,要么在與“ApplicationDbContext”相同的程序集中添加“IDbContextFactory”的實現。

我的project.json的相關部分:â€

 “Microsoft.EntityFrameworkCore”: “1.1.0”,
“Microsoft.EntityFrameworkCore.SqlServer”: “1.1.0”,
“Microsoft.EntityFrameworkCore.Design”: {
“type “: “build”,
“version”: “1.1.0”
},
“Microsoft.EntityFrameworkCore.Tools”: “1.1.0-preview4-final”
},

“tools”: {
“Microsoft.EntityFrameworkCore.Tools.DotNet”: “1.1.0-preview4-final”
},

我的ApplicationDbContext確實有構造函數:

public ApplicationDbContext(DbContextOptions options) : base(options)
 { }

我的Startup.cs確實有:

services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString(“DefaultConnection”)));

還有什麼呢?

一般承認的答案

另一種解決方案:

我遇到了同樣的問題並降落在這裡。但我正在從頭開始編寫一個應用程序,將每個步驟與DotNetCore WebApp與Individual auth進行比較。在VS 2017中通過嚮導生成,希望遵循最新實踐。所以當我的代碼和生成的代碼中的所有內容完全相同時,我感到很奇怪,我得到了這個異常。生成的代碼在startup.cs中沒有Michael Dennis建議的代碼,這並不意味著他錯了,它只是意味著現在有不同的方式。在進一步深入了解後,我發現UserSecretsId在myprojetname.csproj中聲明如下:

<PropertyGroup>
    <UserSecretsId>aspnet-mywebproect-006a401f-2fdc-4aad-abb1-12c00000004a</UserSecretsId>
</PropertyGroup>

在我的project.csproj文件中添加條目後,問題得到了解決。


熱門答案

該問題與builder.AddUserSecrets()調用有關。要修復,請執行以下步驟:

  1. 通過添加屬性添加用戶秘密到組件(而不是僅僅project.json) [assembly: UserSecretsId("aspnet-TestApp-ce345b64-19cf-4972-b34f-d16f2e7976ed")]Startup.cs

  2. Startup.cs中,builder.AddUserSecrets<Startup>();替換builder.AddUserSecrets() builder.AddUserSecrets<Startup>();

參考: InvalidOperationException:無法在程序集中找到“UserSecretsIdAttribute”



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因