【发布时间】:2023-02-09 20:03:28
【问题描述】:
所以我有一个显示我的产品列表的产品表。我在表中的每一行都有一个查看按钮,以便用户可以查看有关该特定产品的其他信息。为此,按钮会传递按下按钮的产品的 ID。这将允许我搜索我的数据库并找到显示此数据的记录。我知道每个产品都有一个唯一的 ID,所以我只需要返回一条记录。
我尝试使用:
private void ViewProductDetails(int id)
{
product = productService.GetProductID(id);
ViewProductPopup = true;
}
public Product GetProductByID(int id)
{
using (var context = _dbContextFactory.CreateDbContext())
{
return context.Products
.Where(x => x.ProductId == id);
}
}
但这不起作用,我收到“无法隐含地将类型 system.linq.iquertable<app.models.product> 转换为 app.models.product”的提示。存在显式转换(是否缺少转换?)'错误。所以我不得不使用一个 Product 类型的列表,当我只返回一个值时它没有意义:
private void ViewProductDetails(int id)
{
productList = productService.GetProductID(id);
selectedProduct = productList[0];
ViewProductPopup = true;
}
public List<Product> GetProductByID(int id)
{
using (var context = _dbContextFactory.CreateDbContext())
{
return context.Products
.Where(x => x.ProductId == id)
.ToList();
}
}
在我的模型中,我有:
public partial class ProductFinderContext : DbContext
{
public ProductFinderContext ()
{
}
public ProductFinderContext (DbContextOptions<ProductFinderContext > options)
: base(options)
{
}
public virtual DbSet<Product> Products{ get; set; }
这是我的问题??
【问题讨论】:
标签: c# linq return blazor-server-side