J'utilise le Référentiel générique et les modèles UOW dans mon application MVC. Cela fonctionne bien pour mes besoins. Cependant, je trouve qu'il est très difficile d'intégrer l'identité ASP avec ces modèles en raison du couplage étroit de l'identité ASP avec MVC. Mon code est le suivant:Comment utiliser l'identité ASP avec le référentiel générique et les modèles UOW dans l'application MVC
// Repository Interface
public interface IRepository<TEntity> where TEntity : class
{
TEntity Get(int id);
IEnumerable<TEntity> GetAll();
IEnumerable<TEntity> Find(Expression<Func<TEntity, bool>> predicate);
void Add(TEntity entity);
void Remove(TEntity entity);
}
// Repository class
public class Repository<TEntity> : IRepository<TEntity> where TEntity : class
{
// db context defined
// IRepository implementation
}
// Domain Class
public class Author
{
public int AuthorId { get; set; }
public string Name { get; set; }
}
// DbContext class
public class AppContext : DbContext
{
public AppContext() : base("name=MyContext") {}
public virtual DbSet<Author> Authors { get; set; }
}
// Domain Interface
public interface IAuthorRepository : IRepository<Author>
{ // implement custom methods }
// Concrete class implementation
public class AuthorRepository : Repository<Author>, IAuthorRepository
{
public AuthorRepository(AppContext context) : base(context)
{}
public AppContext AppContext
{
get { return Context as AppContext; }
}
}
// UnitOfWork interface
public interface IUnitOfWork : IDisposable
{
IAuthorRepository Authors { get; }
int Complete();
}
// Unit of work class
public class UnitOfWork : IUnitOfWork
{
private AppContext context;
public UnitOfWork(AppContext context)
{
this.context = context;
Authors = new AuthorRepository(context);
}
public IAuthorRepository Authors { get; set; }
public int Complete()
{
return context.SaveChanges();
}
// dispose context
}
public class HomeController : Controller
{
private readonly IUnitOfWork uow;
public HomeController(IUnitOfWork uow) // using Dependency Injection
{
this.uow = uow;
}
public ActionResult Index()
{
var authors = uow.Authors.GetAll();
return View(authors);
}
}
que quelqu'un peut me fournir des indications sur comment puis-je intégrer ASP identité avec la structure ci-dessus.
Merci d'avance.
Copie possible de [Identité ASP.NET avec référentiel et unité de travail] (https://stackoverflow.com/questions/23226140/asp-net-identity-with-repository-and-unit-of-work) –