2009-05-13 2 views
0

Я поддерживаю приложение .NET с помощью Visual Studio 2008. Когда приложение было создано, оно первоначально было в Visual Studio 2003 и использовалось класс System.ComponentModel.Component для доступа к данным. Вы можете перетаскивать команды, соединения и т. Д. На поверхность конструктора компонента.System.ComponentModel.Component в Visual Studio 2008

В 2008 году классы доступа к данным не привязаны к компоненту. I.e., код для команды не генерируется в классе.

  1. когда сделал это изменение? 2005?
  2. есть замена для этого поведения, возможно, с помощью db pro edition?

Спасибо.

ответ

0

«Замена» используется либо с помощью набора данных DataSet (используйте «Добавить-> Новый элемент» и выберите «DataSet», затем перетащите таблицы, представления или хранимые процедуры на поверхность дизайна). Или Entity Framework/LINQ для сущностей.

И, да, это изменилось в VS2005.


Небольшое исследование заставило меня задуматься, потому что «это работает для меня».

  1. Открыть простой класс проект библиотеки
  2. правой кнопкой мыши и выберите «Добавить -> Компонент». Компонент создается и отображается знакомая поверхность дизайна компонента.
  3. Просмотреть панель инструментов. Обратите внимание, что SqlCommand и т. Д. На нем нет. Щелкните правой кнопкой мыши на панели инструментов и выберите «Выбрать элементы».
  4. Введите «System.Data» в поле фильтра. Это поможет вам найти всех ваших старых друзей «SqlConnection», «SqlCommand», «SqlDataAdapter» и даже «DataSet» и «DataView». Выделите их все и нажмите «Ok».
  5. Перетащите SqlConnection на поверхность дизайна. Настройте его как обычно.
  6. Перетащите SqlCommand на поверхность дизайна, настройте как обычно. Я даже установил свойство Connection, чтобы указать на мой первый SqlConnection.
  7. Перетащите «SqlDataAdapter» на поверхность дизайна. Появится нормальное диалоговое окно «Конфигурировать данные». Настройте адаптер, выберите «Создать DataSet» и т. Д.
  8. Сохраните компонент, а затем закройте его.
  9. Откройте компонент снова. Все эти штуки все еще присутствуют.

Что вы пытались, чтобы это не сработало?

+0

Мы действительно используем типизированные DataSets. Я имею в виду не объект переноса данных (DataSet), а доступ к данным (класс компонентов). Раньше вы могли отбрасывать адаптеры, соединения, команды и т. Д. Из Server Explorer на поверхность класса компонентов. Теперь вы не можете. Я ищу замену для этого, а не объект переноса данных. –

+0

Я действительно имел в виду типизированные DataSets. Новый конструктор DataSet создаст строго типизированный класс TableAdapter, который делает то, что использовал класс DataAdapter, но строго типизированным образом. Попробуйте то, что я предложил. Новый DataSet, перетащите таблицы и перетащите хранимые процедуры. Посмотрите на сгенерированный код. Посмотрите, что там. –

+0

Ах, мое замешательство возникло из-за использования «типизированных наборов данных», которые могут использоваться и, как правило, без TableAdapters.Зная, что вы действительно имели в виду TableAdapters, он очищает его для меня, хотя он еще не отвечает на мой вопрос. Меня больше интересует, как использование класса компонентов изменилось для доступа к данным, чем я еще в процессе реорганизации моего решения. Любая идея, как и когда класс компонента изменился в отношении объектов базы данных? –