Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 带WHERE条件的LINQ连接_Asp.net Mvc_Entity Framework_Linq_Lambda - Fatal编程技术网

Asp.net mvc 带WHERE条件的LINQ连接

Asp.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

我在使用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 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();