Мой проект имеет несколько Areas
, которые каждый из них имеет свои собственные объекты, и я стараюсь держать все изолирования в этой области ... (позволяет называть эти области = plugins
)
DbContextDbSet вне класса DbContext
public class PortalDbContext : DbContext, IUnitOfWork
{
public new IDbSet<TEntity> Set<TEntity>() where TEntity : class
{
return base.Set<TEntity>();
}
}
IUnitOfWork
public interface IUnitOfWork
{
int SaveChanges();
IDbSet<TEntity> Set<TEntity>() where TEntity : class;
}
Service.cs
public class PageService : IPage
{
public readonly IUnitOfWork _uow;
public readonly IDbSet<Pages> _page;
public PageService(IUnitOfWork uow)
{
_uow = uow;
_page = uow.Set<Pages>();
}
}
Наконец Когда я пытаюсь:
public void AddPage(PageModel m)
{
_page.Add(m);
}
Я получаю эту ошибку: The entity type Pages is not part of the model for the current context
это означает, что uow.Set<Pages>();
не работает должным образом.
возможно ли DbSet
из DbContext
класс - это код ASP.Net MVC?
Вы должны иметь некоторые конкретные конкретные свойства 'DbSet' в вашем контексте, в противном случае он не знает, как отображать ваши объекты в базе данных. Ваш интерфейс 'IUnitOfWork' на самом деле не имеет большого смысла для меня, какова его цель? –
слишком плохо, вы знаете, я хотел иметь простую подключаемую архитектуру. В этом случае я должен изменить DbContext для каждого плагина. что 'IUnitOfWork' делает' context.SaveChanges() 'и' context.Set(); ' –
mhesabi