Puis-je faire mon EF objets ne récupérer que des colonnes spécifiques dans le sql exécuté? Si je suis l'exécution du code ci-dessous pour récupérer les objets, il y a une chose que je peux faire pour ne recevoir que certaines colonnes si l'on voulait?
public IEnumerable<T> GetBy(Expression<Func<T, bool>> exp)
{
return _ctx.CreateQuery<T>(typeof(T).Name).Where<T>(exp);
}
Cela permettrait de générer une clause select qui contient toutes les colonnes. Mais, si j'ai une colonne qui contient une grande quantité de données qui ralentit vraiment la requête, comment puis-je avoir mes objets à exclure que la colonne du sql généré?
Si ma table a Id(int), le Statut(int), les Données(blob), comment puis-je faire ma requête sera
select Id, Status from TableName
au lieu de
select Id, Status, Data from TableName
La proposition ci-dessous, ma méthode est
public IEnumerable<T> GetBy(Expression<Func<T, bool>> exp, Expression<Func<T, T>> columns)
{
return Table.Where<T>(exp).Select<T, T>(columns);
}
Et je vais appeler ça comme
mgr.GetBy(f => f.Id < 10000, n => new {n.Id, n.Status});
Cependant, j'ai une erreur de compilation: Impossible de convertir implicitement le type 'AnonymousType#1" à " des Entités.BatchRequest'