Могу ли я заставить объекты EF извлекать только определенные столбцы в выполненном sql? Если я выполняю приведенный ниже код для извлечения объектов, есть ли что-то, что я могу сделать, чтобы получить только определенные столбцы, если они нужны?
public IEnumerable<T> GetBy(Expression<Func<T, bool>> exp)
{
return _ctx.CreateQuery<T>(typeof(T).Name).Where<T>(exp);
}
Это создало бы предложение select, содержащее все столбцы. Но если у меня есть столбец, содержащий большой объем данных, который действительно замедляет запрос, как я могу удалить мои объекты из этого столбца из сгенерированного sql?
Если в моей таблице есть Id (int), Status (int), Data (blob), как я могу сделать свой запрос
select Id, Status from TableName
вместо
select Id, Status, Data from TableName
Из приведенного ниже предложения мой метод
public IEnumerable<T> GetBy(Expression<Func<T, bool>> exp, Expression<Func<T, T>> columns)
{
return Table.Where<T>(exp).Select<T, T>(columns);
}
И я называю это так
mgr.GetBy(f => f.Id < 10000, n => new {n.Id, n.Status});
Однако я получаю ошибку компиляции:
Невозможно неявно преобразовать тип 'AnonymousType # 1' в 'Entities.BatchRequest'