web-dev-qa-db-ja.com

モデルのdbContextを作成するか、既存のApplicationDbContextを使用する必要がありますか?

ASP.NET Coreを使用してWebアプリケーションを開発しています。認証付きのプロジェクトテンプレートWebアプリケーションを使用する場合:

enter image description here

生成されたApplicationDbContextクラス:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }            
    }

私はそれをモデルに使用できますが、独自のDbContextを作成し、モデルをユーザーの認証と混合しない方が良いでしょうか?

5
Alexan

いつものように、状況によります。

これは、クライアントが独自のサーバーに展開する自己完結型のアプリケーションですか?その場合、ビジネスDTOをApplicationDbContext mightに追加することには意味があります。

一方、エンタープライズアプリケーションを構築している場合は、多くのWebアプリで認証を再利用したい場合があります。その場合、おそらく認証モデルとビジネスモデルの両方を独自のクラスライブラリに分離する必要があります。

4
RubberDuck

私は常にApplicationDbContextSqlMembershipProviderと同じように見ています。データアクセスコードを追加したことはありません。

ApplicationDbContextは、アプリケーションやビジネスロジックではなく、asp.net IDに関連しているため、常にコンテキストを分離し、独自のユーザーエンティティを持ち、他のIUserをこのエンティティにリンクします。

これは、セキュリティフレームワーク全体を別のもので変更する必要がある場合に備えて、うまく機能します

3
Haitham Shaddad