c# - 没有配置的 ADO.NET Oracle.ManagedDataAccess.Client 的 Entity Framework 提供程序

标签 c# oracle entity-framework arcgis odp.net

每当我尝试运行此查询时,我都会收到以下错误:

var query = from u in StageEntity.STAGINGINTERACTIONPOINTS
  where u.OBJECTID == OBJECT_ID
  select u;

"Schema specified is not valid. Errors: \r\nStagingDB.ssdl(2,2) : error 0152: 
No Entity Framework provider found for the ADO.NET provider
with invariant name 'Oracle.ManagedDataAccess.Client'. 
Make sure the provider is registered in the 'entityFramework' 
section of the application config file. 
See http://go.microsoft.com/fwlink/?LinkId=260882 for more information."

但是,我认为问题在于我无法在运行时访问配置文件。这是因为我的应用程序是 ArcObjects Extension,出于某种原因忽略了所有不是 Config.esriaddinx 的配置文件。因此在运行时,我从配置文件中获取连接字符串。

这适用于 SQL 服务器,但我以前没有在 Oracle 中尝试过。我想知道是否需要在运行时包含和声明某些内容才能使 Oracle ODP 正常工作。

这是我拉取并调用的连接字符串:

connection string="DATA SOURCE=(DESCRIPTION=(ADDRESS= (PROTOCOL=TCP) (HOST=examplehost.com)(PORT=1234))(CONNECT_DATA=(SID = sid)));PASSWORD=hunter2;PERSIST SECURITY INFO=True;USER ID=poor_username""

然后,每当我声明一个实体时,我都会调用这个连接字符串,我确实制作了一个 partial class

我也看过another stack question有类似的问题,但我正在运行最新的 ODP.net (v 6.121) 和应该兼容的 Entity 6。

此外,以下修复:

public partial class StagingEntities : DbContext
{
    private volatile Type _dependency;

    public StagingEntities(string connectionString)
        : base(connectionString)
    {
        _dependency = typeof(System.Data.Entity.SqlServer.SqlProviderServices);

    }
}

不起作用。

最佳答案

您的解决方案: 请为 Oracle.ManagedDataAccess.Client 重新安装 NuGet 包 - https://www.nuget.org/packages/Oracle.ManagedDataAccess.EntityFramework/

额外信息: 我有完全相同的问题,但对于 Oracle.DataAccess.Client。我的问题是:“未找到具有固定名称“Oracle.DataAccess.Client”的 ADO.NET 提供程序的 Entity Framework 提供程序。确保提供程序已在应用程序配置文件的“entityFramework”部分中注册。请参阅 http://go.microsoft.com/fwlink/?LinkId=260882了解更多信息。”。

我最近从 EF5 迁移到了 EF6。旧版本的 Oracle Managed ODP 与 EF6 不兼容。安装 Oracle.ManagedDataAccess.EntityFramework 后,我必须将项目中出现的所有 Oracle.DataAccess.Client 替换为 Oracle.ManagedDataAccess.Client .它运行良好。

关于c# - 没有配置的 ADO.NET Oracle.ManagedDataAccess.Client 的 Entity Framework 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32615978/

相关文章:

C# SQlite 连接字符串格式

c# - 无法在数据模板内设置 CommandBinding

Oracle:max(id)+1 和 sequence.nextval 之间的区别

sql - oracle中如何计算char数据类型的求和时间

sql - 如何在不加载数据的情况下使用 Spark Scala 创建与 Oracle 的连接?

c# - 为什么没有 where 子句的查询会出现输入字符串异常?

c# - ToInt32() 方法具有无效参数类型时未抛出 "FormatException"

c# - 使用 Linq Grouping 如何按特定组排序然后剩余组降序

c# - Web API 核心 : "FOREIGN KEY constraint failed" error during POST request SQLite

jquery - Ajax POST 到 Controller 操作以更新 View 模型,然后重新加载 div