Linq 查询“帮助”
Posted
技术标签:
【中文标题】Linq 查询“帮助”【英文标题】:Linq Query 'Help' 【发布时间】:2020-04-06 05:30:23 【问题描述】:我有一个查询示例,如下所示。我有两个名为产品和类别的表。但我希望他按名称而不是 id 进行搜索。我进行了加入,但出现如下错误。我收到错误 "from p in context.Products"
的部分。我收到的错误是 Could not find an implementation of the query pattern for source type. 'Join' not found.
public List<Product> GetProductsByCategory(int categoryId)
using (var context= new NorthwindContext())
var query= from p in context.Products
join c in context.Categories on p.CategoryId equals c.CategoryId
select new
ProductName= p.ProductName,
QuantityPerUnits = p.QuantityPerUnit,
UnitPrice = p.UnitPrice,
UnitInStock = p.UnitsInStock,
Category = c.CategoryName
;
return query.ToList();
这个错误的原因是什么?我该如何解决。
【问题讨论】:
您为什么认为这是按类别获取产品?您尚未按传入的 categoryId 过滤数据。 因为我有两个表,我需要加入它们并按类别名称列出它们。 你完全忽略了我的意思。你有一个名为GetProductsByCategory
的方法,它接受一个名为categoryId
的参数,你什么也不做。您需要过滤传入的参数返回的结果。如果要按类别名称过滤,则需要按类别名称过滤。简单地进行连接不是一回事。
这能回答你的问题吗? Could not find an implementation of the query pattern
不完全是。发送参数“List 尝试为 linq 添加 using 语句:
using System.Linq;
【讨论】:
哦,谢谢。我完成了。现在“返回查询.ToList();”我遇到了错误。我正在研究分层架构。 错误是什么?在上面的代码中,“查询”是未定义的。也许你正在寻找 sorgu.ToList() dgwProduct.DataSource = _productService.GetProductsByCategory(Convert.ToInt32(cbxCategory.SelectedValue));我想用表单中的组合框搜索数据。“cbxCategory.SelectedValue”我发送一个形式的参数。 发送参数“List以上是关于Linq 查询“帮助”的主要内容,如果未能解决你的问题,请参考以下文章