我在我的网络应用程序中使用LINQ。 我得到了一个iSingleResult结果序列。 我想知道如何获得序列中的返回行数。 如果我这样做:
if (FooterC.Count() != 0)
{
foreach (sp_GetFooterCResult dataRow in FooterC)
{
FooterText.Value = dataRow.ExtraText;
}
}
else
{
FooterText.Value = "";
}
我收到错误: “查询结果不能多次枚举。”
如何检查序列中返回的行数?
请求的LINQ代码:
[Function(Name="dbo.sp_GetFooterC")]
public ISingleResult<sp_GetFooterCResult> sp_GetFooterC([Parameter(Name="Relevant", DbType="NVarChar(50)")] string relevant)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), relevant);
return ((ISingleResult<sp_GetFooterCResult>)(result.ReturnValue));
}
答案 0 :(得分:0)
您是否重构了以下代码? [基于Femaref's answer]:
var footerList = FooterC.ToList();
if (footerList.Count() != 0)
{
foreach (var dataRow in footerList)
{
FooterText.Value = dataRow.ExtraText;
}
}
else
{
FooterText.Value = "";
}
答案 1 :(得分:0)
这个怎么样:
FooterText.Value = "";
foreach (var dataRow in FooterC)
{
FooterText.Value = dataRow.ExtraText;
}
使用foreach时,无需检查长度或计数。