小编ENX*_*ENX的帖子

实体框架错误 - "EntityContainer名称必须是唯一的"

我们有一个包含两个项目的解决方案 - 控制台应用程序项目和Web应用程序项目.其中每个都具有相同的模式,但用于访问同一数据库的名称不同的.edmx文件.

控制台应用程序在托管Web应用程序的同一服务器上作为计划任务运行.Web应用程序包含对控制台应用程序的引用,因为Web应用程序中的某些操作会导致调用控制台应用程序中的方法.这种组合已在我们的暂存环境中成功运行了好几个月.

在实时发布时,我们每天至少会看到以下错误消息:

指定的架构无效.错误:

ProjectName.csdl(3,4):错误0019:EntityContainer名称必须是唯一的.已定义名为"ProjectEntities"的EntityContainer.ProjectName.csdl(63,4):错误0019:架构中的每个类型名称必须是唯一的.已定义类型名称"ProjectModel.DataSource".ProjectName.csdl(75,4):错误0019:架构中的每个类型名称必须是唯一的.已定义类型名称"ProjectModel.Error".

这将继续,列出我们架构中的所有类型名称.

可以通过回收应用程序池或重新启动IIS来修复此错误.

请注意,在Web应用程序运行一段时间之后才会发生错误 - 在编译或第一次访问应用程序时不会发生错误.

我的初步理论是两个实体容器之间存在冲突,因为Web应用程序引用了控制台应用程序,但它们有不同的名称,这使得错误"EntityContainer名称必须是唯一的.名为'ProjectEntities'的EntityContainer是已定义"令人困惑.

.net entity-framework exception-handling visual-studio

16
推荐指数
3
解决办法
2万
查看次数