iSingleResult行数

时间:2011-03-13 12:09:15

标签: c# linq-to-sql

我在我的网络应用程序中使用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));
}

2 个答案:

答案 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时,无需检查长度或计数。