Привет всем, я пытаюсь отфильтровать таблицу, используя класс where, передав параметр методу, как показано ниже,
private IQueryable<SpaceFunctionType> Get<TEntity>(Expression<Func<TEntity, bool>> predicate) where TEntity : class, ICategorySpaceFunction
{
return _dbContext.Set<TEntity>().Where(predicate)
.Select(c => new SpaceFunctionType
{
Category = c.Category,
SpaceFunction = c.SpaceFunction
});
}
public IQueryable<SpaceFunctionType> GetSpaceFunctionType(string environmentSource)
{
return Get<LibraryEnvironment>(x => x.EnvironmentSource.Name == environmentSource).AsQueryable();
}
, и это детали интерфейса,
public interface ICategorySpaceFunction
{
public string Category { get; set; }
public string SpaceFunction { get; set; }
}
и это будет имя класса
public class SpaceFunctionType : ICategorySpaceFunction
{
public string Category { get; set; }
public string SpaceFunction { get; set; }
}
, но здесь появляется ошибка Get<LibraryEnvironment>
, как показано ниже
Тип 'API.DesignHub.Entities.LibraryEnvironment' нельзя использовать в качестве параметра типа «TEntity» в типе c или методе «Query.Get (Expression>)». Не существует неявного преобразования ссылок из «API.DesignHub.Entities.LibraryEnvironment» в «API.DesignHub.Entities.ICategorySpaceFunction»
Я не уверен, что я делаю не так с вышеуказанным методом. любой, пожалуйста, предложите любую идею по этому вопросу, которая была бы очень благодарна мне,
Большое спасибо заранее