我正在尝试为在.net中使用Oracle的应用程序套件编写数据访问库。我们目前正在使用NHibernate,并且正在考虑迁移,因为它似乎不能得到很好的支持。
我正在使用Visual Studio 2013,我们已经构建了Oracle数据库。我们没有写入更新它(这是数据库人员的域名)。所以这不会成为我们最终计算的一部分。
服务器上的客户端是32位,所以我们现在要坚持使用它。它已经是GAC了,不需要改变它。所以我们的开发盒上有32位客户端。
我通过nuget将EntityFramework 6.1.0安装到我的项目中。我在我的项目中安装了ODAC 1.112.3.20。 32位版本的应用程序。我也安装了ODP.net.x86驱动程序(也通过nuget)。
问题在于,每当我尝试创建ADO.net数据库连接时,oracle提供程序永远不是一个选项?我错过了什么?我需要什么才能让它发挥作用?
我曾经读过一个oracle论坛,说我需要将我的实体框架设置为5.0而不是6.0。这很好,但我该怎么做?
答案 0 :(得分:9)
现在由ODAC 12c Release 3 Beta提供EF 6支持:
来自.Net Developer简报(强调我的):
新下载:ODAC 12c第3版测试版新的ODAC测试版包含 实体框架6 ,代码优先,代码优先迁移,.NET Framework 4.5.2认证,托管ODP.NET XML DB,以及托管ODP.NET分布式事务支持,无需Oracle.ManagedDataAccessDTC.dll。
答案 1 :(得分:8)
我知道这有点老了,但这是为了回答你问题的最后一部分(如何安装EFv5)。 (打开VisualStudio 2013的说明)打开您的解决方案,单击工具 - > NuGet包管理器 - >包管理器控制台。输入以下内容:
Install-Package EntityFramework -Version 5.0.0
我设置机器已经有一段时间了,但我认为这是我必须要做的,希望它有所帮助。
哦,我忘记了一件事,不确定它是否重要。您可能需要将该Model项目中的引用添加到oracle驱动程序。右键单击项目 - >添加 - >参考 - >装配 - >搜索'oracle',希望Oracle.ManagedDataAccess有一个条目(我的版本是4.121.1.0)
NUMBER(10)
类型的字段,则当不是所有10位数字都适合时,它会将其映射为32位int :( 答案 2 :(得分:4)
ODP.NET尚不支持EF 6。有关详细信息,请参阅发行说明(README)。 EF6将很快得到支持。
编辑:现在支持EF6。
答案 3 :(得分:1)
抱歉,我错过了你的部分问题。
如果您使用的是Visual Studio 2013,则必须下载适用于Visual Studio 12.1.0.1.2或更高版本的Oracle Developer Tools。对于任何旧版本,它将无法与VS 2013集成。
以下是下载位置: http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
目前还不支持EF 6.0,但您可以在VS 2013中使用EF5提供程序。所以我的其他答案并不真正相关。
答案 4 :(得分:0)
实体框架6代码优先
ODAC 12c R3是第一个使用Entity进行认证的ODP.NET版本 框架(EF)6和EF代码优先。 EF Code First很受欢迎 .NET对象关系映射的开发模型。开发商 使用源代码定义应用程序域模型,而不是 使用设计器或基于XML的配置文件。 EF代码优先 model的类是通过Plain Old CLR Objects在代码中定义的 (波苏斯)。
...
这些功能在托管和非托管中均可用 ODP.NET。
http://cshay.blogspot.com/2014/09/odac-12c-release-3-beta-now-available.html