Я только начал работать с ASP.NET MVC теперь, когда он в бета-версии. В моем коде я запускаю простой запрос LINQ to SQL, чтобы получить список результатов и передать его моему представлению. Такого рода вещи:
var ords = from o in db.Orders
where o.OrderDate == DateTime.Today
select o;
return View(ords);
Однако в моем представлении я понял, что мне нужно получить доступ к имени клиента для каждого заказа. Я начал использовать o.Customer.Name
, но я уверен, что он выполняет отдельный запрос для каждого заказа (из-за ленивой загрузки LINQ).
Логичным способом сокращения количества запросов было бы выбрать имя клиента одновременно. Что-то вроде:
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);
Кроме того, моя переменная ords является IEnumerable анонимного типа.
Можно ли объявить ASP.NET MVC View таким образом, что он принимает IEnumerable в качестве своих данных представления, где T определяется тем, что передается от контроллера, или мне нужно определить конкретный тип для заполнения из моего запроса?