LinqPad добавляет S в конце каждой таблицы - PullRequest
8 голосов
/ 20 октября 2011

Я только что скачал LinqPad, чтобы изучить преимущества использования запросов Linq в приложении, над которым я работаю, однако, когда я смотрю на свои таблицы базы данных в столбце слева, LinqPad отображает все мои таблицы с 's' нанапример, CategoryTbl становится CategoryTbls, но когда я просматриваю свою базу данных в SQL Management Studio, имена таблиц выглядят корректно.

Хотя все таблицы, которые должны иметь S в конце, то есть клиенты, остаются неизменными.* Когда я выполняю запрос Linq, я должен выполнить его для CategoryTbls, но SQL-запрос должен быть выполнен для CategoryTbl.

Мне просто интересно, почему это произошло, это ошибка или особенность?и если это особенность, почему?

Спасибо

Ответы [ 2 ]

12 голосов
/ 20 октября 2011

Первый вопрос из LINQPad FAQ :

Почему LINQPad плюрализует свойства табличных и дочерних ассоциаций? Могу ли я отключить это?

Множественное использование свойств дочерних ассоциаций (при сохранении единичных родительских ассоциаций) обеспечивает наиболее естественные запросы и то, что Visual Studio делает по умолчанию при создании типизированных DataContexts.

Чтобы отключить множественное число, снимите флажок «Pluralize» при добавлении соединения с базой данных. (Если соединение уже создано, щелкните его правой кнопкой мыши, чтобы изменить свойства соединения).

4 голосов
/ 20 октября 2011

Это также стандартное поведение сгенерированных артефактов LINQ2SQL - IEnumerables на DataContext - это [TableName], а Entity - [TableName]. Таким образом, ваши запросы linq обычно будут выглядеть примерно так:

List<Category> categoryList = context.Categories.Where(cat => somePredicateOnCat).ToList();

Это обычно делает для интуитивного чтения. Не могли бы вы исключить венгерский суффикс 'tbl' из своих стандартов именования таблиц?

...