7

次のような 2 つのプロジェクトのデモ ソリューションがあります。

ここに画像の説明を入力

をインストールしT4Scaffoldingました。Install-Package T4Scaffolding

AdventureWorksModelプロジェクトへの参照を追加し、RepoLayerEF6 をインストールしました。


次のコマンドを実行しようとすると:

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!

4

1 に答える 1

3

ここにあなたがする必要があるステップがあります

  1. AdventureWorksModel EDMX を含むクラス ライブラリ (既に存在)
  2. 上記AdventureWorksModelライブラリ、EF6に搭載されたクラスライブラリ「RepoLayer」(既出)
  3. 「RepoLayer」ライブラリで、T4Scaffolding.Core.VS2015およびT4Scaffolding.VS2015 NuGet パッケージを作成してください。VS 2015 を使用していただければ幸いです
  4. "RepoLayer" ライブラリに対してscaffolding コマンドscaffold repository AdvwrksModel.Customerを実行します。リポジトリと DbContext クラスが正常に作成されます。ここにスクリーンショットがあります

T4足場

上記のスクリーン ショットからの EDMX 名に関連する更新 コマンド

足場リポジトリ AdvwrksModel.Customer

AdvwrksModel」は EDMX 名であり、名前空間は「AdvwrksModel」である必要があります。その後、それはうまくいきます。

提供されたコードリンクから; ビルド後、問題で言及したのと同じエラーが発生し、調査の結果、名前空間の問題でした。ポイント 1、2、3、4 を含むスクリーンショットを添付する場合は、「SledModel」、つまり EDMX 名にする必要があります。ポイント 5 は Race 用に生成されたリポジトリです

これで問題が解決すると思います。名前空間が EDMX 名とどのように異なっていたのかはわかりません。

EDMX 名の更新

于 2016-01-30T15:44:20.593 に答える