Принуждение сгенерированных классов Entity Framework к использованию корпуса Pascal и имен столбцов с использованием Camel
Я работал с Entity Framework 4 и SQL Server. Основная проблема, которую я обнаружил, заключается в том, что имена таблиц в базе данных являются строчными и имеют подчеркивание. Это означает, что когда я создаю сущности в Visual Studio, все классы и свойства должны быть в нижнем регистре с подчеркиванием. Есть ли какой-нибудь способ получить Pascal Casing для созданных классов и Camel Casing для свойств?
Например:
table_name -> для преобразования в TableName
Есть ли какие-то другие шаблоны, которые нужно добавить или каким-либо другим способом добиться этого.
Редактировать имя класса и свойства вручную не рекомендуется, так как у меня огромное количество объектов
2 ответа
Почему бы не использовать шаблон T4 для генерации классов сущностей? Таким образом, вы можете добавить метод для преобразования имен таблиц в соглашение по вашему выбору.
VS поставляется с парой встроенных шаблонов T4 для EF, поэтому очень вероятно, что вы можете просто выбрать один из них и изменить его. Я бы не рекомендовал писать свои с нуля!
Если вы ранее не использовали шаблоны T4, быстрое начало - открыть модель EF в конструкторе, щелкнуть правой кнопкой мыши пустую часть области дизайна и выбрать "Добавить элемент генерации кода". Откроется диалоговое окно с установленными шаблонами T4 для EF, и вы сможете выбрать то, что считаете наиболее подходящим.
Затем можно щелкнуть правой кнопкой мыши файлы шаблона T4 в обозревателе решений (он будет иметь расширение.tt) и выбрать "Запустить пользовательский инструмент" для создания самих сущностей. Вы можете отредактировать файл.tt (это просто текстовый файл, содержащий что-то, что выглядит ужасно как VBScript!) И внести изменения. Затем снова запустите пользовательский инструмент и посмотрите, имеют ли сгенерированные объекты правильные имена.
Надеюсь это поможет.
Следующий пост в блоге имеет отличный ответ о том, как это сделать. Он включает в себя изменение файла шаблона T4, созданного при создании модели данных.