我想查询一个数据表,在该表中我根据一些数据选择行列表,并按日期对行进行排序,并获取具有最新日期的行。这就是我所做的
var propertyValueId = _dbSis.Set<PropertyValue>()
.Where(m => m.PropertyInstanceId == id)
.OrderBy(z => z.TimeStamp);
var pvalueId = propertyValueId.ElementAtOrDefault(0);
但我得到了错误 propertyValueId.ElementAtOrDetault(0);
LINQ to Entities does not recognize the method 'Sorama.DataModel.SIS.Configuration.PropertyValue ElementAtOrDefault[PropertyValue](System.Linq.IQueryable`1[Sorama.DataModel.SIS.Configuration.PropertyValue], Int32)' method, and this method cannot be translated into a store expression.
我如何才能达到我的期望,以及如何解决错误?
似乎很奇怪,FirstOrDefault()
这行不通。
var pvalueId = propertyValueId.FirstOrDefault();
如果不支持:
var pvalueId = propertyValueId.Take(1).SingleOrDefault();
或者,如果一些奇怪的原因,你的L2EF提供商不能处理FirstOrDefault
,Take
或者SingleOrDefault
,你可以蛮力它:
PropertyValue pvalueId = null;
foreach (var pv in propertyValueId)
{
pvalueId = pv;
break;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句