我将ExecuteQuery()输出的结果转换为list后得到错误

时间:2013-09-03 12:40:19

标签: c# sql linq executequery

我正在为我的项目使用linq to sql。但是在使用ExecuteQuery()扩展程序转换.ToList()的结果后收到错误:

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

错误:

  

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

1 个答案:

答案 0 :(得分:0)

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

keyValueList kv1 = logentries.FirstOrDefault();

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