实体框架 – 实体框架4.3到Oracle:Web项目有效,NUnit没有

前端之家收集整理的这篇文章主要介绍了实体框架 – 实体框架4.3到Oracle:Web项目有效,NUnit没有前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用DevArt的提供程序针对Oracle数据库设置了Entity Framework 4.3.我通过NUnit 2.6测试运行器中的单元测试项目连接到数据库时遇到问题.有趣的是,我有一个ASP.NET MVC 3项目连接到它就好了.我在我的类库单元测试项目中创建了一个App.config,并将实体连接字符串信息复制到它.我错过了什么?

这是实体连接信息(在Web.config和App.config中相同):

<connectionStrings>
    <add name="Entities" connectionString="Metadata=res://*/Entities.MagellanDataModel.csdl|res://*/Entities.MagellanDataModel.ssdl|res://*/Entities.MagellanDataModel.msl;provider=Devart.Data.Oracle;provider connection string=&quot;User Id=theusername;Password=thepassword;Server=theTNSname&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

这是异常信息:

AppName.Tests.AccountRepositoryTests.GetByContactId:
System.Data.EntityException : The underlying provider Failed on Open.
----> System.InvalidOperationException : Can not obtain Oracle client information
      from registry. Make sure that Oracle Client Software is installed,or use 
      Direct mode of connecting to server.

注意:Web和单元测试程序集都设置为编译到任何cpu.我在64位Windows 7上运行32位Oracle 10g数据库.我发现一个帖子似乎表明它与需要x86的平台相关,但是我的web项目设置为Any cpu并且工作正常.

解决方法

我有一个类似的问题:Win7 64位DevArt与32位Oracle.

适用于Web项目的任何cpu,但对于控制台和单元测试项目都失败.我通过在调试模式下为测试和控制台项目设置x86来修复它(或解决它).

猜你在找的Oracle相关文章