我在Win7盒子上安装了VS2012和latest 32-bit version of ODAC(带有Oracle开发工具的第5版)。一切都是全新安装。在这种环境下,我有一个ASP.NET Web窗体解决方案,该解决方案最初是在VS2010中开发的,它使用基于32位ODAC版本4构建的EDMX文件。
我可以使用服务器资源管理器建立到数据库的连接并查看表,但是现在无法通过更新向导修改EDMX文件。没有表将显示在更新向导中。
这是VS2012更新向导第一步中的连接字符串:
metadata=res://*/Models.EventModel.EventModel.csdl|
res://*/Models.EventModel.EventModel.ssdl|
res://*/Models.EventModel.EventModel.msl;
provider=Oracle.DataAccess.Client;
provider connection string="data source=<serverid>;
persist security info=True;
user id=<userid>"
但是,在我的另一个Win7机器上,我具有完全相同的ASP.NET解决方案的VS2010,EF 4.1和ODAC的先前32位版本(发行版4)的全新安装,但更新向导没有问题。
这是VS2010和ODAC4的更新向导连接字符串:
metadata=res://*/Models.EventModel.EventModel.csdl|
res://*/Models.EventModel.EventModel.ssdl|
res://*/Models.EventModel.EventModel.msl;
provider=Oracle.DataAccess.Client;
provider connection string="DATA SOURCE=<serverid>;
PASSWORD=;
PERSIST SECURITY INFO=True";
USER ID=<userid>"
其他相关信息:
1)我在VS2012 / ODAC5解决方案中使用VS2010 / ODAC4解决方案中的web.config。
2)我已将VS2012解决方案设置为目标.NET 4.5。
3)我确保已通过NuGet安装了EF5,并且已经安装了VS2012 Update 1。
4)我还设置了一个带有VS2010和ODAC5全新安装的包装盒,遇到相同的问题。更新向导中没有表。
问题:
是否需要更改任何web.config设置或其他设置才能解决此问题?如果是这样,设置是什么?
在此先感谢您的帮助。我真的很想使用新的ODAC和VS2012。
最佳答案
在Oracle论坛中找到的This workaround帮助了我。 (请参阅user9948241在12月19日发布的帖子。)Oracle有一个新的论坛页面,上面提到的帖子显然没有进入新的论坛。
显然,在带有最新ODAC的VS2012中,当您设置连接筛选条件时,始终必须包括默认架构以及所需的任何架构。
更新:下面显示的是向导中的“筛选器”选项卡,用于从Visual Studio Server Explorer添加(或修改)数据连接。
仔细查看,请注意,在“选择过滤条件”的“值”字段中,我有两个模式值(实际值已从屏幕快照中删除),以逗号分隔。一个是默认架构值,另一个是我想要的架构。您可以通过单击以红色标记的省略号来设置这些架构值。
出于某种原因,我不必在VS2010中使用ODAC的早期版本进行所有操作,而是删除了默认架构,而只添加了所需的架构。
关于.net - 适用于.NET(11.2.0.3.20)的最新Oracle数据提供程序打破了EF更新向导,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13753139/