我正在为我的项目使用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'
答案 0 :(得分:0)
ToList
返回List<T>
,其中T
为keyValueList
。但我认为你想要一个对象,然后使用First
/ FirstOrdefault
或Singler
/ SingleOrDefault
:
keyValueList kv1 = logentries.FirstOrDefault();
不同之处在于,如果输入序列为空,...OrDefault
方法返回null
,而First/Single
则抛出一个例外。此外,如果有多个项目,Single
会抛出异常(如果不可能并且应该抛出,则有用,例如因为您使用唯一属性进行过滤)。