Я собираюсь преобразовать проект Identity Microsoft.AspNet.Identity.EntityFramework
(v 2.0.0.0) в тот, который использует NHibernate в качестве своей машины настойчивости. Мой первый "камень преткновения" - это набор репозиториев в классе UserStore
:
private readonly IDbSet<TUserLogin> _logins;
private readonly EntityStore<TRole> _roleStore;
private readonly IDbSet<TUserClaim> _userClaims;
private readonly IDbSet<TUserRole> _userRoles;
private EntityStore<TUser> _userStore;
Параметр типа TUser
ограничен IdentityUser<TKey, TUserLogin, TUserRole, TUserClaim>
, и этот тип имеет свой собственный набор наборов:
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
, так как каждый из этих пользователей уже заботится о своих собственных вещах. Есть ли какая-то важная причина, по которой я не могу просто покончить с этим (чтобы избавиться от любых зависимостей от Entity Framework, например DbSet
?
Я мог бы придумать свой собственный класс репозитория вместо DbSet
, чтобы соответствовать этому дизайну UserStore
, но я бы предпочел просто потерять их и позволить каждому экземпляру пользователя заботиться о своих собственных претензиях и т.д.