Я работаю с оракулами odp.net core beta 3. В частности, dll - это Oracle.ManagedDataAccess.Core.2.12.0-beta3.Проект заключается в создании веб-API, который находится поверх экземпляра Oracle.
Мой вопрос - поддерживается ли команда "Scaffold-DBContext" этим провайдером.Если так, что я делаю не так ... Я попытался использовать строку подключения, подобную следующей:
Data Source={databasename}/{TNS}.domain.local; User ID={UserName};Password={Password};
И фактическая команда в терминале диспетчера пакетов
Scaffold-DbContext Data Source={databasename}/{TNS}.domain.local; User ID={UserName};Password={Password};" Oracle.ManagedDataAccess -OutputDir Models -Tables {TableName}
Я получаю следующую ошибку, которая предполагает, что он не может найти атрибут DesignTimeServiceAttribute в сборке поставщика.
У меня также есть ссылка на Microsoft.EntityFrameworkCore.Tools (2.2.0), которая включает в себя инструменты дизайна.
ОШИБКА
System.InvalidOperationException: 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.
at Microsoft.EntityFrameworkCore.Design.Internal.DesignTimeServicesBuilder.ConfigureProviderServices(String provider, IServiceCollection services, Boolean throwOnError)
at Microsoft.EntityFrameworkCore.Design.Internal.DesignTimeServicesBuilder.Build(String provider)
at Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContext(String provider, String connectionString, String outputDir, String outputContextDir, String dbContextClassName, IEnumerable`1 schemas, IEnumerable`1 tables, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContextImpl(String provider, String connectionString, String outputDir, String outputDbContextDir, String dbContextClassName, IEnumerable`1 schemaFilters, IEnumerable`1 tableFilters, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames)
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContext.<>c__DisplayClass0_1.<.ctor>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)