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