使用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
相關文章
相關標籤/搜索