LINQ / EF - 使用 GroupBy 将值返回到视图
本文关键字:返回 视图 GroupBy EF 使用 LINQ | 更新日期: 2023-09-27 18:33:26
在我的MVC 3应用程序中,我使用以下查询:
var items = context.QuoteLines.Include("DaybookVehicles").Where(x => x.EnquiryID == id).GroupBy(x=>x.VehicleID).ToList();
return View(items);
然后在我看来,我在顶部有这个:
@model IEnumerable<myApp.Areas.DayBook.Models.DayBookQuoteLines>
但这会引发一个错误:
The model item passed into the dictionary is of type
'System.Collections.Generic.List`1[System.Linq.IGrouping`2[System.Int32,myApp.Areas.DayBook
.Models.DayBookQuoteLines]]', but this dictionary requires a model item of type
'System.Collections.Generic.IEnumerable`1[myapp.Areas.DayBook.Models.DayBookQuoteLines]'.
在这种情况下,如何使用组依据?因为我想将我的每个QuoteLines
分组到他们的匹配VehicleID
编辑
报价线模型:
public class DayBookQuoteLines
{
[Key]
public int QuoteLineID { get; set; }
public int EnquiryID { get; set; }
public virtual int VehicleID { get; set; }
public virtual DaybookVehicles Vehicle { get; set; }
[Required(ErrorMessage = "This field is required.")]
[Display(Name = "Item Number:")]
[MaxLength(50)]
public string ItemNumber { get; set; }
public string ItemDescription { get; set; }
}
车型:
public class DaybookVehicles
{
[Key]
public int VehicleID { get; set; }
public int EnquiryID { get; set; }
public virtual ICollection<DayBookQuoteLines> QuoteLines { get; set; }
public string vrm { get; set; }
public string make { get; set; }
public string model { get; set; }
public string engine_size { get; set; }
public string fuel { get; set; }
}
我想我的设置是正确的,但是每辆车都可以附加一系列报价线!
模型类型与函数返回的类型不同。我认为这种观点的适当模型是
@model IEnumerable<IGrouping<int, DayBookQuoteLines>>
并且在查询中不需要 ToList