C# Entity Framework 对接 Oracle11g遇到的问题及解决方案

news/2025/2/13 22:37:44/

前 言:

公司ERP使用的Oracle11g的数据,需要使用c#对接,开发一个结算单的程序,开发过程中遇到的两个小问题和解决方法写到这里.


一、数据分页的实现

EF实现分页简直太简单了,以前java对接oracle 使用sql 来分写,都是要用rownum来实现

int totalNum = Fapiaos.Count();if (page <= 0)
{page = 1;
}
int maxPageNum = 1;
if (totalNum % rows == 0)
{maxPageNum = totalNum / rows;}
else
{maxPageNum = ((int)totalNum / rows) + 1;
}
if (page >= maxPageNum) { page = maxPageNum; }var returnFapiaos = Fapiaos.AsNoTracking().Skip((page - 1) * rows).Take(rows); //分页的代码

核心就是 AsNoTracking().Skip((page -1)* rows).Take(rows)  就是需要分页后的数据

务必注意Oracle 11特殊性,必须要申明sql使用的版本为11G, 在DBcontext实现类中 ,p => p.UseOracleSQLCompatibility("11"));

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){if (!optionsBuilder.IsConfigured){optionsBuilder.UseOracle( connectstring ,p => p.UseOracleSQLCompatibility("11"));}}

二、视图也可以在通过EF来生成Model 和 Dbset

    需要EF6以上版本, 参数-t 后面跟视图名即可, 有些说要 -view, 我这边实际验证过只需要-t 

Scaffold-DbContext -Connection "连接字符串" Oracle.EntityFrameworkCore -OutputDir Models  -t  销售发票关联发出商品,销售发票汇总含毛利,销售发票明细表视图,结算单按发票表头  -force

哈哈,我视图名和字段名用的中文


http://www.ppmy.cn/news/1383120.html

相关文章

SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See SLF4J Error Codes for further details. 14-Mar-2024 21:01:40.204 信息 [http-nio-8090-exec-5] com.alibaba.drui…

基于鹦鹉优化算法(Parrot optimizer,PO)的无人机三维路径规划(提供MATLAB代码)

一、无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径&#xff0c;使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一&#xff0c;它可以通过算法和模型来确定无人机的航迹&#xff0c;以避开障碍物、优化飞行…

Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%

亲爱的社区小伙伴们&#xff0c;我们很高兴地向大家宣布&#xff0c;在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布&#xff0c;欢迎大家下载使用。 在查询性能方面&#xff0c; 2.1 系列版本我们着重提升了开箱盲测性能&#xff0c;力争不做调优的情况下取得较好…

Mysql引擎MyISAM

MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB公司开发&#xff0c;后来被Sun Microsystems收购&#xff0c;并于2010年纳入Oracle公司。MySQL的架构主要分为四个层次&#xff0c;分别是连接层&#xff0c;服务层&#xff0c;引擎层和物理文件存储层。其中&#…

solana 入门 1

solana-co-learn Solana 开发学习笔记(一)——从 Hello World 出发 安装开发环境 windows下环境配置 wsl First start with installing WSL on your system. wsl --install wsl安装Ubuntu 列出可用的分发版 wsl.exe --list --online显示&#xff1a; 以下是可安装的有效…

SpringSecurity两种验证方式及调用流程

一、HttpBasic方式 <security:http-basic/> 二、Formlogin方式 <security:form-login login-page"/userLogin" /> 三、SpringSecurity执行流程

深入理解JAVA异常(自定义异常)

目录 异常的概念与体系结构 异常的概念&#xff1a; 异常的体系结构&#xff1a; 异常的分类&#xff1a; 异常的处理 防御式编程 LBYL: EAFP: 异常的抛出 异常的捕获 异常声明throws try-catch捕获并处理 finally 面试题&#xff1a; 异常的处理流程 异常处…

log4j2 burp插件-Log4j2Scan(二)

该工具为被动扫描Log4j2漏洞CVE-2021-44228的BurpSuite插件&#xff0c;具有多DNSLog&#xff08;后端&#xff09;平台支持&#xff0c;支持异步并发检测、内网检测、延迟检测等功能。 一、安装方法 建议使用BurpSuite 2020或以上更高版本&#xff0c;低版本BurpSuite未经严…