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

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

1、引入Oracle EF支持组建

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

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

  Install-Package Oracle.ManagedDataAccess.EntityFramework工具

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

一、单表形式比较简单,直接配置实体便可this

二、若是有Join类查询,须要新建视图,而且以视图为主来配置实体对象spa

3、关键点

一、须要注意大小写配置和字段类型配置,SQL和Oacle的类型不同code

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

 

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

 

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

 

三、需注意ToTable映射时表的前缀,因为SQLServer大可能是默认的dbo,固可不写前缀blog

   链接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
相关文章
相关标签/搜索