Asp.net mvc 带WHERE条件的LINQ连接
我在使用lambda表达式创建LINQ查询时遇到问题。我需要连接两个表并创建一些条件。我有两张桌子MSR和BOMDetail MSR有四列->MSRID、PN、买方、工厂编辑日期。 BomDetail有以下列->BOMID、PN、AltQty、Plant、EditDate 我需要将这个查询写入LINQAsp.net mvc 带WHERE条件的LINQ连接,asp.net-mvc,entity-framework,linq,lambda,Asp.net Mvc,Entity Framework,Linq,Lambda,我在使用lambda表达式创建LINQ查询时遇到问题。我需要连接两个表并创建一些条件。我有两张桌子MSR和BOMDetail MSR有四列->MSRID、PN、买方、工厂编辑日期。 BomDetail有以下列->BOMID、PN、AltQty、Plant、EditDate 我需要将这个查询写入LINQ SELECT MSR.PN, Buyer, MSR.EditDate, MSR.Plant FROM MSR JOIN BomDetail bd ON MSR.PN = bd.PN AND MS
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
我需要做两个条件PN必须等于表和工厂的。
我在asp.net MVC中创建了结果视图模型
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();
谢谢。您可以按如下方式执行此操作:
var data = DbContext.BomDetails.Where(x => !string.IsNullOrEmpty(x.AltQty))
.Join(DbContext.MSRs
, bd => new { bd.PN, bd.Plant },
msr => new { msr.PN, msr.Plant },
(bd, msr) => new MSRViewModel
{
PN = msr.PN,
Buyer = msr.Buyer,
Plant = msr.Plant,
EditDate = msr.EditDate
}).ToList().AsEnumerable();
您可以按如下方式执行此操作:
var data = DbContext.BomDetails.Where(x => !string.IsNullOrEmpty(x.AltQty))
.Join(DbContext.MSRs
, bd => new { bd.PN, bd.Plant },
msr => new { msr.PN, msr.Plant },
(bd, msr) => new MSRViewModel
{
PN = msr.PN,
Buyer = msr.Buyer,
Plant = msr.Plant,
EditDate = msr.EditDate
}).ToList().AsEnumerable();