使用EF Oracle实现DevExpress绑定大数据的ServerMode模式

前提:需要引入EntityFramework组件,注意几个使用点后使用上其实比较简单。

一、引入Oracle EF支持组建

1、可手动引入附件中的DLL(需手动合并web.config配置)

2、也可使用NuGet的安装方式,安装时会自动合并配置到web.config文件中

  Install-Package Oracle.ManagedDataAccess.EntityFramework

二、单表和关联查询的支持

1、单表形式比较简单,直接配置实体即可

2、如果有Join类查询,需要新建视图,并且以视图为主来配置实体对象

三、关键点

1、需要注意大小写配置和字段类型配置,SQL和Oacle的类型不一样

     可参考使用工具转换得到SQL to Oracle 转换后的类型,另外要注意大小写

 

2、注意主键ID,代码里的实体主键须用Id来声明,数据库不需要。可通过Mapping的方式对应到数据库中具体的字段,例如:

 

this.Property(t => t.ID).HasColumnName("OrderId").HasColumnType("NUMBER");

 

3、需注意ToTable映射时表的前缀,由于SQLServer大多是默认的dbo,固可不写前缀

   连接Oracle 等数据库时需要设置数据库前缀,如

 

this.ToTable("MYVIEWS", "TestDB");

 

DEVEXPRESS就可以这样绑定数据源了,理论上就是一个按需加载的DataSource,指定对应的Context和DataSet即可

<dx:EntityServerModeDataSource ID="EntityServerModeDataSource" runat="server" ContextTypeName="DatabaseContext" EnableInsert="true"
TableName="MyViews" />

 

通过SQL语句跟踪,确认了筛选和排序时也是按需获取数据,所以效率会提高

跟踪SQL执行情况的语句:

SELECT TO_CHAR(LAST_ACTIVE_TIME,'yyyy-mm-dd hh:mi:ss'),SQL_TEXT FROM V$SQL WHERE SQL_TEXT LIKE '%MYVIEWS%' ORDER BY LAST_ACTIVE_TIME DESC

 

posted @   leeolevis  阅读(1166)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
历史上的今天:
2012-12-25 Ffmpeg解码获取一帧图像
点击右上角即可分享
微信分享提示