【问题标题】:Entity Framework 6, database-first with ORACLE in MVC 5.2.3 projectEntity Framework 6,在 MVC 5.2.3 项目中使用 ORACLE 的数据库优先
【发布时间】:2018-08-02 09:15:42
【问题描述】:

有人可以帮我解决这个错误吗?

我使用 MVC 5.2.3 和 .NET 4.6。我已经从 oracle 官方网站http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html 安装了 ODAC 12c Release 4 和 Oracle Developer Tools for Visual Studio (12.1.0.2.4),添加了 NuGet 包 Oracle.ManagedDataAccess、Oracle.ManagedDataAccess.EntityFramework

并在 webconfig 文件中生成此提供程序:

  <configSections>    
<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" />

有人得到这份工作吗?我错过了什么?感谢您的每一个提示

【问题讨论】:

  • Oracle.DataAccess.dll 的所有引用和相关依赖项包含到您的项目中,然后再次尝试使用 EDM 向导。请注意,在重试向导之前,您可能需要将目标活动平台更改为带有重建解决方案的 x86。

标签: asp.net-mvc oracle entity-framework-6


【解决方案1】:

您需要安装实体框架 Oracle 提供程序。您可以通过两种方式做到这一点:

  1. 在包管理器控制台中执行以下命令:

    安装包 Oracle.ManagedDataAccess.EntityFramework

  2. 按照此处的 NuGet ODP.NET 安装和配置说明进行操作

Using NuGet to Install and Configure Oracle Data Provider for .NET

【讨论】:

  • 我仍然无法完成这项工作。在所有步骤之后,我终于创建了 EDMX 模型,但仅在控制器所在的 web 应用程序项目中,但我需要在我的类库项目中创建模型,它用作存储库层。那里我会得到提供者错误。注意:我已经在这个项目中安装了 Oracle.ManagedDriver (+ Entity FrameWorkDriver) 并添加了引用。
  • 您应该能够毫无问题地将 EDMX 模型添加到类库项目中。只需要验证项目中是否安装了所有必需的包,并且可能需要将带有实体框架部分的配置文件 (app.config) 添加到类库项目中。我建议您比较 Web 应用程序和类库的配置文件和 package.config 文件,以查看类库中没有丢失的包/配置。
  • 感谢您的回复。如果我没记错的话,我需要包含 Oracle.ManagedDataAccess 和 Oracle.ManagedDataAccess.EntityFramework 包。这两个我在两个项目中都有。 packages.config 文件似乎很好(相同)。这两个包都在文件中,也包含在 EntityFramework 中。我在类库项目中有 App.Config 文件,并且 NuGet 包的安装做了所有更改。 Oracle.ManagedDataAccess.Client 提供程序有一个 entityFramework 部分。您是否有任何其他提示,为什么在 webapp 项目中创建 EDMX 模型有效,而在类库项目中无效?
  • 刚刚做了 2 分钟的测试(只是为了确定)。类库项目所需的包是:EntityFramework、Oracle.ManagedDataAccess 和 Oracle.ManagedDataAccess.EntityFramework。将此依赖项添加到类库中,nuget 将在 dll 项目中生成一个 app.config 文件,其中包含必要的配置信息。请记住,您需要 2 个配置文件:dll 项目中的 app.config 包含设计时生成 edmx 所需的信息,以及 web.app 在运行时使用的 web.config 文件。用于数据库交互。
猜你喜欢
  • 2016-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
  • 1970-01-01
  • 2016-03-02
  • 2013-06-13
  • 2014-01-20
相关资源
最近更新 更多