我有三张桌子:
包名:包名ID、包名
食物:食物ID,食物
PackageContent:PackageContentID、PackageNameID、FoodID、Qty
我想要做的是显示如下内容:
包装名称(食物=数量,食物=数量) 编辑 | 详情 | 删除
A (洋葱=4,辣椒=3) 编辑 | 详情 | 删除
- B (卷=2,洋葱=2) 编辑 | 详情 | 删除
这是我的视图模型:
public class PackageViewModel
{
public int ID { set;get;}
public string Name { set;get;}
public List<FoodItem> FoodItems { set;get;}
public PackageViewModel()
{
FoodItems=new List<FoodItem>();
}
}
public class FoodItem
{
public string FoodName { set;get;}
public int Quantity { set;get;}
}
这是我的看法:
@model List<PackageViewModel>
@foreach(var item in Model)
{
<tr>
<td>@item.Name</td>
<td>
foreach(var food in item.FoodItems)
{
@food.FoodName - @food.Quantity
}
</td>
<td>
@Html.ActionLink("Edit","Edit",new {@id=item.ID})
</td>
</tr>
}
这是我在控制器中使用的查询:
List< PackageViewModel > listVM=new List< PackageViewModel >();
listVM =
from pn in db.PackageNames
from pc in db.PackageContents
.Where(p => p.PackageNameID == pn.PackageNameID).DefaultIfEmpty()
from f in db.Foods
.Where(f => f.FoodID == pc.FoodID).DefaultIfEmpty()
select new PackageViewModel { PackageNameID = pc.PackageNameID, PackageName = pn.PackageName, FoodItems = f.Food.ToList() };
return View(listVM);
但是,我收到以下错误: 无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.List”
此外,无论如何选择行都不正确....我需要指定食物的名称(“食物”表中的“食物”)和该食物的数量(“包装内容”中的“数量” ”表)添加到模型中的“FoodItems”列表中。我该怎么做呢?
非常感谢!!