Я только что создал ASP. NET Core 3.1 API Web Application и хотел бы сгенерировать файлы 'DbContext' из моей базы данных Oracle. Я разочарован, обнаружив, что, похоже, нет встроенного визуального дизайнера, как в. NET Стандарт.
Что я пробовал:
- Создано. NET Core 3.1 API Web Application.
- Установлены следующие пакеты NuGet:
- Microsoft .EntityFrameworkCore 3.1.2;
- Microsoft.EntityFrameworkCore.Design 2.2.6;
- Microsoft.EntityFrameworkCore.Relational 2.2.6;
- Microsoft.EntityFrameworkCore.Relational.Design 1.1.6
- Microsoft.EntityFrameworkCore.Tools 2.2.6;
- Oracle .EntityFrameworkCore 2.19.6;
- Oracle .ManagedDataAccess.Core 2.19.6;
Затем я попытался вызвать команду Scaffold-DbContext
на консоли диспетчера пакетов:
Scaffold-DbContext "DATA SOURCE=(DESCRIPTION=(SOURCE_ROUTE=OFF)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myHostName)(PORT=myPortNumber)))(CONNECT_DATA=(SID=mySID)(SERVER=DEDICATED))); User ID=myID;Password=myPassword;" Oracle.ManagedDataAccess -OutputDir Models -Tables myTableName
С помощью этой команды я надеялся, что для моей таблицы будет создан класс контекста БД, однако вместо этого возвращается следующая ошибка:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
---> System.TypeLoadException: Could not load type 'Microsoft.EntityFrameworkCore.Internal.ProductInfo' from assembly 'Microsoft.EntityFrameworkCore, Version=3.1.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'.
at Microsoft.EntityFrameworkCore.Design.OperationExecutor..ctor(Object reportHandler, IDictionary args)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, Object[] args)
at Microsoft.EntityFrameworkCore.Tools.ReflectionOperationExecutor..ctor(String assembly, String startupAssembly, String projectDir, String dataDirectory, String rootNamespace, String language)
at Microsoft.EntityFrameworkCore.Tools.Commands.ProjectCommandBase.CreateExecutor()
at Microsoft.EntityFrameworkCore.Tools.Commands.DbContextScaffoldCommand.Execute()
at Microsoft.EntityFrameworkCore.Tools.Commands.CommandBase.<>c__DisplayClass0_0.<Configure>b__0()
at Microsoft.DotNet.Cli.CommandLine.CommandLineApplication.Execute(String[] args)
at Microsoft.EntityFrameworkCore.Tools.Program.Main(String[] args)
Exception has been thrown by the target of an invocation.