Вопрос

LINQ to SQL позволяет сопоставлениям таблиц автоматически преобразовывать туда и обратно в Enums путем указания типа столбца — это работает для строк или целых чисел.

Есть ли способ сделать преобразование нечувствительным к регистру или добавить в него собственный класс сопоставления или метод расширения, чтобы я мог более подробно указать, как должна выглядеть строка.

Причины для этого могут заключаться в том, чтобы обеспечить более удобное соглашение об именах внутри какого-нибудь нового необычного кода C# в системе, где схема данных уже установлена ​​(и на нее полагаются некоторые устаревшие приложения), чтобы фактический текст в базе данных мог быть быть изменено.

Это было полезно?

Решение

Вы всегда можете добавить частичный класс с тем же именем, что и ваш класс LinqToSql, а затем определить свои собственные параметры и функции.Затем они будут доступны как параметры и методы объекта для этого объекта, так же, как доступны автоматически сгенерированные методы LinqToSql.

Пример:У вас есть класс LinqToSql с именем Car который сопоставляется с таблицей автомобилей в БД.Затем вы можете добавить файл в App_Code со следующим кодом:

public partial class Car {
  // Add properties and methods to extend the functionality of Car
}

Я не уверен, что это полностью соответствует вашему требованию изменить способ отображения Enums в столбец.Однако вы можете добавить параметр, в котором свойства get/set будут работать для сопоставления нужных вам перечислений, сохраняя при этом регистронезависимость.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top