vs2022 使用EFcore连接Orcale 数据库优先 (Database-First)

打印 上一主题 下一主题

主题 823|帖子 823|积分 2469

nuget包导入

将以下三个包导入
Oracle.EntityFrameworkCore
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Tools

此处留意版本一致,我用的是.net 6 以是我使用的ef core 和ef core tools版本均为6.0

步伐包管理器控制台运行

在下方的步伐包管理器控制台下运行如下代码
  1. Scaffold-DbContext "User ID=JHA;Password=密码;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT =1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))" Oracle.EntityFrameworkCore -OutputDir Models -Force
复制代码

-OutputDir OraModel 中OraModel  为指定的输出目录,可更改
-Force 表示在执行 Scaffold-DbContext 命令时欺压覆盖现有的代码文件,以确保天生的 DbContext 和实体类能够覆盖已存在的文件。如果省略 -Force 参数,命令可能会提示你确认是否要覆盖文件,以避免不测覆盖现有代码。
简而言之,使用 -Force 参数会在执行命令时自动覆盖已存在的文件,而不会提示用户确认。这可以方便在代码天生过程中快速更新已存在的 DbContext 和实体类,一般保留


连接字符串如下实例: 
User ID=用户名assword=暗码;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST =localhost)(PORT =1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))
上述的HOST =localhost中localhost为本机 按照现实情况进行更改
至此数据库中表结构及上下文已导出至vs中
我在我的测试库中仅仅添加了两张表 ,即PUB_EMP和STU_INFO,可以看到已经导出至指定目录
测试是否可用



  1. using learnTest.OraModel;
  2. using System;
  3. using System.IO;
  4. using System.Net.Sockets;
  5. using System.Text;
  6. class Program
  7. {
  8.     static void Main()
  9.     {
  10.         ModelContext model = new ModelContext();
  11.         PubEmp emp = new PubEmp();
  12.         var r= from pb in model.PubEmps
  13.                select pb;
  14.         foreach(var e in r)
  15.             Console.WriteLine("名字:"+e.Name+"  年龄:"+e.Age);  
  16. //此段为Insert  
  17.        /* emp.Age = 12;
  18.         emp.Name = "TEST";
  19.         model.Add(emp);
  20.         model.SaveChanges();*/
  21.     }
  22. }
复制代码
 控制台输出如下:

至此,确定可正常使用 ,有问题欢迎讨论,1004067303@qq.com

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用多少眼泪才能让你相信

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表