C# 枚举SqlQuery结果的实体框架

C# 枚举SqlQuery结果的实体框架,c#,enumeration,entity-framework-4.3,C#,Enumeration,Entity Framework 4.3,尝试查看SqlQuery的结果时出现奇怪错误: var sql = "SELECT @someParam"; var someParamSqlParameter = new SqlParameter("someParam", "Some Value"); var result = _dbContext.SqlQuery<string>(sql, someParamSqlParameter); var containsAnyElements = result.Any(); var s

尝试查看SqlQuery的结果时出现奇怪错误:

var sql = "SELECT @someParam";
var someParamSqlParameter = new SqlParameter("someParam", "Some Value");
var result = _dbContext.SqlQuery<string>(sql, someParamSqlParameter);
var containsAnyElements = result.Any();
var sql=“选择@someParam”;
var someParamSqlParameter=新的SqlParameter(“someParam”,“Some Value”);
var result=_dbContext.SqlQuery(sql,someParamSqlParameter);
var containsAnyElements=result.Any();
所以,当调试器位于最后一行时,当我尝试展开结果的结果视图时,它会显示预期的
结果(“某个值”)
,但在调用最后一行时,我遇到了一个异常

“SqlParameter已包含在另一个 SqlParameterCollection。“

当我试图打开Result的结果视图时,它会再次调用此查询。这种行为是否正确?如果是,请解释原因

看起来,当我试图打开结果的结果视图时,它会再次调用此查询

你说得很对,你看到了

Database.SqlQuery
返回一个
IEnumerable
对象,该对象实际上是以下类型的对象:

System.Data.Entity.Internal.InternalSqlQuery<T>

result
的类型现在是
List
,它包含了您的查询结果。

很好的解释。非常感谢你这么快和清晰的回答。好朋友。我快发疯了,所有其他同一主题的答案都没有任何帮助。我一辈子都搞不清楚这个问题是如何产生报告的错误消息的。说真的。。。我只花了6个小时。。。答案是去。ToList()??精彩的!
var result = _dbContext.SqlQuery<string>(sql, someParamSqlParameter).ToList();