0

新しいASP.NetコアWebアプリケーションを作成し、IDサービスを有効にしました。このフレームワークは、ユーザーの作成、検証、削除のタスクを処理するためのビューとビューのモデルを作成するのに役立ちます。しかし、私はこれのEFコンポーネントについてちょっと混乱しています(私はEFにとってかなり新人ですので、何か不足している可能性があります)。EntityFrameworkCore ID

AccountControllerはUserManager<ApplicationUser> userManagerそれに注入されたとのようなものを呼び出します、例えば、アカウント作成のために、私はこれが何をしているかを理解したよう

var result = await _userManager.CreateAsync(user, model.Password); 

を、それは(直接)にマッピングMicrosoft.AspNetCore.Identity内の機能を呼び出していますDB内のテーブル(デフォルトではdbo.ASPNetUsersなど)に追加します。通常、私はそのような機能がDBと通信するサービスに座ると期待します。これは、抽象化のレイヤーとデータベースへのゲートウェイを提供します。

私の質問は、上記の機能性がある意味で同じものを与えているのか、それともウェブサイトから直接DBと直接通信しているのでしょうか?

答えて

1

UserManagerは、UserManagerに注入されるEFCoreを使用する実装があるIUserStoreインターフェイスに依存します。また、さまざまなインターフェイスの他の実装を行うこともできます。だからレイヤリングがあり、UserManagerはdbと直接話すのではなく、サービスインターフェイスに話しています。

素晴らしいことは、すべてのオープンソースなので、どのように動作するのかを見たい場合は、簡単にhttps://github.com/aspnet/Identity/tree/dev/src

関連する問題