Количество строк в iSingleResult - PullRequest
0 голосов
/ 13 марта 2011

Я использую 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 голосов
/ 13 марта 2011

Как насчет этого:

FooterText.Value = "";
foreach (var dataRow in FooterC)
{
   FooterText.Value = dataRow.ExtraText;
}

Вам не нужно проверять длину или количество при использовании foreach.

0 голосов
/ 13 марта 2011

Вы реструктурировали свой код следующим образом? [На основании ответа Фемарефа ]:

var footerList = FooterC.ToList();

if (footerList.Count() != 0)
            {
                foreach (var dataRow in footerList)
                {
                    FooterText.Value = dataRow.ExtraText;
                }
            }
            else
            {
                FooterText.Value = "";
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...