3

我有个问题。我在 Visual Studio 中创建了一个数据实体模型。在Linq;

Guid RtuDataId = db.RtuData.Where(x => x.CommunicationUnit.Id == new Guid(ID))
    .OrderByDescending(x => x.ReadOn)
    .LastOrDefault().Id;

我得到错误;

无法识别方法...方法,并且此方法无法翻译为商店表达式。

我在谷歌搜索,但我不明白这个错误。

4

1 回答 1

7

LastOrDefault在 LINQ to Entites 中不受支持。我不确定您为什么使用OrderByDescending,而是可以使用OrderBy然后选择First。如果您Guid在查询之前创建新的,然后将其传递给您的 where 子句,它也会更好,例如:

var guid = new Guid(ID);
Guid RtuDataId = db.RtuData
                   .Where(x => x.CommunicationUnit.Id == guid)
                   .OrderBy(x => x.ReadOn)
                   .FirstOrDefault()
                   .Id;

由于FirstOrDefault可能返回,所以您应该在访问之前null检查nullId

于 2013-11-06T20:40:38.927 回答