entity-framework - Entity Framework 4.3 到 Oracle : Web project works, NUnit 没有

标签 entity-framework

我已经使用 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 with 32位Oracle。

对于 Web 项目,可以与任何 CPU 配合使用,但对于控制台和单元测试项目则失败。我通过在调试模式下为测试和控制台项目设置x86来修复它(或解决它)

关于entity-framework - Entity Framework 4.3 到 Oracle : Web project works, NUnit 没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10353231/

相关文章:

c# - 不需要的十进制截断

c# - 防止客户端从 API 获取相同的记录

c# - 具有离线存储的 Entity Framework

entity-framework - 首先使用实体​​框架代码添加索引(CTP5)

entity-framework - EF4 和使用 AddObject 意外加载相关集合

具有自定义格式的 C# 通用 DateTime.ToString()

asp.net-mvc-3 - 带有 Ninject 和 EntityFramework 的 ASP.NET MVC 3 中的 ChildAction

c# - GroupBy() 之后展平 IQueryable<T> 时出错

linq - 仅支持初始值设定项、实体成员和实体导航属性

sql-server - 当 Integrated Security=false 时,CREATE DATABASE 权限在数据库 'master' 中被拒绝 - 为什么尝试创建已存在的数据库?