在最近做的人事檔案重構專案中,由於需求要求不要用檢視、儲存過程等,而且這個專案資料庫欄位的數量實在是令人髮指,就我負責的綜合資訊查詢來說,乙個頁面要顯示7張表的資料,欄位加起來都百八十個了。
首先看一下資料庫結構:
basicinfomation是基本資訊表,主鍵是nowtechnicalrecords(技術檔案)的外來鍵。現在頁面上要顯示的是一部分基本資訊表的資訊,一部分是技術檔案的資訊。所以需要根據導航屬性進行關聯查詢。
通過查ef的文件,知道有個方法是用來進行關聯查詢的:include()。以下是關聯查詢和真分頁的實踐:
/// /// 分頁查詢
///
///
/// 每頁顯示條數
/// 第幾頁
/// 總條數
/// 查詢條件的lambda表示式
/// 排序的lambda表示式
///
public listquerybasicinfo(int pagesize, int pageindex,
out int total, expression> wherelambda,
expression> orderbylambda)
這樣,在temp中就可以查詢到第pageindex頁共有pagesize條資料,資料中,basicinformation作為nowtechnicalrecords的屬性被查詢出來。
返回到頁面上:
首先要定義model:
@model ienumerable
然後在td標籤中繫結字段:
@*nowtechnicalrecords表字段*@
noworiginaltitle
createtime
noweondate
@*basicinformation表字段*@
numname
@foreach (var item in model)
這樣就實現了ef導航屬性真分頁查詢。 EF 分頁查詢
使用lambda表示式 建立上下文 datamodelcontainer dbcontext new datamodelcontainer 每頁5條資料,取第3頁的資料 var data dbcontext.userinfo where u u.id 1 orderby u u.id skip 5 ...
Java分頁查詢(真分頁)
在開發過程中,我們經常會從資料庫中查詢資料,然後在客戶端顯示出來。當資料少時,可以在乙個頁面顯示。當我們查詢幾百條以上資料,直接顯示在乙個頁面上,不僅瀏覽不方便,查詢效率也會受到影響,這是,我們就可以使用分頁查詢來解決這個問題。分析上面這個頁面,想要實現分頁,我們在頁面中需要顯示的資料有 本頁的資料...
EF實現分頁查詢 條件查詢 排序
先來看看幾個linq to sql的幾個函式。take 說明 獲取集合的前n個元素 延遲。即只返回限定數量的結果集。var q from e in db.employees orderby e.hiredate select e take 5 語句描述 選擇所雇用的前5個雇員。skip 說明 跳過集...