【发布时间】: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的参数,你什么也不做。您需要过滤传入的参数返回的结果。如果要按类别名称过滤,则需要按类别名称过滤。简单地进行连接不是一回事。 -
不完全是。发送参数“List
GetProductsByCategory(int categoryId);”进入表单的类。它需要带有类别id的名称,而不是带有linq的查询.我正在尝试在页面上置顶架构。我怎样才能做到这一点或找到一个实例
标签: c#