现在的位置: 首页 > 综合 > 正文

基于.NET的LINQ to SQL 三层架构开发之架构建立

2013年08月03日 ⁄ 综合 ⁄ 共 2430字 ⁄ 字号 评论关闭

写在前面的废话

基于.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");
            }
        }

至此,登录界面的代码已经完成。可以运行一下查看一下效果了。

下一篇:基于.NET的LINQ to SQL 三层架构开发之数据库操作通用代码

抱歉!评论已关闭.