7

我有两个这样的项目的演示解决方案:

在此处输入图像描述

我已经安装了T4ScaffoldingInstall-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项目上运行相同的命令时成功运行它!

4

1 回答 1

3

这是您需要执行的步骤

  1. 具有 AdventureWorksModel EDMX 的类库(已经存在)
  2. 安装在 AdventureWorksModel 库、EF 6 之上的类库“RepoLayer”(已经存在)
  3. 在“RepoLayer”库中,请使用 T4Scaffolding.Core.VS2015T4Scaffolding.VS2015 NuGet 包。我希望你使用 VS 2015
  4. 为“RepoLayer”库运行脚手架命令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 回答