在涉及edmx的项目上失败了脚手架

时间:2016-01-26 12:30:13

标签: c# entity-framework scaffolding edmx t4scaffolding

我有两个项目的Demo解决方案:

enter image description here

我已安装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项目上运行时,同一命令可以成功运行!

1 个答案:

答案 0 :(得分:3)

以下是您需要执行的步骤

  1. 具有AdventureWorksModel EDMX(已存在)的类库
  2. 上面的AdventureWorksModel库,安装了EF 6(已经存在)的类库“RepoLayer”
  3. 在“RepoLayer”库中,请 T4Scaffolding.Core.VS2015 T4Scaffolding.VS2015 NuGet包。我希望你使用VS 2015
  4. 为“RepoLayer”库运行脚手架命令 scaffold repository AdvwrksModel.Customer 。存储库和DbContext类已成功创建。这是截图
  5. T4 Scaffolding

    从上面的屏幕截图更新与EDMX名称相关的内容 命令

      

    scaffold repository AdvwrksModel.Customer

    给了我们重要的想法“ AdvwrksModel ”是EDMX名称,名称空间应该是“ AdvwrksModel ”。然后它会正常工作。

    从提供的代码链接;在构建之后,它给出了您提到的相同错误,然后在调查之后它就是名称空间问题。使用点1,2,3,4附加屏幕截图应为“SledModel”,即EDMX名称。第5点是Race的生成存储库

    我想这会解决你的问题。我不确定命名空间与EDMX名称有何不同。

    Update EDMX Name