構建乙個倉儲模式。
model
大家自己建立就行了,上個圖,就不多說了(我是code first)
idal
namespace idal
}ibll
這裡我就偷懶了(直接拷貝了idal),業務層實際可以根據自己需求封裝
namespace ibll
以上工作做完後,我們開始準備 dal和 bll了。
分別建立dal和 bll類庫。(你要是資料夾,也無所謂)
eldbentity.cs(其實就是我們的 dbcontext,不多說了吧)
namespace dal.dbcontext
protected override void onmodelcreating(dbmodelbuilder modelbuilder)
public dbsetsys_user
public dbsetsys_useraccess }}
dbcontextfactory
這個檔案,稍微介紹一下,
主要是為了讓每乙個使用者,從始至終只使用自己的dbcontext。
簡單點說,每個使用者都會有屬於自己的dbcontext。但是只會有乙個,不會有多個。
**:namespace dal
return _ncontext;}}
}baserepository.cs:
由於我封裝了 分頁方法,所有新增了webdiyer.webcontrols.mvc引用,
大家可以通過nuget 查詢mvcpager 新增這個dll
不喜歡的童鞋,自行刪除。
另外,我封裝了通過sql語句來增刪改查。
using webdiyer.webcontrols.mvc;
namespace dal.base
public virtual bool addok(t entity)
public virtual int count(expression> predicate)
public virtual t update(t entity)
public virtual bool updateok(t entity)
public virtual bool delete(t entity)
public virtual bool exist(expression> anylambda)
public virtual t find(expression> wherelambda)
public virtual iqueryablefindlist(expression> wherelamdba)
public virtual iqueryablefindlist(expression> wherelamdba, bool isasc, expression> orderlamdba)
public virtual iqueryablefindpagelist(int pageindex, int pagesize, out int totalrecord, expression> wherelamdba, bool isasc, expression> orderlamdba)
public virtual pagedlistfindpagelist1(int pageindex, int pagesize, out int totalrecord, expression> wherelamdba, bool isasc, expression> orderlamdba)
public virtual listfindlistbysql(string sql, params object parameters)
public virtual int executebysql(string sql, params object parameters)}}
bllbaserepositorybll.cs
namespace bll.base
public virtual bool addok(t entity)
public virtual int count(system.linq.expressions.expression> predicate)
public virtual t update(t entity)
public virtual bool updateok(t entity)
public virtual bool delete(t entity)
public virtual bool exist(system.linq.expressions.expression> anylambda)
public virtual t find(expression> wherelambda)
public virtual iqueryablefindlist(expression> wherelamdba)
public virtual iqueryablefindlist(expression> wherelamdba, bool isasc, system.linq.expressions.expression> orderlamdba)
public virtual iqueryablefindpagelist(int pageindex, int pagesize, out int totalrecord, expression> wherelamdba, bool isasc, expression> orderlamdba)
public virtual pagedlistfindpagelist1(int pageindex, int pagesize, out int totalrecord, expression> wherelamdba, bool isasc, expression> orderlamdba)
public virtual listfindlistbysql(string sql, params object parameters)
public virtual int executebysql(string sql, params object parameters)}}
呼叫方式
dal層:先建立屬於某個實體物件的dal
namespace dal}}
bll層:然後建立對應的bll
namespace bll}}
EF架構 XMLRepository倉儲的實現
回到目錄 對於資料倉儲大家應該都很熟悉了,它一般由幾個倉儲規範和實現它的具體類組成,而倉儲的介面與架構本身無關,對於倉儲的實現,你可以選擇linq2sql,ef,nosql,及xml 等等,之前我介紹過linq2sql,ef和nosql redis 的倉儲實現,今天主要說一下xml倉儲的實現。下面的...
SqlSugar5 0定義倉儲模式
倉儲可以讓你的方法更加的規範,需要什麼方法都封裝到倉儲中,下次就能重複使用,並且能很好的和你業務拆分開 這種設計模式簡單粗暴用起來也方便 引用 定義 after.repository 類庫 定義的repository是公用類 using after.generic using sqlsugar us...
EF開發三種模式
入門的參考資料 本篇的參考資料 教程說的很明白,雖然聽不太懂,不過也能看懂 我該用哪個工作流?換句話說,也就是使用ef有哪幾種方式,哪種方式更適合你,更適合你當前要開發的專案。一 該不該使用ef 這個問題很複雜,個人認為,大中型專案,不宜使用ef。中小型專案,可以使用ef。二 使用ef的三種方式 1...