プロジェクトのデータアクセス部分をWebAPIに移動し、Entity Framework Coreを使用してEFの機能を実行します。リポジトリパターンによる依存性注入を実装する混乱 - C#EFコア
「コントローラー」が使用されているときに、優先パターンが依存関係注入を使用してdbContextを作成することが望ましいことを知っています。 「こんにちは、世界!」チュートリアルでは、以下により、コンテキストにアクセスする例を示します。
private BloggingContext _context;
public BlogsController(BloggingContext context)
{
_context = context;
}
私がいる問題は、私は方法を公開し、「サービス」のインターフェースを持っているように、私は...一つの層を上に行く必要がありますリポジトリ。
コンテキストインスタンシエーションを自分のリポジトリに入れてみましたが、もちろん、サービスのインスタンスを新規作成しようとしたときに、コンテキストオブジェクトを渡す必要がありました。送信で解決しようとしました新しいBloggingContext()をコンテキストパラメータとして使用しましたが、エラーが発生しました:No database provider has been configured for this DbContext.
私が渡していたnew
には関連付けられているデータベースに接続されていないため、当然意味があります。この接続はStartup.csで定義されています。この移行で私の歯を切ってみようとしているさまざまなチュートリアルで説明されています。
私のコントローラに次のコードがあると、どのようにしてサービスを呼び出すことができますが、依然としてDependency Injectionがリポジトリレベルで行うように設計されていますか?
[HttpGet("{bool}")]
public IActionResult GetRoleNames(bool? isActive)
{
var service = new SecurityService();
try
{
return Ok(service.GetRoleNames(isActive));
}
catch (Exception ex)
{
Log.Error("Failed to get list of role names from the API", ex.Message);
return BadRequest(ex);
}
}
は、私はNULLを可能にするだけでなくGetRoleNames
以来[HttpGet("{bool}")]
ビットFUBARdを持っているかなり確信しているが、私はDIの問題を解決した後、その橋を渡ります。
タイプミス、変化属性 '[HTTPGET( "{のisActive?}")]あなたはそのブリッジ – Nkosi
おかげで、@Nkosiに達したときに' ...私は1つ上の助けに感謝!私はそれが次に私をかむだろうと思った。 – rcastagna