Oracle.ManagedDataAccess dbcontext scaffold ожидаемый атрибут сборки с именем DesignTimeProviderServicesAttribute error - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь использовать каркас dbcontext каркаса сущностей dotnet core для подключения к моей базе данных Oracle для моего проекта dot net core, как показано ниже:

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

Я смог добиться этого как тест на mysql с pomelo и mysql.data, но реальный источник данных мне нужен в 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 scafolding.

Любая помощь или предложения будут очень признательны, спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

[1].добавить пакеты nuget: Oracle.ManagedDataAccess.Core 2.18.6;Oracle.EntityFrameworkCore 2.18.0-бета3;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>
0 голосов
/ 20 марта 2019

Мне удалось заставить леса работать с oracle db, например, ссылка получила от 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 scaffolding.

    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
...