Oracle.ManagedDataAccess dbcontext支架预期的程序集属性名为DesignTimeProviderServicesAttribute错误

时间:2019-03-18 00:45:58

标签: c# oracle entity-framework .net-core oracle.manageddataaccess

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

<!-- 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脚手架。

感谢您的任何帮助或建议,

2 个答案:

答案 0 :(得分:0)

我已经能够使用脚手架来与oracle db一起工作,link是从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核心脚手架。

    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

答案 1 :(得分:0)

[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]。 PM代码:

Scaffold-DbContext "User Id=<username>;Password=<password>;Data Source=<host>:<port>/ORCL;" Oracle.EntityFrameworkCore -OutputDir Models -Tables "<table1>","<table2>" -ContextDir Context -Context <ContextName>