Как преобразовать вывод хранимой процедуры в коллекцию экземпляров анонимного класса? - PullRequest
0 голосов
/ 26 октября 2010

У меня много кода pre-linq C # 1.0, который преобразует выходные данные хранимой процедуры (SQL 2005) в коллекцию объектов.Он выглядит следующим образом:

  1. Объявление класса со свойствами, соответствующими столбцам в выходных данных.
  2. с использованием SqlDataReader, цикл, пока есть строки для чтения
  3. Для каждогострока, добавьте объект в список
  4. , верните этот список

Хотя большая часть этого кода была сгенерирована, я думаю, что linq должен предусмотреть более умный способ сделать это.Должен ли я явно объявить класс?В C # 3.0 как мне преобразовать вывод хранимой процедуры в коллекцию объектов?

В идеале я хотел бы генерировать код, потому что мне не нравятся мастера.Спасибо!

Редактировать: У меня нет файла dbml.Должен ли я иметь его, если я использую linq для sql?Если да, то как его создать?

1 Ответ

1 голос
/ 26 октября 2010

Если вы храните хранимые процедуры и не пишете запросы LINQ to SQL, вы можете просто перетащить хранимые процедуры в файл dbml, и он создаст для вас классы. Вы можете сделать это двумя способами, если я правильно помню.

1) Вы можете получить карту результата возврата к виду.

2) Вы можете автоматически создать класс для вас.

Если ваша хранимая процедура похожа на GetCustomers, она создаст класс с именем что-то вроде GetCustomersResult или что-то в этом роде. Если у вас есть представление с именем uvCustomers, вы можете указать ему использовать это представление вместо того, чтобы иметь разные классы для каждой хранимой процедуры, которая возвращает одинаковые столбцы.

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