所以这是我的控制器:
public ActionResult Index()
{
DBContext_Model db = new DBContext_Model();
var srmas = (
from SRMAs in db.SRMAs
join SRMAStatus in db.SRMAStatus on SRMAs.Id equals SRMAStatus.Id
join PurchaseOrders in db.PurchaseOrders on SRMAs.PONumber equals PurchaseOrders.PONumber
join Suppliers in db.Suppliers on PurchaseOrders.SupplierID equals Suppliers.SupplierID
select new {SRMAs.Id,SRMAs.PONumber,SRMAs.CreatedOn,Suppliers.SupplierName,SRMAStatus.StatusName,PurchaseOrders.PODate,PurchaseOrders.suppliersOrderNumber}
).ToList();
ViewBag.SRMAs = srmas;
return View();
}
现在我需要迭代结果。我应该使用什么类型来将我的循环变量转换为获取欲望字段?
答案 0 :(得分:2)
您将从此查询中获得一个匿名类型列表。您不能转换为匿名类型,因为它只存在于运行时。
解决此问题的最佳方法是创建ViewModel类。一个持久性无知类,它唯一的目的是数据传输:
public class IndexViewModel
{
public int SRMAsId { get; set; }
public int PONumber { get; set; }
// ...
}
使用此功能,您可以选择此类的新实例:
ViewBag.SRMAs = srmas.Select(srma => new IndexViewModel
{
SRMAsId = srma.Id,
PONumber = srma.PONumber,
// ...
}).ToList();