LINQ内部连接-从两个表中组合的匿名返回一个对象
本文关键字:组合 一个对象 返回 两个 连接 内部 LINQ | 更新日期: 2023-09-27 18:09:26
与此答案类似,我有一个包含product和LanguageAttribute的匿名对象。然后我需要像这样更新product对象的属性:
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 ???
现在我如何从结果对象到调用方法返回只有product的列表?
给你:
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,所以我也改变了方法的返回类型。如果你仍然需要IQueryable,你可以再次使用query。