0

在此处输入图像描述我想add > class > ado.net entity为我的 db 第一个项目创建模型:并且还想通过 asp.netscaffolding 创建 CRUD 操作,但未能使用必要的代码创建模型。因此我未能创建脚手架。在我的模型文件AllahHelp.Context.cs中,没有代码,只有文本“ErrorGeneratingOutput”。

错误一:

命名空间不能直接包含字段或方法等成员 F:\project\WebApplication8\WebApplication8\Models\AllahHelp.Context.cs 1 1 WebApplication8

错误2:

编译转换:找不到元数据文件'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools..\IDE\EntityFramework.dll' F:\project\WebApplication8\WebApplication8\Models\AllahHelp.tt 1 1 Web应用程序8

4

2 回答 2

2

如果将 .tt 文件转换为类文件时出错,您的类文件将在源文件中只有“ErrorGeneratingOutput”,这会导致“命名空间不能直接包含字段等成员”错误,但实际上并没有任何内容与此有关。

您的实际错误听起来像是您缺少对EntityFramework.dll. 右键单击项目,选择“管理 NuGet 包...”并找到 EntityFramework 并将其安装到您的项目中。

在某些情况下,我还遇到了一个问题,因为转换发生在文件被复制之前,引用的 dll 永远不会被复制,因为错误发生并停止进程。在这种情况下,您需要暂时从项目中删除模型,成功编译项目,然后重新添加模型。

根据这个类似的问题,也可能是因为您的安装路径。如果这是您的问题,请尝试查找 dll 所在的位置,并更正环境变量VS120COMNTOOLS(控制面板 -> 系统 -> 高级系统设置 -> 环境变量 -> 系统变量)

(但要小心更改系统变量。)

于 2016-09-23T16:05:31.973 回答
0

尝试使用 .tt 模板构建项目时出现此错误。我通过检查我使用 C# 代码注入的所有地方并确保通过包含#>.

例子:

有问题的代码:

{
          "find": "__LOCATION__",
          "replaceWith": "<#= deployment.Location"
},

固定代码:

{
          "find": "__LOCATION__",
          "replaceWith": "<#= deployment.Location #>"
},
于 2021-07-16T00:41:33.517 回答