ASP.NET MVC+EF+ORACLE应用的记录
EF映射ORACLE数据库:
1.需要在本地下载安装ORACLE客户端。
我下载的是这个版本,只需要客户端就可以。
2.还需要下载一个Tools,
3.在VS中,还要需要Nuget 包添加一个引用
也可以手动添加两个dll Oracle.ManagedDataAccess.EntityFramework.dll 和Oracle.ManagedDataAccess.dll,
但是如果是手动添加则需要在web.config 中EntityFramework节点下修改配置
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="mssqllocaldb" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</providers>
</entityFramework>
4.如果报错:
System.InvalidOperationException类型的异常在 EntityFramework.dll
其他信息:未能找到连接字符串
使用ef的数据模型,报错,把自动生成的app.config中的连接字符串copy到web.config中就ok了。
5.如果报错:
“System.Data.Entity.Core.EntityException”类型的异常在 EntityFramework.SqlServer.dll 中发生,但未在用户代码中进行处理
其他信息: The underlying provider failed on Open.
这是因为web.config 中的连接字符串中没有配置连接数据的密码。
在user id 后面加上Password就好了。
如:user id=sa;Password=ping123~!@;