使用join和where从Linq SQL(Lambda)返回List <object>

时间:2016-06-10 02:43:42

标签: c# entity-framework linq lambda

在C#中,我需要使用带有lamba表达式的linq检索List<Object>。 情况就是这样:

List<TAB1> itemList = 
  context.TAB1.Join(
  context.TAB2, itm => itm.ItemCode, bcd => bcd.ItemCode, (itm, bcd) => new { ITM = itm, BCD = bcd })
                     .Where(i => i.ITM.ItemCode == (itemCode ?? i.ITM.ItemCode))
                     .Where(i => i.BCD.BcdCode.Contains(codeBars ?? i.BCD.BcdCode)).ToList();

目前检索到list<AnonymousType>,但我需要一个只返回该表值的List<TAB1>

修改 返回的List<TAB1>需要使用TAB1.Barcode替换一个属性(TAB2.BcdCode)(它的类型相同)。我该怎么办?

1 个答案:

答案 0 :(得分:3)

在过滤器后添加Select语句:

List<TAB1> itemList = 
  context.TAB1.Join(
  context.TAB2, itm => itm.ItemCode, bcd => bcd.ItemCode, (itm, bcd) => new { ITM = itm, BCD = bcd })
                     .Where(i => i.ITM.ItemCode == (itemCode ?? i.ITM.ItemCode))
                     .Where(i => i.BCD.BcdCode.Contains(codeBars ?? i.BCD.BcdCode))
.Select(i => i.ITM)
.ToList();