2010-11-12 3 views
2

У меня есть неудачная проблема с тем, что в базе данных, которую я пытаюсь использовать с LINQ to SQL, есть таблица с именем «System». Побочным эффектом этого является то, что существуют огромные конфликты пространства имен, когда был создан .dbml.LINQ to SQL Проблема с таблицей с именем 'System'

Переименование таблицы не является вариантом.

Любые идеи, которые у вас могут быть, были бы очень признательны!

ответ

1

Добавить _ до или после имени в DBML файле

+0

Фактически, это то, что я закончил, и это было самым простым решением. Большое спасибо. – Didaxis

+0

У меня не было проблем с такой же проблемой :) – Kimtho6

1

Я думаю, что лучшим вариантом будет переименовать таблицу в конструктор/отображения, даже если вы не можете переименовать его в БД.

+0

Спасибо. Я боялся этого. Это просто много усилий, связанных с изменением имен таблиц. Я пытался избежать этого. Ну, предположим, я начну ... – Didaxis

1

Я обычно создаю свои собственные классы Linq для Sql вместо использования файлов .dbml. Соглашение об именах, которое я использую, - TableName + «Dto». Dto для объекта передачи данных. Если перетащить ваши собственные классы Dto не является вариантом, вы можете просто пойти в конструктор, отредактируйте имя вашей системной таблицы dbml в SystemDto. Он по-прежнему будет правильно отображать объект базы данных, и все же у вас не будет конфликтов имен. Если вам интересно увидеть, как какое-то ручное катание дало мне знать :). Надеюсь это поможет!

1

Вы должны отключить функцию «Плюрализировать новые объекты».

Посмотрите:

http://weblogs.asp.net/scottgu/archive/2007/05/29/linq-to-sql-part-2-defining-our-data-model-classes.aspx

Легче и лучший способ просто добавить пространство имен в контексте. Щелкните правой кнопкой мыши на конструкторе Linq to SQL -> свойство -> ContextNameSpace

+0

Добавление пространства имен было легким и устранить проблему. Спасибо. – Didaxis