構建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的後台管理系統(4)-構建項目解決方案 建立EF DataBase Frist模式

來源:互聯網
上載者:User

標籤:

進行本次文章之前,我們可能需要補充一些基本知識。

首先我們系統是基於介面編程的,我們為什麼要使用借口編程,其實這是應用了一種公司專屬應用程式架構模式

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才能正確使用DB Frist模式,看到DB.edmx的屬性視窗,將代碼建置原則一項的無改為預設值

我們開啟SQL Server如果你安裝了VS2012我相信你的資料庫也不老,我是SQL Server2008 R2版本

我們建立一個簡單的案例表吧:

Create database DB 建立一個名稱為DB的資料庫

use DB
go  CREATE  TABLE  [dbo].[SysSample](      [Id] [ varchar ](50)  NOT  NULL ,      [ Name ] [ varchar ](50)  NULL ,      [Age] [ int NULL ,      [Bir] [datetime]  NULL ,      [Photo] [ varchar ](50)  NULL ,      [Note] [text]  NULL ,      [CreateTime] [datetime]  NULL ,   CONSTRAINT  [PK__SysSampl__3214EC075AEE82B9]  PRIMARY  KEY  CLUSTERED (      [Id]  ASC ) WITH  (PAD_INDEX  =  OFF , STATISTICS_NORECOMPUTE  =  OFF , IGNORE_DUP_KEY =  OFF , ALLOW_ROW_LOCKS  =  ON , ALLOW_PAGE_LOCKS  =  ON ON  [ PRIMARY ] ON  [ PRIMARY ] TEXTIMAGE_ON [ PRIMARY ]  GO

好了有了資料庫和表,我們往資料庫添加模型映射,說到這裡我簡單說說我們用EF的原理,EF是一個ORM架構,ORM是通過描述對象和關聯式資料庫之間的映射,將程式中的對象自動持久化到關聯式資料庫中,簡單易用、效能突出的泛型持久化支援,則將使您能夠將更多注意力集中到業務開發,所以大家懂要懂得什麼是事務,加入我們從資料庫取出10條資料,我刪除了1條,過一會在刪除1條,只要我提交事務才到資料庫執行刪除,否則將是刪除記憶體的資料庫,所以資料庫的壓力小了,記憶體的壓力大了。

建立串連-----選擇Microsoft Sql server


設定到這裡,在2012中”代碼建置原則“設定“預設”方式,2013中設定成”舊的ObjectContext“

相信你此時已經看到了效果了,我可能寫得太詳細了,文章有點亂。

如果你用過熟悉三層架構,那現在可以動手對項目之間的關係進行引用了。

下面給出一個引用流程:按照這個來進行引用,有了更清楚的讓大家看出注入,我們目前這樣引用

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

下一講我們將利用介面編程我們實現一個增刪改代碼,一些糟糕的代碼

構建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的後台管理系統(4)-構建項目解決方案 建立EF DataBase Frist模式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.