Заставить автоматические классы linq to sql иметь свойства pascal case?
Моя база данных SQL имеет имена столбцов в случае верблюда. Я использую Linq для SQL с C#.
Есть ли способ заставить автогенерацию свойств быть в паскале?
Свойства дела верблюда не соответствуют стандартам C#, и каждый раз, когда мне нужно заново создать классы, это трудно сделать вручную.
2 ответа
Если ваша база данных очень большая и переименование сущностей вручную занимает много времени, то:
- Скачайте шаблоны LINQ to SQL для T4 и добавьте два файла в свой проект
CSharpDataClasses.tt
а такжеL2ST4.ttinclude
, - переименовывать
`CSharpDataClasses.tt
соответствовать вашемуdbml
имя файла (например,Northwind.tt
) - Выбрать
dmbl
файл (например,Northwind.dbml
) и удалитьMSLinqToSQLGenerator
отCustom Tool
имущество. - открыто
L2ST4.ttinclude
и измените его, как описано далее - Выбрать
Northwind.tt
файл и нажмитеCtrl+S
(это запустит генерацию классов SQL LINQ 2).
Изменения файла L2ST4.ttinclude:
Найти определение класса Data
(вверху файла) и вставьте этот код перед ним:
class Lazy
{
public static string FirstLetterToUpper(string str)
{
return Char.ToUpper(str[0]) + str.Substring(1);
}
}
Тогда найдите определение класса Table
и в конструкторе заменить Member
инициализация свойства с
Member = Lazy.FirstLetterToUpper((String)xe.Attribute("Member"));
Найти класс Class
и в конструкторе заменить Name
инициализация свойства с
Name = Lazy.FirstLetterToUpper((String) xe.Attribute("Name"));
И наконец, найти класс Association
и в его конструкторе
typeName = Lazy.FirstLetterToUpper((String) xe.Attribute("Type"));
PS Если вам действительно лень, то используйте этот файл L2ST4.ttinclude, уже измененный мной:)
Я предлагаю шаблоны LINQ to SQL для проекта T4 http://l2st4.codeplex.com/. Вы можете настроить его по своему желанию.