業務場景
CRUD,從數據驅動的角度幾乎所有的的業務都是在做這樣的事情。
幾乎所有的操作都是在做對表的增刪改查。
假設我們將數據庫數據規個類:
分為基礎/配置數據和業務/增長數據,或者說靜態數據和動態數據。
其中靜態數據是由后台管理員編輯的產生,動態數據是由客戶產生。
那么這部分中的靜態數據往往伴隨着完整的增刪改查邏輯。
完整的增刪改查邏輯指的是,有對數據庫某個表數據的查詢。
一條或者幾條數據的添加,刪除,修改。
再直白一點就是有個界面,上面有查詢,添加,刪除,修改,導入,導出的按鈕。
設計描述
我針對這上面的情況做了這個設計,技術上用到asp.net mvc和 entityframework的codefirst模式。
由於涉及到從web界面到最底層的數據庫設計 所以我把它叫做CRUD全棧式設計
整體架構如圖所示:
簡要說明:
ListLayout是列表頁的布局頁
AddOrEditLayout是添加和修改頁面的布局頁
CrudController 是所有Controller的基類,繼承自Controller
其中ViewModel是泛型擴展的模型這個維度,為必須
SearchModel是泛型擴展的查詢實體這個維度,可選
OrderModel是泛型擴展的排序實體這個維度,可選
ICrudService 是所有服務接口的父接口
其中三個為泛型擴展維度,和CurdControler一樣
CurdService為所有服務的基類,並且繼承自ICrudService,其中Entity是efcodefirst的實體
Repository 這里借用了NLayerApp中的Repository設計
SortExpression部分借用了ApWorks中的設計
DB 這里我們用codefirst的話,db我理解起來等同於ef的dbcontext
后續
陸續會有幾篇文章詳細說明這個設計
1,數據層的設計
2,服務層的設計
3,控制器的設計
4,界面層的設計
5,mvc擴展的設計
6 , 導入導出的設計
7 , 更精簡的設計
8 , 總結