亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 擴展 > MVC > 正文

MVC項目結構搭建及單個類的實現學習筆記1

2024-09-06 20:44:35
字體:
來源:轉載
供稿:網友

新人剛開始學習ASP.NET MVC,若有不足之處希望能得到您的指點,不勝感激!

先來一張項目的層級結構圖:

Model:模型層,主要是各種類型、枚舉以及ORM框架,框架完成數據庫和實體類的映射。項目中選用了微軟的開源ORM框架 EntityFramework 6.0 (以下簡稱EF),數據庫則選擇了微軟的輕量級數據庫SQL Server Compact 4.0本地數據庫(簡稱Compact),Compact對EF支持比較完美,又屬于文檔型數據庫,部署起來比較簡潔。

DAL:數據訪問層,主要是對數據庫的操作層,為業務邏輯層或表示層提供數據服務。

IDAL:數據訪問接口層,是數據訪問層的接口,降低耦合。

DALFactory:數據會話層,封裝了所有數據操作類實例的創建,將數據訪問層與業務邏輯層解耦。

BLL:業務邏輯層,主要負責對數據層的操作,把一些數據層的操作進行組合以完成業務的需要。

IBLL:業務邏輯接口層,業務邏輯層的接口,降低耦合。

WebApp:表現層,是一個ASP.NET MVC項目,完成具體網站的實現。

Common:通用層,用來存放一些工具類。

下面是各個層級之間具體的實現,首先創建以 項目名.層級名 命名的各個層次,除WebApp層為ASP.NET MVC項目外,其余均創建為類庫項目。

模型層的構建

先建立模型層,新建ASP.NET 實體數據模型,關聯到已經設計好的數據庫,EF自動完成模型類的創建。

數據訪問層的構建

      DAL層中,我們首先需要一個方法來獲取單例的EF數據操縱上下文對象,以保證每個用戶訪問時只有使用一個上下文對象對數據庫進行操作。

DbContextFactory.cs

using System.Data.Entity;using System.Runtime.Remoting.Messaging;using PMS.Model;namespace PMS.DAL{  public class DbContextFactory  {    /// <summary>    /// 負責創建EF數據操作上下文實例,必須保證線程內唯一    /// </summary>    public static DbContext CreateContext()    {      DbContext dbContext = (DbContext)CallContext.GetData("dbContext");      if (dbContext != null) return dbContext;      dbContext = new PMSEntities();      CallContext.SetData("dbContext", dbContext);      return dbContext;    }  }}
 

為User類創建DAL層,實現查詢、分頁查詢、增加、刪除和修改這五個基本的方法:

UserDAL.cs

using System;using System.Data.Entity;using System.Linq;using PMS.IDAL;namespace PMS.DAL{  public partial class UserDal   {    public DbContext DbEntities = DbContextFactory.CreateContext();    /// <summary>    /// 查詢過濾    /// </summary>    /// <param name="whereLamada">過濾條件Lambda表達式</param>    /// <returns>實體集合</returns>    public IQueryable<UserDal> LoadEntities(System.Linq.Expressions.Expression<Func<UserDal, bool>> whereLamada)    {      return DbEntities.Set<UserDal>().Where(whereLamada);    }    /// <summary>    /// 分頁查詢    /// </summary>    /// <typeparam name="TS">排序類型</typeparam>    /// <param name="pageIndex">查詢的頁碼</param>    /// <param name="pageSize">每頁顯示的數目</param>    /// <param name="totalCount">符合條件的總行數</param>    /// <param name="whereLambda">過濾條件Lambda表達式</param>    /// <param name="orderbyLambda">排序Lambda表達式</param>    /// <param name="isAsc">排序方向</param>    /// <returns>實體集合</returns>    public IQueryable<UserDal> LoadPageEntities<TS>(int pageIndex, int pageSize, out int totalCount, System.Linq.Expressions.Expression<Func<UserDal, bool>> whereLambda, System.Linq.Expressions.Expression<Func<UserDal, TS>> orderbyLambda, bool isAsc)    {      var temp = DbEntities.Set<UserDal>().Where(whereLambda);      totalCount = temp.Count();      temp = isAsc ? temp.OrderBy(orderbyLambda).Skip((pageIndex - 1) * pageSize).Take(pageSize) : temp.OrderByDescending(orderbyLambda).Skip((pageIndex - 1) * pageSize).Take(pageSize);      return temp;    }    /// <summary>    /// 刪除數據    /// </summary>    /// <param name="entity">待刪數據</param>    /// <returns>刪除結果</returns>    public bool DeleteEntity(UserDal entity)    {      DbEntities.Entry(entity).State = EntityState.Deleted;      return true;    }    /// <summary>    /// 編輯數據    /// </summary>    /// <param name="entity">待編輯數據</param>    /// <returns>編輯結果</returns>    public bool EditEntity(UserDal entity)    {      DbEntities.Entry(entity).State = EntityState.Modified;      return true;    }    /// <summary>    /// 添加數據    /// </summary>    /// <param name="entity">待添加數據</param>    /// <returns>已添加數據</returns>    public UserDal AddEntity(UserDal entity)    {      entity = DbEntities.Set<UserDal>().Add(entity);      return entity;    }      }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线播放一区| 成人欧美一区二区三区在线湿哒哒| 欧美wwwxxxx| 国产精品久久久久久久av大片| 亚洲免费视频一区二区| 国产一区二区久久精品| 日韩中文字幕在线观看| 国产亚洲精品美女| 精品国产欧美一区二区五十路| 亚洲欧美自拍一区| 久热精品在线视频| 久久天天躁日日躁| 国产精品视频区1| 亚洲毛茸茸少妇高潮呻吟| 欧美精品中文字幕一区| 韩国视频理论视频久久| 81精品国产乱码久久久久久| 亚洲第一色中文字幕| 91免费国产视频| 欧美一区二区.| 91久久久久久久久| 91探花福利精品国产自产在线| 亚洲人成电影网站色xx| 色多多国产成人永久免费网站| 97视频色精品| 国产精品久久久久久搜索| www.日韩欧美| 欧美巨乳美女视频| 欧美视频在线观看免费网址| 日韩国产高清污视频在线观看| 亚洲精品成人久久| 不卡av在线网站| 亚洲精品一区二三区不卡| 国产精品亚发布| 色悠悠久久88| 日韩电影中文字幕av| 在线中文字幕日韩| 欧美亚洲激情视频| 精品无码久久久久久国产| 欧美在线不卡区| 日韩成人av一区| 色偷偷88888欧美精品久久久| 国外视频精品毛片| 麻豆精品精华液| 热门国产精品亚洲第一区在线| 在线观看不卡av| 68精品久久久久久欧美| 在线日韩欧美视频| 中文字幕av一区| 欧美精品福利视频| 2024亚洲男人天堂| 久久精品国产亚洲一区二区| 欧美亚洲在线视频| 成人免费福利在线| 国产日韩欧美在线观看| 国产精品扒开腿做爽爽爽的视频| 欧美黄色片在线观看| 91亚洲精品在线| 亚洲自拍偷拍区| 2019国产精品自在线拍国产不卡| 久久亚洲精品一区| 亚洲成人1234| 欧美日韩国产一区中文午夜| 日韩视频永久免费观看| 国产69精品久久久久9999| 亚洲成人在线视频播放| 岛国精品视频在线播放| 亚洲最新中文字幕| 国产成人精品综合久久久| 国产精品国模在线| 国产欧美日韩精品丝袜高跟鞋| 久久久国产精品一区| 欧美日韩在线一区| 国产精品网站视频| 亚洲人午夜精品| 国产精品日韩在线播放| 国产精品自拍偷拍视频| 亚洲视频欧洲视频| 欧美成年人视频网站| 一区二区三区视频免费| 亚洲人成网站免费播放| 亚洲人成在线观看网站高清| 日韩av日韩在线观看| 亚洲石原莉奈一区二区在线观看| 欧美肥臀大乳一区二区免费视频| 日韩精品视频三区| 社区色欧美激情 | 91亚洲精华国产精华| 日韩av不卡在线| 亚洲视频在线观看| 91精品久久久久久久| 日韩av免费看| 午夜精品福利在线观看| 日韩av不卡在线| 97精品在线视频| 亚洲中国色老太| 国产精品亚洲一区二区三区| 国产精品99久久久久久人| 亚洲四色影视在线观看| 久久影院模特热| 91国产精品91| 国产精品18久久久久久首页狼| 国产午夜精品久久久| 国产亚洲美女久久| 在线观看欧美视频| 亚洲精品欧美日韩专区| 欧美另类精品xxxx孕妇| 中文字幕亚洲一区在线观看| 日韩电影在线观看永久视频免费网站| 这里只有精品久久| 国产香蕉97碰碰久久人人| 久久精品国产99国产精品澳门| 亚洲国产欧美一区二区三区同亚洲| 日韩高清中文字幕| 成人日韩av在线| 亚洲三级 欧美三级| 欧美日韩第一视频| 伊人成人开心激情综合网| 国产欧美一区二区三区视频| 一区二区在线视频播放| 国产精品高潮视频| 亚洲精品中文字幕av| 久久99精品久久久久久青青91| 亚洲午夜性刺激影院| 久久久99久久精品女同性| 1769国内精品视频在线播放| 亚洲精品乱码久久久久久按摩观| 国产精品久久久久久久久久久新郎| 国产精品一香蕉国产线看观看| 亚洲欧美激情四射在线日| 久久久精品网站| 亚洲人午夜精品免费| 国产福利成人在线| 91情侣偷在线精品国产| 日韩av观看网址| 在线视频中文亚洲| 亚洲人高潮女人毛茸茸| 久久亚洲国产精品| 欧美大全免费观看电视剧大泉洋| 国产精品视频导航| 伊人久久久久久久久久久| 国产色视频一区| 欧美日韩999| 欧美精品久久久久a| 国产亚洲激情视频在线| 欧美性猛交xxxx富婆| 黄网站色欧美视频| 日韩福利伦理影院免费| 欧美第一黄网免费网站| 欧美激情亚洲精品| 欧美精品少妇videofree| 久久精品精品电影网| 欧美成人午夜激情视频| 日韩中文在线观看| 欧美精品18videosex性欧美| 久久噜噜噜精品国产亚洲综合| 91网站免费观看| 69久久夜色精品国产69| 日本亚洲欧美成人| 亚洲国产精彩中文乱码av| 精品美女永久免费视频| 51精品在线观看| 欧美成人精品在线视频| 久久成人免费视频|