C# · 12月 27, 2021

c# – 如何使用LINQ加载实体的最后一条记录?

我想从最后一个记录中获取名为“Gram”的值,并将其值放入一个变量中,而不使用任何条件.

首先我试过

int value = int.Parse(Entity.TblGold.LastOrDefault().Gram.ToString());

第二我试过

int value = int.Parse(Entity.TblGold.Select(p => p.Gram).Last().ToString());

我只收到这个例外:

LINQ to Entities does not recognize the method ‘DataModel.TblGold LastOrDefault[TblGold](System.Linq.IQueryable“1[DataModel.TblGold])’ method,and this method cannot be translated into a store expression.

解决方法 LINQ to Entities不支持Last或LastOrDefault.您可以使用ToList或ToArray迭代您的查询,然后应用上一个或您可以通过降序进行排序,然后使用第一个像: int value = int.Parse(Entity.TblGold .OrderByDescending(p => p.Gram) .Select(r => r.Gram) .First().ToString());