好的,所以我发现我需要将我的解决方案降级到.NET 4.0。为此,我升级到Entity Framework 6.0(应该是.NET 4.0兼容)并将我的所有项目转换为目标4.0框架。在尝试构建我的数据项目时,EDMX有几个错误。我无法正常打开它,但我可以修改XML数据。这是错误:
The type or namespace name "TABLENAME" could not be found.
我在SQL数据库中的几个(但不是全部)表中得到了很多这些。通常情况下,我会进行数据库更新,但由于无法正常打开文件,因此无法在此处进行更新。此外,在edmx中定义的枚举类型会抛出此错误:
The element 'Schema' in namespace 'http://schemas.microsoft.com/ado/2008/09/edm' has invalid child element 'EnumType' in namespace 'http://schemas.microsoft.com/ado/2008/09/edm'. List of possible elements expected: 'Using, Association, CopmlexType, EntityType, Function, EntityContainer' in namespace 'http://schemas.microsoft.com/ado/2008/09/edm' as well as any element in namespace '##other'.
生成此问题的XML:
<EnumType Name="CustomEnum" />
<Member Name="Enum1">
<Member Name="Enum2" />
...
<Member Name="Enum10" />
</EnumType>
我不是这个EDMX文件的创建者,但这些枚举对项目至关重要。
答案 0 :(得分:0)
Entity Framework 4.0与之前和EF 4.1之间的区别很大。系统从'objectcontext'移动到'dbcontext'。如果您只是想让解决方案运行而不是升级到最新版本,我建议删除所有.tt文件,重新启动edmx的生成并使用基本EF 4.0。
如果您想迁移到新的6.0 dbcontext范例,那么您可能需要重新设计几个类以及它们如何与EF交互。