我在EF 6工作,在尝试运行项目时面临以下问题。
指定的架构无效。错误:
。中存在名称为“TableName”的多个类型 EdmItemCollection在不同的命名空间中。基于公约的映射 需要唯一的名称而不考虑名称空间 EdmItemCollection。
我在StackOverFlow和google上尝试了太多,但没有找到解决方案。我正在使用visual studio 2012.我为整个数据库创建了一个.edmx文件。我在整个项目中搜索了tableName,并且只出现了一次表。
请在这方面帮助我
答案 0 :(得分:6)
最后,我找到了问题的解决方案。 在我上面的问题中,我说我的项目中只有一个edmx文件。从某种意义上说,这是真的。但另一方面则错了。
我正在使用git来管理我的代码。我在另一个项目中创建了另一个edmx文件,并在我的主项目中使用了该项目的引用。
然后我在.gitignore中用dll切换git branch。那些在.gitignore中的dll不能被git替换为新切换的分支的dll。 所以我在我的项目中有两个edmx文件的引用,带有完全构建的dll。
当我仔细检查我的bin文件夹并删除了实际上不属于当前git分支的dll时问题解决了。
我希望它会对你有所帮助。 如果有些事情不清楚,请在这里评论。 感谢
答案 1 :(得分:0)
我花了几个小时来修复它,尝试发布/部署所有项目,但是没有运气。因此,终于发现有一个被两次引用的dll。但是名称略有变化,但内容却差不多。因此,程序不确定要查看哪个文件。我重新部署了所有项目,但还是没有运气。因此,最后从服务器上删除了除webconfig和global asax之外的所有文件。并再次部署文件。终于成功了。