使用实体框架与现有的ORACLE数据库.Visual Studio 2012和废弃的ODP.网络驱动程序
本文关键字:2012 Studio 废弃 驱动程序 网络 ODP Visual ORACLE 框架 实体 数据库 | 更新日期: 2023-09-27 18:11:29
我做了足够的研究,但还是找不到答案。
我有一个Oracle DB,我正在使用我的ADO。NET,它工作得很好。然而,我想使用它与实体框架6。由于DB已经到位,我不打算做"代码优先"的方法。以下是我遇到的问题。在下结论之前请记住它们
- 我有VS 2012与旧ODP驱动程序。VS要求我升级。斜面
- 我不能使用EDM生成图表和代码,因为我没有安装最新的ODAC,我没有得到连接到Oracle DB的选项
- 如果我尝试使用与EF相同的连接字符串,这与ADO工作良好。然后我得到以下错误
ORA-12154: TNS:无法解析指定的连接标识符
注意我使用LDAP连接到Oracle数据库。
我也尝试生成一个空的EDM,并添加了一个新的连接字符串如下,然后我得到了一个不同的错误。
<add name="EF" connectionString="metadata=res://*/Model1.csdl
|res://*/Model1.ssdl
|res://*/Model1.msl;
provider=Oracle.ManagedDataAccess.Client;
provider connection string="data source=MY_SERVICE;password=MY_PASSWORD;persist security info=True;user id=MY_USERID""
providerName="System.Data.EntityClient" />
实体类型不是当前模型的一部分上下文。
我的问题。
- 是否有解决上述问题的方法?
- 有一种方法来映射Oracle表,存储过程,函数等手动?
我知道上面没有多大意义,但这些是我的约束条件。我试图避免长/旧的ADO。NET代码。如果做不到,也没关系。
提前感谢您的输入
您的问题不太清楚,因为像"ODAC"或"ADO"这样的术语。
ODAC是一个软件包,它包含几个提供程序和驱动程序。请清楚地说明供应商(如OraOLEDB.Oracle
或MSDAORA
)和参考(如Oracle.DataAccess.Client
或System.Data.OracleClient
),并告诉我们哪个在工作或不工作。
不管怎样,看起来你的ODP有问题。. NET托管提供程序(Oracle.ManagedDataAccess.Client
),所以专注于那个。显然,它没有找到sqlnet.ora
和ldap.ora
文件。
检查以下设置是否指向正确的文件位置:
- . net配置文件中
- 数据源别名。位置可以包含绝对或相对目录路径。
-
tnsnames.ora
文件中的数据源别名与.exe
位于同一目录。
<oracle.manageddataaccess.client>
节下dataSources
节中的数据源别名。. net配置文件中TNS_ADMIN
指定位置的tnsnames.ora
文件中的注意,与其他提供程序ODP不同。不读取任何注册表设置,也不读取环境变量。
有一个bug报告ODP。. NET托管提供程序不能从LDAP解析别名,请参阅此解决方案:ODP。. NET托管库可以解析别名,但32位库可以