Я получаю сообщение об ошибке в своем универсальном репозитории.
Я использую универсальный репозиторий с Entity Framework и подходом на основе базы данных.
Это мой context.cs
:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<tblUser> tblUsers { get; set; }
public virtual DbSet<User> Users { get; set; }
public virtual DbSet<tblState> tblStates { get; set; }`
HomeRepository : когда я использую этот код как неуниверсальный, я получаю записи
public IEnumerable<States> GetAllwithoutGeneric()
{
return _dbContext.Set<tblState>() .
Select(x => new States { name = x.name}).ToList();
}
var state1 = homeRepository.GetAllwithoutGeneric();
И получаю результат в state1
переменная контроллера.Приведенный выше код работает нормально.
Как только я использую общий репозиторий
public IQueryable<T> GetAllState()
{
return _dbContext.Set<T>();
}
и вызываю приведенный выше код следующим образом:
HomeRepository<States> homeRepository = new HomeRepository<States>();
var state = homeRepository.GetAllState().ToList();
Я получаю ошибку:
System.InvalidOperationException: Тип сущности Состояния не является частью модели для текущего контекста
После того, как я использую для вызова ту же сущность tblState, используя не универсальный яполучить результат, и когда я передаю State.cs в универсальный метод, получаю ошибку выше.