我试图选择一个字段的最后记录在过滤数据库(这是不同于最后插入的记录)。我尝试在控制器中使用以下代码,而不是字段值,我得到"真"或"假",这取决于过滤后是否有结果。
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();
有人能告诉我如何获得我需要的价值吗?
试试这个。我已经把你的问题的两个部分合并成一个。
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());
如果它不工作,你可能需要告诉我们s
和sifra_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();