Linq选择与过滤不工作

本文关键字:工作 过滤 选择 Linq | 更新日期: 2023-09-27 17:49:01

我试图选择一个字段的最后记录在过滤数据库(这是不同于最后插入的记录)。我尝试在控制器中使用以下代码,而不是字段值,我得到"真"或"假",这取决于过滤后是否有结果。

List<Pozicije> poz = new List<Pozicije>();
poz = db.Pozicijes.Where(p => p.grupa == grupa)
                    .OrderBy(p => p.sifra_pozicije).ToList();
string pos = poz.Select(p => p.sifra_pozicije.Contains(s)).LastOrDefault().ToString();

有人能告诉我如何获得我需要的价值吗?

Linq选择与过滤不工作

试试这个。我已经把你的问题的两个部分合并成一个。

 var pos =
     Convert.ToString(db.Pozicijes.Where(p => p.grupa == grupa
                                              && p.sifra_pozicije.Contains(s))
                                  .OrderByDescending(p => p.sifra_pozicije)
                                  .Select(p => p.sifra_pozicije)
                                  .FirstOrDefault());

如果它不工作,你可能需要告诉我们ssifra_pozicije是什么类型。

LastOrDefault不支持LINQ to Entities/LINQ to SQL。你需要做OrderByDescending,然后得到First记录。如:

string pos = db.Pozicijes.Where(p => p.grupa == grupa &&  p.sifra_pozicije.Contains(s)))
            .OrderByDescending(p=> p.sifra_pozicije)
            .Select(r=> r.sifra_pozicije)
            .First();