C# LINQ:在连接数据上的GroupBy之后检索模型数据
在加入3个表/模型/实体之后,我可以简单地从视图模型中检索数据。但是,当我分配GroupBy时,我无法以正常方式获取数据。我需要从分组数据中获取数据C# LINQ:在连接数据上的GroupBy之后检索模型数据,c#,linq,lambda,group-by,C#,Linq,Lambda,Group By,在加入3个表/模型/实体之后,我可以简单地从视图模型中检索数据。但是,当我分配GroupBy时,我无法以正常方式获取数据。我需要从分组数据中获取数据 var modelList = from model1 in db.Model1 join model2 in db.Model2 on model1.id equals model2.model1_id join model3 in db.Model3 on model2.id equa
var modelList =
from model1 in db.Model1
join model2 in db.Model2 on model1.id equals model2.model1_id
join model3 in db.Model3 on model2.id equals model3.model2_id
where ((model1.id== 2) && (model.menu_id== 3))
orderby subMenu.SUBMENU_NAME
select new USER_ACCISSIBLE_SUBMENUE_VIEWMODEL
{
MODEL_VIEW_MODEL1 = model1,
MODEL_VIEW_MODEL2 = model2,
MODEL_VIEW_MODEL3 = model3
};
string myData= "";
foreach (var item in modelList )
{
myData+= item.MODEL_VIEW_MODEL1.COLUMN1 + item.MODEL_VIEW_MODEL2.COLUMN2 + item.MODEL_VIEW_MODEL3.COLUMN3;
}
到目前为止,这一切都很简单。
但是在下面的一行之后,我得到了for-each循环的错误。我已经给出了我的要求的一般形式。我还通过将GroupBy与modelList LINQ一起放置而不是使用modelListGrouped变量进行了测试。但同样的错误。使用GroupBy子句时,项找不到viewmodels。我需要从分组元素中检索数据
var modelListGrouped = modelList .GroupBy(x => x.MODEL_VIEW_MODEL1.id);
foreach (var item in modelListGrouped )
{
myData+= item.MODEL_VIEW_MODEL1.COLUMN1 + item.MODEL_VIEW_MODEL2.COLUMN2 + item.MODEL_VIEW_MODEL3.COLUMN3;
}
返回一个IEnumerable
。因此,您的foreach应该如下所示:
var modelListGrouped = modelList .GroupBy(x => x.MODEL_VIEW_MODEL1.id);
foreach (var group in modelListGrouped )
{
// group is now the IEnumerable<T> you had before
// but also knows group.Key by which this was grouped
foreach(var item in group)
myData += item.MODEL_VIEW_MODEL1.COLUMN1 + item.MODEL_VIEW_MODEL2.COLUMN2 + item.MODEL_VIEW_MODEL3.COLUMN3;
}
var modelListGrouped=modelList.GroupBy(x=>x.MODEL\u VIEW\u MODEL1.id);
foreach(modelListGrouped中的var组)
{
//组现在是您以前拥有的IEnumerable
//但也知道分组的group.Key
foreach(组中的var项目)
myData+=item.MODEL\u VIEW\u MODEL 1.COLUMN1+item.MODEL\u VIEW\u MODEL 2.COLUMN2+item.MODEL\u VIEW\u MODEL 3.COLUMN3;
}
GroupBy
返回i分组的枚举。它们具有分组键
,表示属于该组的项目的枚举。如果可能,向我们显示输入和所需输出。GroupBy正在为该组的值创建集合。因此,您需要使用Select来枚举整个集合。谢谢:)它起作用了。但是你能告诉我如何在模型上应用distinct.menu_id而不使用组吗?@MuhammadAshikuzzaman我不太明白你的意思…也许最好打开一个新问题?