在上一个主题中,我成功地合并了默认的 ASP.NET 标识和我自己的表上下文。下一个 ASP.NET 身份问题,即与我的表 POCO 一起使用的通用存储库不能与继承的 POCO 一起使用,例如默认的 ApplicationUser : IdentityUser
如何将默认的 ASP.Net 身份实体与通用存储库一起使用?
这是我的通用存储库的主要部分:
public class RepositoryBase<TContext, TEntity> : IRepositoryBaseAsync<TEntity>, IDisposable
where TContext : IdentityDbContext<MyContext.ApplicationUser>
where TEntity : class
{
private readonly TContext _context;
private readonly IObjectSet<TEntity> _objectSet;
protected TContext Context
{
get { return _context; }
}
public RepositoryBase(TContext context)
{
if (context != null)
{
_context = context;
_objectSet = (_context as IObjectContextAdapter).ObjectContext.CreateObjectSet<TEntity>();
}
else
{
throw new NullReferenceException("Context cannot be null");
}
}
}
当然,存储库中有 Add、Query 等方法,但在这个问题中这些方法是不必要的。