我有一个Linq查询,返回一个IQueryable<ClassX>
类型的对象。我想将此对象放入类类型ClassX
的对象中,并得到一个错误:
无法将类型'System.Linq.IQueryable<ClassX>'
隐式转换为
'ClassX'
。存在显式转换(您是否缺少演员表?)
这就是我想要做的:GetResult()
返回IQueryable<ClassX>
对象。
ClassX x = GetResult();
我已经尝试过像
ClassX x = (ClassX)(GetResult());
这样的转换-但它没有用。 最佳答案
您可能已经知道,您的LINQ查询返回IQueryable<ClassX>
。这表示带有结果集的查询。它不代表结果本身中的对象,因此您不能像这样强制转换它。
如果您的方法将恰好返回一个ClassX
对象,则可以使用.Single()
从结果集中获取该对象:
ClassX x = GetResult().Single();
或
.SingleOrDefault()
如果结果集可能为空:ClassX x = GetResult().SingleOrDefault();