将ExecuteQuery()输出的结果转换为列表后出现错误

本文关键字:列表 错误 转换 结果 ExecuteQuery 输出 | 更新日期: 2023-09-27 18:30:05

我正在为我的项目使用linq来sql。但在我使用.ToList()扩展名转换ExecuteQuery()的结果后出现错误

var logentries = DB.ExecuteQuery<keyValueList>(string.Format(query));
keyValueList kv1 = logentries.ToList();// -->Error in this line as: 

错误:

无法隐式转换类型"System.Collections.Generic.List"到"DataLib.keyValueList"

将ExecuteQuery()输出的结果转换为列表后出现错误

ToList返回一个List<T>,其中TkeyValueList。但我认为你想要一个单独的对象,然后使用First/FirstOrdefaultSingler/SingleOrDefault:

keyValueList kv1 = logentries.FirstOrDefault();

不同之处在于,如果输入序列为空,则...OrDefault方法返回null,而First/Single抛出exeption。此外,如果有多个项,Single会抛出异常(如果这是不可能的,并且应该抛出,例如因为您正在通过唯一属性进行筛选,则会很有用)。