我正在尝试使用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脚手架。
感谢您的任何帮助或建议,
答案 0 :(得分:0)
我已经能够使用脚手架来与oracle db一起工作,link是从oracle到Oracle.EntityFrameworkCore beta的一个版本。
首先从链接下载程序包
然后安装以下nuget软件包。
Oracle.ManagedDataAccess.Core Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Design
然后运行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>