Хранить перечисления в sql-сервере, используя Linq-to-sql - PullRequest
10 голосов
/ 20 октября 2011

Как вы храните перечисления в sql-сервере, используя linq-to-sql?

В моем коде много преобразований в int и обратно.Там должен быть лучший путь.Что я пропустил?

sqlItem.enumValue = (int)myEnumValue;
...
myEnumValue = (MyEnumType)sqlItem.enumValue

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

Может ли это быть решено с помощью метода расширения для моих linq-to-sql-классов, и если да, то как это будет выглядеть?

1 Ответ

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

Вы можете использовать сопоставление для типов из базы данных из редактора DBML.

Предполагая, что вы работаете из Visual Studio (порядок выполнения этих действий может сильно раздражать, посколькуавтоматически отменяет выбор текущего выбора в редакторе при открытии свойств и т. д.):

  • откройте редактор DBML,
  • откройте представление / вкладку «Свойства»
  • укажите тип в поле «Тип».

По моему опыту, просто ввести тип в виде <namespace>.<type> не всегда удачно, я думаю, что это нюанс, который @Леппи имеет в виду;для безопасности используйте global::<namespace>.<type>.

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