Строки LINQ to SQL для перечислений
-
08-06-2019 - |
Вопрос
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 будут работать для сопоставления нужных вам перечислений, сохраняя при этом регистронезависимость.