LINQ lambda表达式查询以不同的where条件加入更多的表

时间:2017-09-08 08:39:32

标签: c# linq lambda expression

首先,我必须根据Table1中的条件值过滤值。 然后我必须从Table2加入另一个名为Table1的表格。这两个表有共同字段 Condition2

最后,我应该通过加入Table2Table3常见条件(Final_Condition)满意值来获得基于最终条件的值。

我使用下面的查询来获取数据。但我得到了交叉加入的结果。

var result = db.Table1
    .Where(m => m.u.Condition == "Condition")
    .Join(db.Table2, u => u.Number, uir => uir.Number, (u, uir) => new { u, uir })
    .Where(m => m.u.Condition2 == m.uir.Condition2)
    .Join(db.Table3, proposal => proposal.uir.ID.Leasing_Proposal_Id, prop => prop.ID,
        (proposal, prop) => new
        {
            proposal.u,
            proposal.uir,
            prop
        })
    .Where(m => m.uir.FinalCondition == m.prop.FinalCondition)
    .AsEnumerable()
    .Select(m => new Model
    {
        Name = m.Name,
        Id = m.Id,
        Dept = m.Dept
    })
    .Where(m => ((m.Name != null) ? m.Name.ToUpper().Contains("xxx") : false))
    .Cast<IResult>()
    .ToList();

0 个答案:

没有答案