实体框架的简单名称会引起一些项目的问题,但不会引起其他项目的问题
本文关键字:项目 问题 其他 框架 简单 实体 | 更新日期: 2023-09-27 18:21:45
我有一个Visual Studio 2015解决方案,其中包含大约20个项目。每个项目都引用了2个使用Entity Framework 6的类库。在这些类库中,我们有类似的命名对象,它们位于不同的名称空间中。在添加了一个新的Azure Web作业项目后,我现在得到了以下异常(仅针对Web作业项目):
EntityFramework.dll 中发生类型为"System.NotSupportedException"的未处理异常
附加信息:类型"AAA.BBB.Entity"和类型"AAA.BBB.Entitys.Entity"都具有相同的简单名称"Entity",因此不能在同一模型中使用。给定模型中的所有类型都必须具有唯一的简单名称。在Code First fluent API中使用"NotMappedAttribute"或调用Ignore可从模型中显式排除属性或类型。
其他几个项目可以工作并且不会抛出此异常-一个REST API、Websockets API、测试项目和std web应用程序。我比较了项目引用、属性、包等,但不知道有什么区别。我能看到的唯一区别是,Web作业是一个控制台应用程序,其他的是Web应用程序和测试项目。
这是EF-https://entityframework.codeplex.com/workitem/483.不幸的是,由于EF6的架构,它将非常难以修复。请注意,如果模型中只使用了一个冲突类,那么如果使用的是"代码优先",则应该没问题,但如果使用EDMX模型,则会失败。尝试在同一模型中使用这两种类型总是会失败,无论您是使用代码优先还是EDMX。