类别
ID
categorynameResID
Parentcategory(可选)
资源
ID
文本
郎
并给出了一个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.Resourceswhere p.ID == cat.Parentcategoryselect p.Text)}).ToList();
我无法弄清楚如何获取Parentcategoryname而不必再次迭代,这绝对是错误的.
解决方法 试试这个:(from cat in catsjoin res in resources on cat.ResID equals res.ID let categoryname = res.Textjoin cat1 in cats on cat.ParentID equals cat1.ID into parentJoinfrom pj in parentJoin.DefaultIfEmpty() let parentCatResID =pj==null?0: pj.ResIDjoin res1 in resources on parentCatResID equals res1.ID into resJoinfrom res2 in resJoin.DefaultIfEmpty() let parentname = (res2==null?string.Empty:res2.Text) select new categoryVM { ID = cat.ID,ResID = cat.ResID,Catname = categoryname,ParentID = cat.ParentID,Parentname = parentname }).ToList();总结
以上是内存溢出为你收集整理的c# – LINQ MVC ViewModel:使用可选字段连接到同一个表全部内容,希望文章能够帮你解决c# – LINQ MVC ViewModel:使用可选字段连接到同一个表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)