C#在LINQ中使用左外连接

C#在LINQ中使用左外连接,c#,entity-framework,linq,C#,Entity Framework,Linq,这是我的方法: public IEnumerable<Web_Vendor> GetSaleBrands() { using (var _db = new LuxedecorContext()) { IQueryable<Web_Vendor> web_vendors = _db.Web_Vendor. Where(x => (_db.Web_Promotion.Where(z => z.Vend

这是我的方法:

public IEnumerable<Web_Vendor> GetSaleBrands()
{
    using (var _db = new LuxedecorContext())
    {
        IQueryable<Web_Vendor> web_vendors = _db.Web_Vendor.
        Where(x =>
        (_db.Web_Promotion.Where(z => z.VendorID != string.Empty
            && z.Static == true && z.Percent != 0 &&
            (x.WebPromotion.Expires >= DateTime.Now || x.WebPromotion.Expires == null))
            .Select(r => r.VendorID).Contains(x.VendorID))
        ||
        (_db.NavItems.Where(y => x.WebPromotion.VendorID == y.SC1
            && !(y.Promotion == "" || y.Promotion == null)
            && (y.PromotionStart <= DateTime.Now) && (y.PromotionEnd >= DateTime.Now || y.PromotionEnd == null))
            .Select(g => g.SC1).Contains(x.WebPromotion.VendorID)))
        .Where(x => x.Active == true).OrderBy(x => x.NameExtra)
        .ThenBy(x => x.Sequence);

        var a = web_vendors.ToList(); // 16 values
        var b = web_vendors.Include(x => x.WebPromotion).ToList(); // 13 values
    }
    throw new NotImplementedException();
}
public IEnumerable GetSaleBrands()
{
使用(var _db=new LuxedecorContext())
{
IQueryable web\u供应商=\u db.web\u供应商。
其中(x=>
(_db.Web_Promotion.Where(z=>z.VendorID!=string.Empty
&&z.Static==true&&z.Percent!=0&&
(x.WebPromotion.Expires>=DateTime.Now | | x.WebPromotion.Expires==null))
.Select(r=>r.VendorID)。包含(x.VendorID))
||
(_db.NavItems.Where(y=>x.WebPromotion.VendorID==y.SC1
&&!(y.Promotion==“”| | y.Promotion==null)
&&(y.PromotionStart=DateTime.Now | | y.PromotionEnd==null))
.Select(g=>g.SC1.Contains(x.WebPromotion.VendorID)))
.Where(x=>x.Active==true).OrderBy(x=>x.namextra)
.ThenBy(x=>x.Sequence);
var a=web_vendors.ToList();//16个值
var b=web_vendors.Include(x=>x.WebPromotion).ToList();//13个值
}
抛出新的NotImplementedException();
}

我需要将
nullable
值包含到我的Web\u供应商集合中。我知道,这是一个著名的问题,但我需要返回Web_供应商的集合,而不是动态类型的集合。有可能吗?

看一看这篇关于如何在linq中进行左连接的文章:如果您想使用lambda约定进行左连接,请看下面的回答:这里不太清楚您想做什么。如果您解释一下
Web\u供应商
WebPromotion
NavItem
的不同业务实体之间的关系,会有所帮助。如果你能解释一下你要解决的是什么商业领域的问题,这也会有帮助。我需要做一个左外连接。