Linq to Entities"无法识别方法...方法,并且此方法无法转换为商店表达式."

use*_*228 3 c# linq database ado.net-entity-data-model

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

Guid RtuDataId = db.RtuData.Where(x => x.CommunicationUnit.Id == new Guid(ID))
    .OrderByDescending(x => x.ReadOn)
    .LastOrDefault().Id;
Run Code Online (Sandbox Code Playgroud)

我得到错误;

无法识别方法...方法,并且此方法无法转换为商店表达式.

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

Hab*_*bib 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;
Run Code Online (Sandbox Code Playgroud)

由于FirstOrDefault可能会返回null,因此您应该null在访问之前进行检查Id