我在创建带有lambda表达式的LINQ查询时遇到问题。我需要连接两个表并设置一些条件。我有两个表MSR和BOMDetail。
MSR有以下列: MSRID,PN,Buyer,-> EditDate。BomDetail有->、PN、AltQty、BomDetail、EditDate这几个列。
我需要把这个查询写进LINQ。
SELECT MSR.PN, Buyer, MSR.EditDate, MSR.Plant FROM MSR
JOIN BomDetail bd ON MSR.PN = bd.PN AND MSR.Plant = bd.Plant
WHERE LEN(ISNULL(bd.AltQty,''))>0我需要使2个条件PN必须等于表格和工厂的。我已经在asp.net MVC中实现了结果ViewModel。
public class MSRViewModel
{
public string PN { get; set; }
public string Buyer { get; set; }
public string Plant { get; set; }
public DateTime EditDate { get; set; }
}这是我的示例,它工作得很好,但我不知道必须在哪里编写bd.Plant = MSR.Plant的第二个条件。
var data = DbContext.BomDetails.Where(x => !string.IsNullOrEmpty(x.AltQty))
.Join(DbContext.MSRs
, bd => bd.PN,
msr => msr.PN,
(bd, msr) => new MSRViewModel
{
PN = msr.PN,
Buyer = msr.Buyer,
Plant = msr.Plant,
EditDate = msr.EditDate
}).ToList().AsEnumerable();谢谢。
https://stackoverflow.com/questions/38360638
复制相似问题