2009-07-28 3 views
1

На работе мы используем типизированный набор данных в некоторых проектах для нашего уровня DataAccess. Иногда мы расширяем их с помощью функции частичного класса: используя код представления в наборе данных, создайте DataSetName.cs с объявлением частичного класса, в котором вы можете добавить код. Внутри этого файла мы также добавляем частичный класс TableAdapter.Проблема генерации набора Visual Studio 2008 (проблема с пространством имен)

Недавно мы мигрировали на Visual Studio 2008 с VS 2005. Поведение генератора набора данных, как представляется, отличается в VS 2008. Она устранила часть в пространстве имен TableAdapter в файле .cs:

Пример:

Оригинальный код:


namespace ClassLibrary1.Dataset.DataSet1TableAdapters 
{ 
    public partial class CategoriesTableAdapter 
    { 
    } 
} 

После миграции в VS 2008:


namespace ClassLibrary1.DataSet1TableAdapters 
{ 
    public partial class CategoriesTableAdapter 
    { 
    } 
} 

Пространство имен изменено! Он был заменен корневым пространством имен проекта.

шаги Размножение:

  1. Создать проект библиотеки классов.
  2. Добавить папку под названием Dataset или что-то еще в проекте.
  3. Добавить набор данных внутри папки (DataSet1).
  4. Отбросьте таблицу в дизайнере набора данных (я использовал таблицу из Northwind).
  5. Щелкните правой кнопкой мыши на наборе данных в Обозревателе решений и выберите Просмотреть код. Он создаст файл DataSet1.cs с частичным классом набора данных внутри.
  6. Скопируйте пространство имен и класс для адаптера таблицы из DataSet1.Designer.cs и вставьте его внутри DataSet1.cs.
  7. Запуск специального инструмента в наборе данных, он работает!
  8. Закрыть решение
  9. Открыть раствор снова
  10. Выполнить пользовательский инструмент для набора данных, имен модифицированное для TableAdapter, очень раздражает :(

Моя машина: Windows Server 2003 R2 Standard Edition SP2 Visual Studio 2008 Pro (9.0.21022.8 RTM) Также протестирован на компьютере коллеги под управлением XP.

Любое уже испытало такое же странное поведение? Я сделал что-то не так? Есть ли что-то новое для настройки внутри Visual Studio 2008, чтобы он работал так, как в VS 2005?

+0

Вы пытались установить пространство имен для настраиваемого инструмента? Предостережение: https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=313984&wa=wsignin1.0 –

+0

Да, я пробовал это, ничего не меняя, к сожалению.Спасибо за ссылку на MS Connect, но я не знаю, связано ли это. Это не новая функция в VS 2008, это хорошо работает на VS 2005 :( –

ответ

0

Visual Studio 2008 SP1 исправил эту проблему.

1

Наличие пространства имен, которое также является именем класса, вызывает путаницу. Microsoft, по-видимому, решила исправить ошибку генерации пространства имен в этом случае. Я бы рекомендовал исправлять ваши пространства имен, а не пытаться найти обходное решение, чтобы использовать его по-старому.

+0

Что вы имеете в виду для исправления моих пространств имен? У меня нет пространства имен, которое соответствует существующему имени класса :( Но спасибо вам за ваше для подсказок это всегда то, что хорошо знать! –