私は、IdentityのMicrosoft.AspNet.Identity.EntityFramework
プロジェクト(v 2.0.0.0)を、その永続性マシンとしてNHibernateを使用するものに変換しようとしています。私の最初の「つまずき」はUserStore
クラスのリポジトリのセットです:なぜASP.NET IDの `UserStore`に非常に多くのリポジトリがありますか?
TUser
は
IdentityUser<TKey, TUserLogin, TUserRole, TUserClaim>
に拘束され、このタイプは、コレクションの独自の同様のセット持っている
private readonly IDbSet<TUserLogin> _logins;
private readonly EntityStore<TRole> _roleStore;
private readonly IDbSet<TUserClaim> _userClaims;
private readonly IDbSet<TUserRole> _userRoles;
private EntityStore<TUser> _userStore;
:
public virtual ICollection<TRole> Roles { get; private set; }
public virtual ICollection<TClaim> Claims { get; private set; }
public virtual ICollection<TLogin> Logins { get; private set; }
をマイこれらのユーザーのそれぞれがすでに自分のものを世話しているので、TUser
のリポジトリを1つだけ管理しなければならない場合、人生はずっと簡単になります。 DbSet
のようなEntity Frameworkの依存関係を取り除くために重要な理由はありますか?
DbSet
の代わりに独自のリポジトリクラスを考案できましたしばらくICollection
UserStore
が、私は非常にちょうどそれらを失い、各ユーザーインスタンスは、独自の主張の世話を聞かせすることを好むなど
Identity Frameworkで他のデータベーステクノロジを使用する例は多数あります。 EFはプロバイダの唯一のものです。例えば、すでに存在するnHibernateサンプルが4つあります。http://www.nuget.org/packages?q=Tags%3A%22Identity%22+Tags%3A%22nhibernate%22 - ソースコードそれらのいくつかに。例えば:https://github.com/MatthewRudolph/Airy –
Hnibernateのために見つけた最初の、最も顕著なプロジェクトは、文字列キーを使用しなければなりませんでした。そうでなければ完全に汎用的なシステムでは、私は受け入れられない標準を見つけました。私たちの既存のNHibernateカスタムDALをアイデンティティの永続性のために使用しています。私はもちろん、あなたがインスピレーションのために引用した例を見ていきます。ありがとう。 – ProfK