進行本次文章之前,我們可能需要補充一些基本知識。
首先我們系統是基于接口程式設計的,我們為什麼要使用借口程式設計,其實這是應用了一種企業應用架構模式
Repository(倉儲)
一種用來封裝存儲,讀取和查找行為的機制,它模拟了一個對象集合。
支援在領域和資料映射層之間實作徹底分離和單向依賴關系的目标。
接口程式設計
最主要的目的是使關注點分離,讓開發人員各司其職
代碼封存保密,分包開發,無需要給予邏輯結構代碼,隻需要給予接口檔案
缺點:設計困難,比傳統的三層,單類模式困難,但是接口程式員工資都很高!
AOP(面向方面程式設計)
我們為了彌補面向對象缺陷,我們系統将引入面向方面程式設計
主要用于日志記錄,事務處理,異常處理等等。
概念這種東西過于模糊,我們必須經曆過一個大系統才能認識這些概念模型。我無法用文章來下詳細解析此系統的深層概念,需要大家在日常工作中實踐和意會,推薦一本.net的設計書籍《Microsoft .NET企業級應用架構設計》這本書詳細的講述了接口程式設計,面向方面程式設計
通過上面我們需要建構項目的解決方案。
雖然MVC的controller層包含了邏輯,但是對于一個大系統,我們不可能把業務和資料庫底層包含在一起,雖然提供了Models模型檔案夾,在第二講我把他删除了,我們将這一層Model層提取出來,任何層的設計都好,都是從三層設計模式衍生出來的,本系統也不例外。我們是基于接口程式設計的倉儲模式,是以我們必須有BLL,IBLL,DAL,IDAL的對應類庫。
好,現在我們右鍵我們的解決方案吧。分别建立
App.BLL (業務層)
App.IBLL (業務層接口)
App.DAL (資料層)
App.IDAL (資料層接口)
App.Models (模型)
App.Common(通用類庫)
App.Core (核心類庫)
圖:

添加:EF5.0 VS2012旗艦版預設已經內建安裝了EF5.0我們把他存放到App.Models類庫下
右鍵----添加建立項
輸入名稱DB大家自己取名稱,這裡選擇空模型,我們是模型優先模式,不是code frist模式要注意。對于系統來說我認為模型優先是有優勢的
展開DB.edmx删除DB.Context.tt和DB.tt才能正确使用Model Frist模式,看到DB.edmx的屬性視窗,将代碼生成政策一項的無改為預設值
我們打開SQL Server如果你安裝了VS2012我相信你的資料庫也不老,我是SQL Server2008 R2版本
我們建立一個簡單的事例表吧:
Create database DB 建立一個名稱為DB的資料庫
好了有了資料庫和表,我們往資料庫添加模型映射,說到這裡我簡單說說我們用EF的原理,EF是一個ORM架構,ORM是通過描述對象和關系資料庫之間的映射,将程式中的對象自動持久化到關系資料庫中,簡單易用、性能突出的泛型持久化支援,則将使您能夠将更多注意力集中到業務開發,是以大家懂要懂得什麼是事務,加入我們從資料庫取出10條資料,我删除了1條,過一會在删除1條,隻要我送出事務才到資料庫執行删除,否則将是删除記憶體的資料庫,是以資料庫的壓力小了,記憶體的壓力大了。
建立連接配接-----選擇Microsoft Sql server
相信你此時已經看到了效果了,我可能寫得太詳細了,文章有點亂。
如果你用過熟悉三層架構,那現在可以動手對項目之間的關系進行引用了。
下面給出一個引用流程:按照這個來進行引用,有了更清楚的讓大家看出注入,我們目前這樣引用
App.Admin-------------App.Models,App.Common,App.Core,App.IBLL,App.BLL,App.DAL,App.IDAL,System.Data.Entity
App.BLL-----------App.Models,App.IBLL,App.DAL,App.IDAL,System.Data.Entity
App.BLL--------------App.IBLL,System.Data.Entity
App.DAL--------------App.IDAL,System.Data.Entity
App.IDAL--------------System.Data.Entity
下一講我們将利用接口程式設計我們實作一個增删改代碼,一些糟糕的代碼