J'apprécierais beaucoup une explication détaillée de (et si) il y a une différence dans ce qui se passe dans les coulisses de l'extrait de code Linq to Entities suivant ces scénarios:
A. Le "foreach" "loop était dans la clause" using "
B. Au lieu de Linq to Entites, j'utilisais un mappage silimilaire exécutant la requête sur Linq à Sql.
C. A + B.
Linq dans les coulisses
le code:
ILookup<string, tblProduct> productBooks;
using (TbsDBEntities tbsDbEntities = new TbsDBEntities())
{
productBooks = (from tbsDbEntity in tbsDbEntities.tblProducts
orderby tbsDbEntity.Title
select tbsDbEntity).ToLookup(p => p.Title.Substring(0, 1).ToUpper());
}
foreach (IGrouping<string, tblProduct> productBook in productBooks)
{
if (productBook.Key[0] >= 'A' && productBook.Key[0] <= 'Z')
{
HtmlAnchor anchor = new HtmlAnchor();
anchor.InnerText = productBook.Key+" ";
anchor.HRef ="/"+ productBook.Key;
divHeader.Controls.Add(anchor);
}
Pouvez-vous élaborer sur B s'il vous plaît? – dortzur
Linq-to-Entities crée un modèle d'entité pour la base de données avant d'interroger la base de données et possède une classe DataLayer avec des entités en arrière-plan .. Les entités de données chargent le résultat de la base de données vers les entités objet. les entités d'objet pour générer l'objet IEnumerable (Element) .. le résultat d'une requête linq. Linq-to-SQL interroge directement la base de données et charge un objet IEnumerable (Element) pour le résultat ... ce qui supprime le surcoût de la création d'entités. –