如何解决这些错误:
使用的工具:VS 2012,Entity Framework 5.0.0,T4MVCExtensions 3.5.0,.NET Framework 4.5
我一直在大型MVC解决方案中的项目中使用EF和T4模板而没有发生任何事故。现在,当我右键单击edmx图时,EF会响应以下消息:值不在预期范围内。当我编译EF项目时,它会回复这些消息:
数据库中的每个表都有一个主键。我突然意识到这个问题突然出现了。有没有人有一些建议如何解决这个问题?
提前致谢,
阿诺德
答案 0 :(得分:70)
我有类似的问题,我试过VS2012和VS2013。
重新安装Visual Studio 2012的Entity Framework 6工具之后 http://www.microsoft.com/en-us/download/confirmation.aspx?id=40762 一切都恢复正常。
答案 1 :(得分:28)
在VS 2012中,只有在 Microsoft Web开发人员工具或 Microsoft SQL Server数据工具< Microsoft Web开发人员工具时才会安装 EF.Utility.CS.ttinclude 文件/ strong>组件被选中。
答案 2 :(得分:4)
为Visual Studio 2012重新安装Entity Framework 6工具http://www.microsoft.com/en-us/download/confirmation.aspx?id=40762为我工作
答案 3 :(得分:0)
对于VS2017,我最终将EF6.Utility.CS.ttinclude添加到模型的文件夹中。这解决了MySql和EF的问题。
可以找到以下文件:C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Entity Framework Tools \ Templates \ Includes \ EF6.Utility.CS.ttinclude
更新为避免上述操作,请完全删除实体,然后重新添加以解决问题。
答案 4 :(得分:0)
Visual Studio 2017
得到了同样的错误,但仅限于测试项目。在检查测试项目和另一个项目成功引用该文件后,我发现将以下内容添加到失败项目的app.config中解决了我的问题
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<connectionStrings>
答案 5 :(得分:0)
在使用此功能在Professional中工作之后,最近安装了VS2017 Enterprise会出现此问题 我的解决方案是:
答案 6 :(得分:0)
上述所有解决方案均不适用于我,因此我创建了一个新项目,以查看问题是否仍然存在,但在新创建的项目中未发生错误。然后,我将项目与旧备份进行了比较,以检查最近所做的更改并发现了问题。降级后,我最近将
答案 7 :(得分:0)
就我而言,问题是由一个奇怪的文件夹名称(用%20
而不是空格)引起的。我只是使用空格而不是%20
到同一文件夹建立目录连接,所以解决了该问题。
这是我用来建立连接的PowerShell命令:
cd "c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\"
mklink /j "Entity Framework Tools" "Entity%20Framework%20Tools"
Junction created for Entity Framework Tools <<===>> Entity%20Framework%20Tools
然后您可以使用ls
查看目录内容,并且应该看到这两行(为简洁起见进行了编辑):
Mode LastWriteTime Length Name
---- ------------- ------ ----
...
d----l 2/27/2019 9:57 AM Entity Framework Tools
d----- 2/26/2019 12:24 PM Entity%20Framework%20Tools
...
在“模式”下,l
表示它是一个“链接”(也称为结点),而d
表示它是一个目录。通过建立联结而不是重命名文件夹,可以确保两个目录名都将始终起作用。