EF導航屬性真分頁查詢

2021-07-04 22:19:19 字數 1109 閱讀 2773

在最近做的人事檔案重構專案中,由於需求要求不要用檢視、儲存過程等,而且這個專案資料庫欄位的數量實在是令人髮指,就我負責的綜合資訊查詢來說,乙個頁面要顯示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 說明 跳過集...