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,您可以再次使用查询。
与此 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,您可以再次使用查询。