C# 将实体框架与现有ORACLE数据库一起使用。Visual Studio 2012和不推荐使用的ODP.NET驱动程序
我做了足够的研究,但没有找到答案 我有一个Oracle数据库,我正在使用我的ADO.NET,它工作得很好。但是,我想将它与EntityFramework6一起使用。由于DB已经就位,所以我不打算采用“代码优先”的方法。 下面是我遇到的问题在下结论之前,请记住这些问题。C# 将实体框架与现有ORACLE数据库一起使用。Visual Studio 2012和不推荐使用的ODP.NET驱动程序,c#,oracle,entity-framework,ldap,odp.net,C#,Oracle,Entity Framework,Ldap,Odp.net,我做了足够的研究,但没有找到答案 我有一个Oracle数据库,我正在使用我的ADO.NET,它工作得很好。但是,我想将它与EntityFramework6一起使用。由于DB已经就位,所以我不打算采用“代码优先”的方法。 下面是我遇到的问题在下结论之前,请记住这些问题。 我有VS2012和旧的ODP驱动程序。VS要求我升级。行话 我不能使用EDM生成图表和代码,因为我没有安装最新的ODAC,也没有连接到Oracle DB的选项 如果我尝试使用与EF相同的连接字符串,而EF在ADO.NET中运行良
- 我有VS2012和旧的ODP驱动程序。VS要求我升级。行话
- 我不能使用EDM生成图表和代码,因为我没有安装最新的ODAC,也没有连接到Oracle DB的选项
- 如果我尝试使用与EF相同的连接字符串,而EF在ADO.NET中运行良好,则会出现以下错误
<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表、存储过程、函数等
提前感谢您的输入。您的问题不太清楚,因为像“ODAC”或“ADO.NET”这样的术语非常模糊 ODAC是一个包含多个提供者和驱动程序的软件包。请明确说明提供者(例如
OraOLEDB.Oracle
或MSDAORA
)和参考资料(例如Oracle.DataAccess.Client
或System.Data.OracleClient
),并告诉我们哪一个正在工作或不工作
无论如何,看起来您在ODP.NET托管提供程序(Oracle.ManagedDataAccess.Client
)方面有问题,所以请关注这个问题。显然,它找不到sqlnet.ora
和ldap.ora
文件
检查以下设置是否指向这些文件的正确位置:
部分下数据源部分中的数据源别名
tnsnames.ora
文件中的数据源别名,位于.NET配置文件中的TNS_ADMIN
指定的位置。位置可以由绝对或相对目录路径组成tnsnames.ora
文件中的数据源别名与.exe
位于同一目录中有一个问题是ODP.NET托管提供程序无法从LDAP解析别名,请参阅此解决方法:感谢您的回复。我知道ODAC和ADO.NET是什么。如果你再看看我的问题,你会注意到我在连接ADO.NET时没有问题,但我想使用EF6。另外,我使用LDAP,因此tnsnames.ora与讨论无关。已经说过,我能够连接到数据库。然而,在这一点上,我不知道如何告诉EF6框架我想使用数据库优先模型(而不具备使用EDM的能力)。我也在DB中看到了迁移表,所以我相信它首先使用的是代码。再次感谢您的输入。实际上,规则应该更准确地说“数据源别名,分别是
sqlnet.ora
和tnsnames.ora
或ldap.ora
文件中的引用…”