尽管使用各种LINQ线程打开了数十个浏览器选项卡,但我仍然无法使我的特定LINQ查询正常工作。
我正在使用ASP.NET MVC 5 Web应用程序,我的确切错误信息是:
Cannot implicitly convert type
'System.Collections.Generic.List<string>' to
'System.Collections.Generic.List<TurboApp.Models.Submodel>'
在我的控制器中,我正在尝试构建一个可以传递给视图的自定义数据模型。曲线球是我需要以这样一种方式对我的数据进行分组,即我可以得到零件/引擎细节列表,该零件将适合车辆的多个“子模型”。查询如下所示:
var parts = _db.vwFullPartData
.Where(d => d.VehicleMakeID == make &&
d.VehicleModelID == model &&
d.VehicleYearID == year)
.Take(20)
.GroupBy(d => new { d.PN, d.Description, d.Cyl, d.Liter, d.Fuel })
.Select(x => new TurboDetailsListViewModel
{
Pn = x.Key.PN,
Description = x.Key.Description,
Cyl = x.Key.Cyl,
Liter = x.Key.Liter,
Fuel = x.Key.Fuel,
Submodels = x.Select(s => s.Submodel).ToList()
});
然后我将parts
传递给视图:
return PartialView("_PartList", parts);
我完全有可能在模型中遗漏了一些简单的东西。我专注于表格中的Submodel
列,需要构建一些适用的Submodels
。目前我正在尝试使用List
但请告诉我是否有更好的方法。这是我的模型,名为TurboDetailsListViewModel.cs
namespace TurboApp.Models
{
public class TurboDetailsListViewModel
{
public string Pn { get; set; }
public string Description { get; set; }
public string Cyl { get; set; }
public decimal? Liter { get; set; }
public string Fuel { get; set; }
public List<Submodel> Submodels { get; set; }
}
public class Submodel
{
public string SubmodelName { get; set; }
}
}
也许你们其中一位职业选手可以指出我正确的方向!一旦我正确填写了模型,我想我可以构建视图。我打算使用嵌套的Razor foreach
循环。
谢谢你的时间!
答案 0 :(得分:0)
试试这个:
Submodels = x.Select(s => new Submodel{SubmodelName = s.Submodel}).ToList()