EFcore 6 连接oracle19 WinForm vs2022

用EFcore访问Oracle,终于不需要Oracle的什么安装包了,直接在VS2022中就可以轻松搞定。在csdn上看到一哥们的帖子,测试了一下,发现很方便。使用的场景是:VS2022中EFcore6。经过测试,同 Navicat Premium 16比较速度不是很快,从Oracle数据库读,每秒是3000条,而Navicat Premium 16可以做到每秒是3万条。不过只要没有大数据场景,用EF直接使用到了Oracle还是很方便的。

一、NuGet安装EFcore相关的组件,注意大版本要一致:

Oracle.EntityFrameworkCore

Microsoft.EntityFrameworkCore

Microsoft.EntityFrameworkCore.Tools

二、用一行命令创建数据库实体对象:

diff 复制代码
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

Models 参数:为实体对象存放在项目中的目录。

Force 参数:执行命令时自动覆盖已存在的实体对象,而不会提示用户确认。

三、代码中使用:

cs 复制代码
ModelContext model = new ModelContext();

var q = model.Pods4Pieceplanner2Seresthrees.Where(p => list.ToList().Contains(p.PieceNr)).Select(p => new { p.PieceNr, p.MaterialCode, p.MaterialName, p.WorkPlace, p.Quantity }).ToList();

注意linq查询结果后的ToList(),这个可以把数据全部拉出来,感觉就没有延迟加载了。

相关推荐
&木头人&43 分钟前
oracle select字段有子查询会每次执行子查询吗
数据库·oracle
冰镇毛衣43 分钟前
数据库简介
开发语言·数据库·sql·oracle
(⊙o⊙)~哦44 分钟前
oracle查询历史操作记录
数据库·oracle
mqiqe6 小时前
PostgreSQL 基础操作
数据库·postgresql·oracle
一心只为学6 小时前
Oracle密码过期问题,设置永不过期
数据库·oracle
ggdpzhk7 小时前
Mybatis 快速入门(maven)
oracle·maven·mybatis
Microsoft Word7 小时前
数据库系统原理(第一章 数据库概述)
数据库·oracle
kejijianwen10 小时前
JdbcTemplate常用方法一览AG网页参数绑定与数据寻址实操
服务器·数据库·oracle
编程零零七11 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
程序猿小D16 小时前
第二百三十五节 JPA教程 - JPA Lob列示例
java·数据库·windows·oracle·jdk·jpa