C# Linq到sql内部联接未按预期工作

C# Linq到sql内部联接未按预期工作,c#,linq,C#,Linq,我有一个linq连接,它应该返回过滤后的结果,但会返回我开始使用的列表中的所有元素。简而言之,我有一个首字母 元素列表,infoScrpimdt,使用Linq过滤到其他一些列表中, totalQtyPO、totalqtysforpart等;然后我谈到了sql连接,它是这样的: var infoDetailed = ( from infoWhse in infoScrpimdt join infoPO in totalQtyPO on infoWhse.PartNo.Trim().ToLower

我有一个linq连接,它应该返回过滤后的结果,但会返回我开始使用的列表中的所有元素。简而言之,我有一个首字母 元素列表,infoScrpimdt,使用Linq过滤到其他一些列表中, totalQtyPO、totalqtysforpart等;然后我谈到了sql连接,它是这样的:

var infoDetailed = 
(
from infoWhse in infoScrpimdt
join infoPO in totalQtyPO on infoWhse.PartNo.Trim().ToLower() equals infoPO.PartNo.Trim().ToLower() into inf1
from info1 in inf1.DefaultIfEmpty()
join infoST in totalQtySTForPart on infoWhse.PartNo.Trim().ToLower() equals infoST.PartNo.Trim().ToLower() into inf2
from info2 in inf2.Where(i => i.WhseId == infoWhse.WhseId.ToString()).DefaultIfEmpty()
join infoDimInv in dimInventoryTotals on infoWhse.PartNo.Trim().ToLower() equals infoDimInv.PartNo.Trim().ToLower() into inf3
from info3 in inf3.DefaultIfEmpty()
join infoSku in partSKUs on infoWhse.PartNo.Trim().ToLower() equals infoSku.partnumber.Trim().ToLower() into skuInfos
from infSku in skuInfos.DefaultIfEmpty()
select new DTBackOrderModel
{
    WhseId = infoWhse.WhseId,
    QtyBO = infoWhse.QtyBO,
    QtyOH = info3 != null ? info3.QtyOH : 0,
    OnOrder = Int32.Parse(infoWhse.OnOrder),
    UnitCost = info1 != null
                   ?
                   (decimal)info1.UnitCost.Value
                   :
                   info3 != null
                       ?
                       info3.LastUnitCost
                       :
                       0,
    PartNo = infoWhse.PartNo,
    QtyPO = info1 != null ? (int)info1.QtyPO : 0,
    PODate = info1 != null
                 ?
                 info1.PODate != null ? info1.PODate.Value.ToShortDateString() : "No ETA"
                 :
                 "No ETA",
    QtyST = info2 != null ? info2.QtyST : 0,
    DTSku = (infSku != null && !string.IsNullOrEmpty(infSku.DTSku)) ? infSku.DTSku : "-"
}
).Where(b => b.QtyBO > 0).OrderBy(i => i.QtyST).ToList();

我没有得到一个过滤结果列表,而是最终得到了完整的infoScrpimdt列表;没有过滤

您确定有任何条目不满足筛选条件吗?我正在使用内部联接,希望得到筛选结果;我注意到这个问题与这样一个事实有关:这个查询在每次连接之后都会对结果进行分组(“into inf1”,等等);通过删除此分组,结果正常;“但是,有什么用呢?”Silvermind,谢谢你的回答。在执行发布的查询之前,我需要过滤左侧列表中的结果。问题解决了,谢谢。:)