基於EF4 1的異構資料庫訪問元件(三)

2022-02-14 08:56:32 字數 2289 閱讀 1287

基於ef4.1的異構資料庫訪問元件(二)

中已完成了該元件的核心部分:

接下來,向大家介紹一下第一篇所說的,給上層提供統一的持久資料介面。

irepository就是需要提供給上層的統一資料持久介面,這裡大家可以找到很多的例子,不多說,直接上類圖:

上圖中有以下幾個主要部分:

關於iunitofwork與irepository這塊大家可以在園子裡面找找文章,這裡需要說明的是——我們怎樣去確定哪個業務物件屬於哪個資料庫呢,關鍵在於efrepository這個基類的建構函式中:

public efrepository(string connectionstringname)

private

dbcontext dbcontext

return _context;}}

在irepository中,我們提供了獲取資料分頁的方法。我採用的方法是使用pagedlist容器及擴充套件方法來實現的,efrepository的實現**:

/// /// 

根據條件及排序字段獲取分頁列表

///

public

pagedlist

getpagedlist(expression

bool>> predicate, string orderby, sortorder sortorder,

int pageindex, int pagesize)

下面來看看pagedlist及擴充套件方法topagedlist

public class 

pagedlist

: list

}public pagedlist(ienumerable

items, int pageindex, int pagesize, int totalitemcount)

public int currentpageindex

public int pagesize

public int totalitemcount

public int totalpagecount

public int startrecordindex

public int endrecordindex

}

public static class 

pagelinqextensions

public static

pagedlist

topagedlist(

this

ienumerable

allitems,

int pageindex,

int pagesize

)public static

pagedlist

topagedlist(

this

iqueryable

allitems,

int pageindex,

int pagesize,

int totalcount

)public static

pagedlist

topagedlist(

this

ienumerable

allitems,

int pageindex,

int pagesize,

int totalcount)}

直接新增擴充套件方法orderby

public static 

iqueryable

orderby(this

iqueryable

source, string propertyname, sortorder sortorder) where t :

class

, source.expression, expression.quote(orderbyexpression));

return source.provider.createquery(resultexp);

}

參考:

C 使用EF訪問Sqlite資料庫

entityframework system.data.sqlite system.data.sqlite.core system.data.sqlite.ef6 system.data.sqlite.linq name sqlitetest connectionstring data source...

C 使用EF訪問Sqlite資料庫

原文 c 使用ef訪問sqlite資料庫 entityframework system.data.sqlite system.data.sqlite.core system.data.sqlite.ef6 system.data.sqlite.linq name sqlitetest connect...

異構資料庫之間的匯入匯出

異構資料庫之間的匯入匯出 mssql2excel adoconnection1.connectionstring provider microsoft.jet.oledb.4.0 data source g my allexe excel2sql yp.xls extended properties...