考慮下面的數據庫結構LINQ MVC視圖模型:多加入到同一個表與可選字段
類別
ID CategoryNameResID ParentCategory(可選)
資源
ID 文本 Lang
並給予一個ViewModel
public class CategoryViewModel
{
public int ID { get; set; }
public int CategoryNameResID { get; set; }
public string CategoryName { get; set; }
public int ParentCategory { get; set; }
public string ParentCategoryName { get; set; }
}
我想與ParentCategoryName所有類別的包括
我做了什麼至今列表是:
var categories = (from cat in db.Categories
join res in db.Resources on cat.CategoryNameResID equal res.ID
select new CategoryViewModel{
ID = cat.ID,
CategoryNameResID = cat.CategoryNameResID,
CategoryName = res.Text,
ParentCategory = cat.ParentCategory,
ParentCategoryName = (from p in db.Resources
where p.ID == cat.ParentCategory
select p.Text)
}).ToList();
我無法弄清楚如何獲取ParentCategoryName而不必再次迭代,這肯定是錯誤的。
PARENTID不洋關鍵資源,我需要的是ParentID的CategoryResId,因爲ParentID引用了ID和類別 –
希望我更新的答案符合您的要求。 – Arindam
是的,除了這種方法只返回**有** ** ParentCategory的行,我需要的其實是所有的 –