LINQ Inner Join - Return 来自两个表的匿名对象

LINQ Inner Join - Return one object from anonymous which is combined from Both Tables

与此 answer 类似,我有一个同时包含 Proudct 和 LanguageAttribute 的匿名对象。然后我需要像这样更新 Proudct 对象的 属性:

public IQueryable<Product> GetProductList()
{

    var result = from p in db.Products
                 join la in db.LanguageAttribute on p.ID equals la.ID
                 where l.LanguageID == "en-US"
                 select new { Proudct = p, Description = la.Description };
    result.ToList().ForEach(i => i.Proudct.Description = i.Description);

    return ???

现在如何 return 从结果对象到调用方法的唯一 Proudct 列表?

给你:

public IEnumerable<Product> GetProductList()
{

    var query = from p in db.Products
                 join la in db.LanguageAttribute on p.ID equals la.ID
                 where l.LanguageID == "en-US"
                 select new { Product = p, Description = la.Description };
    var result = query.ToList();

    result.ForEach(i => i.Product.Description = i.Description);

    List<Product> products = result.Select(i => i.Product).ToList();

    return products;
}

List 没有实现 IQueryable,所以我也更改了 return 方法的类型。如果您仍然需要 IQueryable,您可以再次使用查询。