使用 Lambda 表达式从模型中获取值

本文关键字:获取 模型 Lambda 表达式 使用 | 更新日期: 2023-09-27 18:33:17

尽管进行了大量搜索,但我无法从数据库中获取所需的信息,从而无法获得正确的 Lambda 表达式。我的问题是这样的:

控制器中的 Action 方法获取 id 值作为 in 参数。使用 id,我想在产品类中获取与 id 与产品类别 ID 匹配的名称。我已经开始了,但我不知道如何完成它。我可以得到一些帮助吗?我想我在这里做错了?

ViewBag.Categori = db.Products.Where(x => x.Name.Equals(??))

使用 Lambda 表达式从模型中获取值

获取与特定id匹配的产品名称,请编写以下LINQ查询

db.Products.Where(x => x.Id == desiredId)
           .Select(x => x.Name)
           .SingleOrDefault()

如果我理解正确,则无需按name属性进行过滤,而是按id属性进行过滤。

像这样:

    var product = db.Products.Where(x => x.CategoriesID == id).FirstOrDefault();
    if(product != null)
    {
    ViewBag.Categori = product.Name;
    }

如果没有具有指定 ID 的产品,则FirstOrDefault将仅返回第一个匹配项或 null。

当你返回一个结果时,你可以使用FirstOrDefault。

ViewBag.Categori = db.Products.FirstOrDefault(x => x.Id == id).Name

在上面的代码中,我假设您的产品有一个键字段 Id,传入的参数名称是 id。

ViewBag.Categori = db.Products.Where(x => x.CategoriesID == id).FirstOrDefault().Name;                           

试试这个

   ViewBag.Categori = DB.Context.Products.Where(w => w.ProductTypeId == id).Select(s => new
        {
            Name = s.ProductName
        }).FirstOrDefault();