我相信我需要在单个 linq 查询中有多个“Group into”语句。这是我正在尝试做的事情:
var queryNew = from a in ICDUnitOfWork.AlphaGroups.Find()
join e in ICDUnitOfWork.Alphas.Find()
on a.AlphaGroupID equals e.AlphaGroupID into g
join c in ICDUnitOfWork.Codes.Find()
on a.CodeID equals c.CodeID into co
join cod in ICDUnitOfWork.Codes.Find()
on g.CodeID equals cod.CodeID
select new HomeSearchViewModel
{
Alphas = g,
AlphaGroups = a,
AlphaGroupCode = co,
AlphasCodes = cod
};
一个 Alpha 组具有一组 Alpha。每个 AlphaGroup 都有一个对应的 AlphaGroup.CodeId,每个 Alpha 都有一个 Alpha.CodeId 需要加入“代码”类。我不知道如何调整我的查询来完成这个。
编辑: 最终结果应该类似于:
AlphaGroup -> 包含多个“Alpha”
每个 AlphaGroup 都有一个来自“Codes”类的对应 CodeId,每个 Alpha 也有一个对应的 CodeID。
所以 ViewModel 看起来像:
public class HomeSearchViewModel
{
public IEnumerable<Alpha> Alphas { get; set; }
public AlphaGroup AlphaGroups { get; set; }
public IEnumerable<Code> AlphasCodes { get; set; }
public Code AlphaGroupCode { get; set; }
public string SearchTerm { get; set; }
}