Чтение ровно одной строки из Linq-to-SQL - PullRequest
4 голосов
/ 08 июня 2011

Я хочу провести рефакторинг некоторых модулей C #, которые читают данные из SQL Server 2008 через Linq-to-SQL.Эти хранимые процедуры выбирают не более одной строки, потому что я передаю полный PK в качестве параметров.Очевидно, что Linq-to-SQL не знает, что может быть возвращено не более одной строки.В результате следующий код запускается, чтобы получить одно значение или вызвать исключение:

    var results = context.MyProcName(myParameter);
    foreach (var result in results)
    {
        return result.THeColumnINeed;
    }
    throw new Exception(string.Format("Value not found for parameter {0}", myParameter));

Этот код выполняет свою работу, но он выглядит некрасиво.Как я могу сделать это лучше?

Ответы [ 2 ]

11 голосов
/ 08 июня 2011
return context.MyProcName(myParameter).Single().THeColumnINeed;
1 голос
/ 08 июня 2011

Попробуйте это:

return context.MyProcName(myParameter).First();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...