基於.NET的LINQ to SQL 三層架構開發之架構建立
寫在前面的廢話
基於.NET的LINQ to SQL 三層體系結構可分為以下幾層:Data Linq層、資料訪問層、業務邏輯層、表示層。下圖一中的箭頭符號說明了各層之間的互動情況:資料訪問層引用Data LINQ層;業務邏輯層引用資料訪問層以及Data LINQ層中的實體類;表示層引用業務邏輯層以及Data LINQ層中的實體類。
其中,Data LINQ層主要包括實體類和Data Context類。通常,一個實體類對於資料庫中的一張表。我們可以建立實體類的例項,在不同的層之間作為資料物件進行傳輸。
圖 一 LINQ to SQL 三層架構
下面以建立專案時的登入視窗為例,介紹LINQ to SQL 的三層架構開發
準備工作
1. 首先需要一個資料庫和一張資料表,用來儲存登入人員的使用者名稱和密碼。這裡,使用的是SQL Server 2005 資料庫。資料庫表結構如圖二所示。
圖 二 資料庫User表
2. 開啟VS,新建專案 ---> 其他專案型別--->Visual Studio解決方案--->空白解決方案。如圖三所示。(這裡使用的是Visual Studio 2008)
圖 三 新建空白解決方案
3. 新增類庫。在解決方案資源管理器中新建的解決方案上右擊--->新增--->新建專案--->類庫。如圖四所示。同樣的方法需要新增BLL, DAL, DataLinq三個類庫和一個Windows窗體應用程式(如果是Web應用開發,就選擇ASP.NET Web應用程式)命名為UI。
圖 四 新增類庫專案
新增完成後的結構如圖五所示。同時在UI上右擊,設UI為啟動項。
圖 五 專案結構圖
新增引用
在解決方案資源管理器中,新增各層的引用。BLL層選擇引用--->右擊--->新增引用。如圖六所示。新增System.Data.Linq的引用。同時根據上圖一所示各層的關係,新增對DAL 和 DataLinq的專案引用。同樣的方法,DAL 層新增對System.Data.Linq和DataLinq的專案引用;DataLinq層新增對System.Data.Linq的引用;UI層新增對System.Data.Linq的引用和BLL、 DataLinq的專案引用。
圖 六 新增專案引用
到目前為止,三層架構已經建立起來。下面是給各層新增各自對應的類。
1. 首先是DataLinq層。右擊DataLinq--->新增--->新建專案--->選擇LINQ to SQL類,如圖七所示。
圖 七 新增 LINQ to SQL 類
2. 新增完成後將自動建立一個空白的設計器(.dbml檔案),並附有伺服器資源管理器 的連結, 同時也建立相關的dbml.layout 檔案(XML檔案) 和designer.cs 檔案。開啟伺服器資源管理器,並建立到資料庫的連結。
圖 八 開啟伺服器資源管理器
3. 連線資料庫。選擇工具--->新增資料庫。如圖九所示。選擇剛在新建的資料庫,確定連線資料庫。這時,就會在伺服器資源管理器出現這個資料庫。
4. 選擇要用到的資料表User,拖放到設計器上面,如下圖十。儲存檔案。現在,已經自動生成了包含相關的屬性、方法的DataContext類和實體類。
圖 十 User類
新增各層程式碼
DAL層
新建UserDAL類,新增如下程式碼
//UserDAL.cs
using DataLinq;
using System.Data.Linq;
namespace DAL
{
public class UserDAL
{
private DataLinq.DBLinqDataContext objDataContext = new DataLinq.DBLinqDataContext();
public User SelectRecordByID(string userid)
{
try
{
return (from u in objDataContext.User where u.Id == userid select u).Single();
}
catch (Exception ex)
{
throw ex;
}
}
}
}
BLL層
新建UserBLL類,新增如下程式碼
//UserBLL.cs
using System.Data.Linq;
using DataLinq;
namespace BLL
{
public class UserBLL
{
private DAL.UserDAL objUserDAL = new DAL.UserDAL();
public User SelectRecordByID(string userid)
{
return objUserDAL.SelectRecordByID(userid);
}
}
}
UI層程式碼
//LoginForm.cs
private BLL.UserBLL objUserBLL = new BLL.UserBLL();
private void btnSubmit_Click(object sender, EventArgs e)
{
string id = txtId.Text.Trim();
string psd = txtPsd.Text.Trim();
User localDataTable = objUserBLL.SelectRecordByID(id);
if (localDataTable != null && localDataTable.Psd == psd)
{
MessageBox.Show("Success");
}
else
{
MessageBox.Show("false");
}
}
至此,登入介面的程式碼已經完成。可以執行一下檢視一下效果了。
相關文章
- Android架構系列-基於MVP建立適合自己的架構Android架構MVP
- 基於.NET+ Oracle三層架構的醫院LIS系統原始碼Oracle架構原始碼
- 三層架構理解架構
- MVC 與三層架構MVC架構
- 基於Python+Django+Jquery架構的Web開發PythonDjangojQuery架構Web
- 基於SpringCloud的Microservices架構實戰案例-架構拆解SpringGCCloudROS架構
- 架構之:serverless架構架構Server
- EDP .Net開發框架--組織架構框架架構
- .NET架構開發應知應會架構
- .Net微服務實戰之技術架構分層篇微服務架構
- 基於Python的web架構之Tornado+FlaskPythonWeb架構Flask
- .NET 雲原生架構師訓練營(基於 OP Storming 和 Actor 的大型分散式架構三)--學習筆記架構ORM分散式筆記
- Java開發架構篇:領域驅動設計架構基於SpringCloud搭建微服務Java架構SpringGCCloud微服務
- 基於乾淨架構使用原始SQL和DDD實現.NET Core REST API開源案例架構SQLRESTAPI
- MySQL之基礎架構MySql架構
- 基於Azure IoT開發.NET物聯網應用系列-全新的Azure IoT架構架構
- SQL Server底層架構技術對比SQLServer架構
- 【細品架構4/100】架構之架構切分架構
- 介紹基於事件的架構事件架構
- 基於 dubbo 的分散式架構分散式架構
- 架構設計之架構的演變架構
- 基礎架構遷雲(三)架構
- 架構之:資料流架構架構
- 前端架構之小小node架構前端架構
- NAS層架構03架構
- 基於微服務架構開發線上教育網站微服務架構網站
- 基於SpringCloud分散式架構SpringGCCloud分散式架構
- ASP.NET網站開發--關於對三層架構(例:請假管理系統)的個人認識詳情ASP.NET網站架構
- MySQL 高可用架構之 MMM 架構MySql架構
- 架構之:軟體架構漫談架構
- 架構之:微服務架構漫談架構微服務
- 架構演進之「微服務架構」架構微服務
- 架構師眼中的高併發架構架構
- MVC 三層架構案例詳細講解MVC架構
- EL&JSTL26_MVC&三層架構3JSMVC架構
- 你知道什麼是三層架構嗎?架構
- 基於Gin的IM聊天架構——HiChat架構
- 輕鬆構建基於 Serverless 架構的小程式Server架構
- 使用開源微前端框架 Luigi 建立一個基於微前端架構的工程前端框架UI架構