J'ai juste commencé à travailler avec ASP.NET MVC maintenant qu'il est en version bêta. Dans mon code, je suis à court d'un simple LINQ to SQL de la requête pour obtenir une liste de résultats et de passage que de mon point de vue. Ce genre de chose:
var ords = from o in db.Orders
where o.OrderDate == DateTime.Today
select o;
return View(ords);
Cependant, de mon point de Vue, j'ai réalisé que j'avais besoin d'accéder au nom du client pour chaque commande. J'ai commencé à utiliser o.Customer.Name
mais je suis assez certain que c'est l'exécution d'une requête distincte pour chaque commande (en raison de LINQ du lazy loading).
La logique de réduction du nombre de requêtes, serait de choisir le nom du client en même temps. Quelque chose comme:
var ords = from o in db.Orders
from c in db.Customers
where o.OrderDate == DateTime.Today
and o.CustomerID == c.CustomerID
select new { o.OrderID, /* ... */, c.CustomerName };
return View(ords);
Sauf que maintenant mon "ords" variable est un IEnumerable d'un type anonyme.
Est-il possible de déclarer un ASP.NET MVC Vue de telle manière qu'elle accepte un IEnumerable que son affichage de données où T est défini par ce qui est transmis par le contrôleur, ou devrai-je définir un type de béton à remplir à partir de ma requête?