Я разработал свой слой данных с классами POCO и принципами невежества на мой взгляд. Мой код был как этот классПерсистентность невежества с основами идентификации ASP.NET и кодом EF сперва
POCO
public class Report
{
public int Id { get; set; }
public string Name { get; set; }
...
}
}
интерфейс хранилища
public interface IReportRepository
{
IEnumerable<Report> GetAllReports();
Report GetReport(int reportId);
...
}
и реализация интерфейса с Entity Framework кода первой, как
public class EFReportRepository : BaseRepository, IReportRepository
{
public EFReportRepository(string connectionString)
: base(connectionString)
{
}
public IEnumerable<Report> GetAllReports()
{
return DbContext.Reports.Include(r => r.AggregationParameters).Include(r => r.ErrorAttachment).Include(r => r.ExcelAttachment).Include(r => r.XmlAttachment).ToList();
}
public Report GetReport(int reportId)
{
return DbContext.Reports.Include(r => r.AggregationParameters).Include(r => r.ErrorAttachment).
Include(r => r.ExcelAttachment).Include(r => r.XmlAttachment).SingleOrDefault(r => r.Id == reportId);
}
все не работают хорошо до разрешения (asp.net identity).
using Microsoft.AspNet.Identity.EntityFramework;
namespace DataRepository.Models
{
public class MyUser : IdentityUser
{
}
}
Теперь каждый отчет имеет пользователь, который создал этот отчет
public class Report
{
public int Id { get; set; }
public string Name { get; set; }
...
public MyUser CreatedByUser { get; set; }
public string CreatedByUserId { get; set; }
...
}
}
Теперь у меня есть тесная зависимость с рамкой сущности, которые я хотел опустить, так как наследование от класса IdentityUser.
Как я могу исключить эту зависимость? Я буду благодарен за любую помощь)
Обновление Теперь проблема заключается в создании объекта UserManager.
UserManager требуется IUserStore в качестве входного параметра. Этот интерфейс имеет реализацию в Microsoft.AspNet.Identity.EntityFramework имен и называется UserStore, так что мой код был как этот
manager = new UserManager<MyUser>(new UserStore<MyUser>(MyDbContext)).
Но теперь MyUser класс не наследуется от IdentityUser, поэтому этот код разбит (UserStore этого требует тип класса)
Я нашел [это] (http://timschreiber.com/2015/01/14/persistence-ignorant-asp-net-identity-with-patterns-part-1/). Может быть, это будет полезно для кого-то – Disappointed