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

スタートアップクラス "スタートアップ"のメソッド"ConfigureServices "を呼び出す際にエラーが発生しました。

設計時に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と個別の認証を使って、すべてのステップでそれを比較して最初からアプリを書いています。最新の習慣に従うことを望んでいる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()builder.AddUserSecrets<Startup>();置き換えbuilder.AddUserSecrets<Startup>();

参照: InvalidOperationException:アセンブリで 'UserSecretsIdAttribute'が見つかりませんでした



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ