Заставить автоматические классы 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/. Вы можете настроить его по своему желанию.

Другие вопросы по тегам