2

我正在尝试使用 dotnet core 实体框架 dbcontext 脚手架连接到我的 dotnet core 项目的 oracle 数据库,如下所示:

<!-- language: shell --> dotnet ef dbcontext scaffold "User Id=<username>;Password=<password>;Data Source=<hostaddress>:<port>/<sid>" Oracle.ManagedDataAccess --table mytablename -o Models

我已经能够通过 pomelo 和 mysql.data 对 mysql 进行测试来实现这一点,但我需要的真正数据源在 oracle db 中。

Unable to find expected assembly attribute named DesignTimeProviderServicesAttribute in provider assembly Oracle.ManagedDataAccess. This attribute is required to identify the class which acts as the design-time service provider factory.

虽然我知道它是说我需要一个实体框架设计器包,但我找不到任何选项,我已经尝试使用 Devart.Data.Oracle.Entity.EFCore 执行此操作,但我一直获得使用 dbcontext 所需的许可脚手架。

任何帮助或建议将不胜感激,在此先感谢。

4

2 回答 2

1

[1]。添加 nuget 包:Oracle.ManagedDataAccess.Core 2.18.6;Oracle.EntityFrameworkCore 2.18.0-beta3;Microsoft.EntityFrameworkCore 2.2.3;Microsoft.EntityFrameworkCore.Design 2.2.3;Microsoft.EntityFrameworkCore.Tools 2.2.3;Microsoft.EntityFrameworkCore.Relational 2.2.3;Microsoft.EntityFrameworkCore.Relational.Design 1.1.6

[2]。添加一个引用该项目的面向 .NET Core 2.x 的可执行项目,并将其设置为启动项目;然后确保项目成功;

[3]。下午代码:

Scaffold-DbContext "User Id=<username>;Password=<password>;Data Source=<host>:<port>/ORCL;" Oracle.EntityFrameworkCore -OutputDir Models -Tables "<table1>","<table2>" -ContextDir Context -Context <ContextName>
于 2019-04-03T15:35:47.460 回答
0

我已经能够获得与 oracle db 一起使用的脚手架,ia链接从 oracle 到 Oracle.EntityFrameworkCore beta。

首先从链接下载包

  1. 将 Oracle.EntityFrameworkCore.2.18.0-beta2.zip 解压缩到 Oracle.EntityFrameworkCore.2.18.0-beta2
  2. 然后将程序集引用添加到 Oracle.EntityFrameworkCore.2.18.0-beta2/lib/netstandard2.0/Oracle.EntityFrameworkCore.dll
  3. 然后安装以下 nuget 包。

    Oracle.ManagedDataAccess.Core Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Design

  4. 然后运行 ​​ef core 脚手架。

    dotnet ef dbcontext scaffold "User Id=<username>;Password=<password>;Data Source=<host>:<port>/ORCL;Connection Timeout=600;min pool size=0;connection lifetime=18000;PERSIST SECURITY INFO=True;" Oracle.EntityFrameworkCore --table table_name_to_scaffold -o Models -f

或数据库中的所有表。

    dotnet ef dbcontext scaffold "User Id=<username>;Password=<password>;Data Source=<host>:<port>/ORCL;Connection Timeout=600;min pool size=0;connection lifetime=18000;PERSIST SECURITY INFO=True;" Oracle.EntityFrameworkCore -o Models -f
于 2019-03-19T21:04:01.760 回答