错误:命名空间不能直接包含成员,例如找不到字段 EntityFramework.dll'



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

错误1:

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

错误2:

正在编译转换:元数据文件"C:Program Files (x86)Microsoft Visual Studio 12.0Common7Tools..IDEEntityFramework.dll"无法找到F:projectWebApplication8WebApplication8ModelsAllahHelp。[1]

如果在将。tt文件转换为类文件时出现错误,则类文件将在源文件中显示"ErrorGeneratingOutput",这会导致"命名空间不能直接包含诸如字段之类的成员"错误,但实际上与此没有任何关系。

你的实际错误听起来像你错过了对EntityFramework.dll的参考。右键单击项目,选择"Manage NuGet Packages…",找到并安装EntityFramework到你的项目。

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

根据这个类似的问题,它也可能是因为你的安装路径。如果这是你的问题,试着找到dll在哪里,并纠正环境变量VS120COMNTOOLS(控制面板->系统->高级系统设置->环境变量->系统变量)

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

当尝试使用.tt模板构建项目时,我得到了这个错误。我通过检查我使用c#代码注入的所有地方来修复这个问题,并确保我通过包含#>关闭了c#代码的每个部分。

的例子:

有问题的代码:

{
          "find": "__LOCATION__",
          "replaceWith": "<#= deployment.Location"
},
固定代码:

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

相关内容

最新更新