vs2022 使用EFcore连接Orcale 数据库优先 (Database-First)
nuget包导入将以下三个包导入
Oracle.EntityFrameworkCore
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Tools
https://img-blog.csdnimg.cn/direct/4607fca5d21d43a4851aad8ebb696886.png
此处留意版本一致,我用的是.net 6 以是我使用的ef core 和ef core tools版本均为6.0
步伐包管理器控制台运行
在下方的步伐包管理器控制台下运行如下代码
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 和实体类,一般保留
https://img-blog.csdnimg.cn/direct/0c1902fd333142f1b6656c52ef777d8f.png
连接字符串如下实例:
User ID=用户名;Password=暗码;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,可以看到已经导出至指定目录
测试是否可用
using learnTest.OraModel;
using System;
using System.IO;
using System.Net.Sockets;
using System.Text;
class Program
{
static void Main()
{
ModelContext model = new ModelContext();
PubEmp emp = new PubEmp();
var r= from pb in model.PubEmps
select pb;
foreach(var e in r)
Console.WriteLine("名字:"+e.Name+"年龄:"+e.Age);
//此段为Insert
/* emp.Age = 12;
emp.Name = "TEST";
model.Add(emp);
model.SaveChanges();*/
}
}
控制台输出如下:https://img-blog.csdnimg.cn/direct/c57c7890926a4cc69da7bc23a4e90407.png
至此,确定可正常使用 ,有问题欢迎讨论,1004067303@qq.com
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]