2016-01-26 9 views
7

У меня есть демо-решение с двумя проектами, как это:не сумеет Леса строительные на проект, который имеет ссылку на EDMX

enter image description here

я установил T4Scaffolding. Install-Package T4Scaffolding

Я добавил ссылку AdventureWorksModel на мой RepoLayer Проект и установка EF6.


Теперь, когда я пытаюсь запустить следующую команду:

scaffold repository AdventureWorksModel.Customer к моему RepoLayer проекта

я получаю следующее исключение:

Get-ProjectType : Cannot find a type matching the name 
'AdventureWorksModel.Customer'. Try specifying the fully-qualified 
type name, including namespace.` 

хотя та же команда работает успешно, когда Я запускаю его на проекте AdventureWorksModel!

+0

Полностью квалифицированное имя должно быть 'AdventureWorksModel.Sales.Customer'. – jsanalytics

+0

@jstreet Я пробовал это имя, но то же самое исключение –

ответ

3

Вот шаги, которые нужно сделать

  1. библиотека классов, имеющий AdventureWorksModel EDMX (уже присутствует)
  2. библиотека классов "RepoLayer", которая выше библиотеки AdventureWorksModel, EF 6 установлен (уже присутствует)
  3. В библиотеке "RepoLayer", пожалуйста T4Scaffolding.Core.VS2015 и T4Scaffolding.VS2015 Nu Получите пакеты. Я надеюсь, что вы используете VS 2015
  4. Запустить команду лесов. репозиторий леса. AdvwrksModel.Customer для библиотеки «RepoLayer». Репозиторий и класс DbContext будут созданы успешно. Вот скриншот

T4 Scaffolding

Обновление связано с именем EDMX сверху скриншоте Команда

хранилище подмости AdvwrksModel.Customer

дает нам важную мысль "AdvwrksModel "- это имя EDMX и пространство имен должно быть" AdvwrksModel ". Тогда все будет хорошо.

С кодом ссылки прилагается; После строительства он дал ту же ошибку, о чем вы говорили в вопросе, а затем после расследования это вопрос пространства имен. Прикрепление скриншота с точками 1, 2, 3, 4 должно быть «SledModel», то есть EDMX. Точка 5 создается репозиторий для Race

Я думаю, это решит вашу проблему. Я не уверен, как пространство имен отличается от имени EDMX.

Update EDMX Name

+0

i use visual studio 2013 –

+1

Я использовал версию VS 2013, гарантирую, что T4Scaffolding и T4Scaffolding.Core имеют последнюю версию, установленную от NuGet. Мне удалось создать классы репозитория для Customer, Product ... Я попытался использовать .NET 4.5. Я также пробовал работать с .NET 4.0, он работает правильно, возможно, если вы можете обновить последнюю версию T4Scaffolding, они могут работать. –

+0

Я запустил эту команду 'Install-Package T4Scaffolding' в консоли управления пакетами, создав проект по умолчанию' RepoLayer' –