需要LINQTOSQL帮助吗

需要LINQTOSQL帮助吗,linq,linq-to-sql,Linq,Linq To Sql,我正在尝试向以下LINQ表达式添加一列。我希望该列包含名为WasteItems的多个表中文本值的字符串串联。联接将位于“Waste.WasteId=WasteItem.WasteId”上。我的问题是,如果WasteItem中有8条记录,并且包含2个字符串的列称为WasteItem.EWC,则需要在单个动态列中显示一个字符串,如“EW(5);EX(3)”。希望这是有意义的,必须有一个有效的方法,因为我意识到LINQ非常强大。我是新手,不知道如何开始或着手: return from wast

我正在尝试向以下LINQ表达式添加一列。我希望该列包含名为WasteItems的多个表中文本值的字符串串联。联接将位于“Waste.WasteId=WasteItem.WasteId”上。我的问题是,如果WasteItem中有8条记录,并且包含2个字符串的列称为WasteItem.EWC,则需要在单个动态列中显示一个字符串,如“EW(5);EX(3)”。希望这是有意义的,必须有一个有效的方法,因为我意识到LINQ非常强大。我是新手,不知道如何开始或着手:

    return from waste in this._db.Wastes
           where (from u in _db.UsersToSites.Where(p => p.UserId == userId && p.SystemTypeId == SystemType.W) 
                  select u.SiteId)
                  .Contains(waste.SiteId)
           orderby waste.Entered descending select waste;

提前感谢

这样做应该可以:

wastes.GroupJoin(db.WasteItems, w => w.WastId, wi => wi.WasteId, (w,wi) => new { w, wi })
    .AsEnumerable()
.Select(x => new
{ 
    x.w.Name, 
    Items = string.Join(", ", x.wi.GroupBy(wi => wi.EWC).Select(g => string.Format("{0} ({1})", g.Key, g.Count())))
})
其中,
废物
是查询的结果。
AsEnumerable()
是必需的,因为实体框架无法处理
string.Join
,因此该部分必须在内存中处理

很明显,我无法检查语法,但至少它可以告诉您该怎么做