Entity Framework 4 Code Generation Item Игнорирование пользовательского пространства имен инструментов
У меня есть проект, который заканчивается файлом edmx для первой сущности модели. Я установил пространство имен пользовательских инструментов, чтобы объекты попадали в пространство имён, в котором я их хочу. Это немного сработало.
Теперь мне нужно настроить сгенерированный код, с этой целью я добавил элемент генерации кода, но код, который он генерирует по умолчанию, игнорирует пространство имен настраиваемых инструментов.
Помимо того, что я могу редактировать файл tt, что еще отличается от элементов генерации кода? Кроме того, какие-либо мысли о том, как исправить элемент генерации кода по умолчанию, чтобы он уважал пространство имен пользовательских инструментов?
Ответы
Ответ 1
Если вы проверите файл шаблона TT, вы увидите свойство (в окне свойств), которое указывает собственное пространство имен инструмента. Задайте пространство имен здесь, и шаблон должен использовать это в генерации кода, обратите внимание, что это находится в файле TT, вам нужно сделать это для всех файлов TT, которые вы используете для генерации EDMX. Он не использует значение, указанное в файле EDMX.
Исправление может исправить это поведение, но не бойтесь погрузиться в TT. У меня есть сообщение с подробными изменениями, которые вы можете сделать.
http://slappyza.wordpress.com/2010/08/08/getting-the-entity-framework-to-generate-an-interface-for-mocking/
Я также заметил пару других проблем с версией VB. Не уверены, были ли они исправлены.
http://slappyza.wordpress.com/2010/08/03/bug-in-the-ado-net-entity-framework-poco-generator/
Ответ 2
Самым простым решением было бы отредактировать файл .tt
.
Вам нужно найти
string namespaceName = code.VsNamespaceSuggestion();
Затем вы можете заменить его своим пользовательским пространством имен:
string namespaceName = "YourCustomNamespace";
Ответ 3
Измените пространство имен по умолчанию для проекта и перестройте проект.