彙總數據我有三個表:與查詢ASP MVC 3控制器
PackageName: PackageNameID,PackageName
Food: FoodID,Food
PackageContent: PackageContentID, PackageNameID, FoodID, Qty
我想要做的是顯示這樣的事情:
PackageName (Food=Qty, Food=Qty) Edit | Details | Delete
A (Onions=4,Peppers=3) Edit | Details | Delete
- B (Rolls=2,Onions=2) Edit | Details | Delete
這裏是我的視圖模型:
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'
此外,選擇線路不正確....我需要分配食物的名稱(「食物」表中的「食物」)和這個數量食物項目(「PackageContent」表格中的「Qty」)到模型中的「FoodItems」列表。我該怎麼做呢?
非常感謝!
感謝您的回覆。這擺脫了錯誤,但現在我有兩個新的: 錯誤'char'不包含'Name'的定義並且沒有擴展方法'Name'接受類型'char'的第一個參數可以(缺少使用指令或程序集引用?) 錯誤'char'不包含'Quantity'的定義並且沒有接受'char'類型的第一個參數的擴展方法'Quantity'可以被發現(你是否缺少使用指令或程序集引用?) **謝謝** –
那麼,你的對象可能有其他屬性,但正如我所說,我必須猜測一下,因爲我不能看到你的班級模型。 –