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)
我得到错误;
无法识别方法...方法,并且此方法无法转换为商店表达式.
我在谷歌搜索但我不明白这个错误.
它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