我試圖運行Linq
,它拋出一個異常,指出:錯誤Linq中 - 無法翻譯成商店表達
LINQ到實體無法識別方法「System.Collections.Generic.List` 1 [ECommerceApp.Models.CategoryList] CategoryDetails()'方法,並且此方法不能轉換爲商店表達式。
以下是定義的類:
public class ProductDetails : Products
{
public string ParentCatName { get; set; }
public string ChildCatName { get; set; }
public string ImagePath { get; set; }
public List<CategoryList> Categories { get; set; }
}
public class CategoryList
{
public string Category { get; set; }
public string SubCategory { get; set; }
public string ParentCategory { get; set; }
}
我已經顯示在主頁上的所有類別,並在類屬的,因此,定義的列表。以下是Linq
:
public ActionResult Index()
{
var result = (from c in db.Products
select new ProductDetails
{
ProductName = c.ProductName,
Price = c.Price,
Categories = CategoryDetails() //Throws exception here and I tried to convert it to ToList() but doesn't work
}).ToList();
return View(result);
}
public List<CategoryList> CategoryDetails()
{
List<CategoryList> result = aGateway.GetAllCategories().ToList();
return result;
}
最後在視圖中,我試圖訪問類的細節與foreach
循環如下:
@item.Categories[0].Category
@item.Categories[0].SubCategory
@item.Categories[0].ParentCategory
這有什麼,我很想念?
所以每個產品只分配了所有類別的同一個列表? – Equalsk
你有沒有試過直接做Categories = aGateway.GetAllCategories()。ToList()? – Homerothompson
其實不是,它們是單獨定義的。但我的要求是在側邊欄@Equalsk中顯示所有類別和子類別。 –