官方文档: http://docs.oracle.com/cd/E56485_01/win.121/e55744/intro001.htm#ODPNT123
Oracle 对 微软 实体框架 EF6 的支持,在 ODP.NET 的新版本中才有实现。
Oracle Data Access Components (ODAC) Windows 下载: ODAC 12c Release 3
包括支持 Entity Framework 6 Code First and Code First Migrations; NuGet 包,
.NET Framework 4.5.2; and ODP.NET, Managed Driver XML DB.
http://www.oracle.com/technetwork/topics/dotnet/downloads/index.html
实践很多次, 成功建立 实体数据集: 必须在 VS2013 UPDATE4 安装完成后,安装
1) 32-bit ODAC with Oracle Developer Tools for Visual Studio Downloads
2) 在建立 VS 解决方案后, 安装 ORACLE 的 NuGet 包 (两个包)。 --- 通过 包管理器。
这样才能 在解决方案的项目配置 文件 APP.config 或者 WEB.config 中创建一些配置信息!!!
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
<provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
完成上述两步骤,就可以 新增: ADO。NET 实体数据模型,来引用 ORACLE 数据库。
依据 是EF 设计器 或者 Code First 代码优先,会在 APP.config 或者 WEB.config 产生一个 连接字符串
<add name="CDEntities" providerName="System.Data.EntityClient" connectionString="metadata=res://*/Model.CDDBModel.csdl|res://*/Model.CDDBModel.ssdl|res://*/Model.CDDBModel.msl;provider=Oracle.ManagedDataAccess.Client;provider connection string="DATA SOURCE=192.168.100.18:1521/gdaa;PASSWORD=gdaa;PERSIST SECURITY INFO=True;USER ID=GDCD"" />
<add name="HPModel" providerName="Oracle.ManagedDataAccess.Client" connectionString="DATA SOURCE=192.168.100.18:1521/gdaa;PASSWORD=gdaa;PERSIST SECURITY INFO=True;USER ID=GDAA"/></connectionStrings>
特别的问题是:如果是ASPNET MVC,将数据库模型Model 单独作为一个:DLL 类库 项目, VC 作为一个MVC 项目,则创建过程有一定要求:
1) 首先创建 DLL 类库 项目 解决方案,增加 ORACLE 的专用NUGET 包,然后 新增: ADO.NET 实体数据模型;
2) 再创建一个 ASPNET MVC 解决方案,增加 ORACLE 的专用NUGET 包;
3) 将 数据模型方案的项目 引入 MVC 方案中, 复制 数据模型方案的 APP.CONFIG 中链接连接字符串 <add name="XXXXX" ......,增加到 MVC方案的WEB.CONFIG 中.
主要是由于,数据模型上下文 DBCONTEXT 在 MVC 代码中实例化时,获取 链接连接字符串 必须是当前 方案的配置文件。