三層架構的好處,一套代碼無論WinForm還是Web都可以通用,只寫前台邏輯就可以了,現在展示Web調用三層的示例
首先在項目中創建一個Web MVC5項目,目前項目目錄如下
在Web項目Web.config中增加數據庫連接
<connectionStrings> <add name="con" connectionString="Data Source=127.0.0.1;Initial Catalog=Northwind;User ID=sa;Password=******;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"/> </connectionStrings>
然后增加項目類庫引用
擴展DAL增加查詢所有數據的方法
public static List<Region> GetAll() { using (IDbConnection conn = new SqlConnection(connStr)) { string sql = "SELECT r.RegionID, r.RegionDescription FROM Region AS r"; IEnumerable<Region> regions = conn.Query<Region>(sql); return regions.ToList(); } }
在BLL中增加調用DAL中的GetALL方法
public static List<Model.Region> GetALLRegion() { return DAL.RegionService.GetAll(); }
在Web Home控制器中添加引用
using Northwind.BLL; using Northwind.Model;
修改Index方法中添加如下獲取實體類的方法,傳遞到View視圖中
public ActionResult Index() { List<Region> regions = new List<Region>(); regions = RegionManger.GetALLRegion(); return View(regions); }
修改Index視圖為以下代碼
@model IEnumerable<Northwind.Model.Region> <table class="table"> <caption>Region</caption> <thead> <tr> <th>RegionID</th> <th>RegionDescription</th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr> <td>@Html.DisplayFor(modelitem => item.RegionID)</td> <td>@Html.DisplayFor(modelitem => item.RegionDescription)</td> </tr> } </tbody> </table>
展示效果