千家信息网

基于LINQ to SQL的WEB开发三层架构怎么实现

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容主要讲解"基于LINQ to SQL的WEB开发三层架构怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"基于LINQ to SQL的WEB开
千家信息网最后更新 2025年02月01日基于LINQ to SQL的WEB开发三层架构怎么实现

本篇内容主要讲解"基于LINQ to SQL的WEB开发三层架构怎么实现",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"基于LINQ to SQL的WEB开发三层架构怎么实现"吧!

程序员不再受限于复杂的SQL脚本,而可以一种近乎***的方式来搭建自己的面向对象型软件 系统,这种方式就是将数据完全对象化,将SQL语句封装到底层,由framework来完成,程序员 只需面向数据库对象来编程,从另一种意义上来说,是把数据也程序化了。

LINQ的这种开发模式也改变了系统架构的搭建方式,在以往的系统中,数据访问层DAL 要访问数据字段,业务逻辑层BLL要得到数据都需要通过数据模型层Model来处理,而LINQ和 VS2008为我们带来了一种全新的自动化方式生成数据模型层,这就是dbml(Database Mark Language。数据库描述语言,是一种xml格式的文档,用来描述数据库),有了它我们就不需要 去找那些第三方的代码生成工具,只需要把数据表拖拽到设计器中,如下图所示,DONET便为我 们做好了一切。

完成拖拽操作后,VS会自动生成一个数据模型层的dbml文件和相关的类文件。这样我们省去 了数据模型层的搭建,系统的架构也就有所不同,以下用一个例子简单的讲一下该架构模型。

为了完成这个架构,我们首先要创建一个WEB APPLICATION项目,在新建项目窗口选择 "ASP.NET WEB应用程序",为它取一个名字,并确定。

接下来,在解决方案资源管理器中再添加一个类库项目,取名为DAL,如下图:

再使用同样的方法在解决方案资源管理器中添加一个类库项目,取名为BLL,这样我们的基 础架构搭建完成,此时我们的解决方案资源管理器应该是如下结构。

此时,我们先从DAL项目入手,在DAL项目中,添加一个LINQ TO SQL类,取名为Northwind( 为了方便起见,此项目使用SQL SERVER2005中的Northwind示例数据库),双击新建立的 Northwind.dbml文件,然后打开"服务器资源管理器",建立与数据的连接,并从Northwind数 据库中,将Employees表拖拽到Northwind.dbml文件的可视化设计器中。

初始的Northwind.dbml文件代码如下:

#pragma warning disable 1591//------------------------------------------------------------------------------// //     此代码由工具生成。//     运行时版本:2.0.50727.3053////     对此文件的更改可能会导致不正确的行为,并且如果//     重新生成代码,这些更改将会丢失。////------------------------------------------------------------------------------namespace DAL{using System.Data.Linq;using System.Data.Linq.Mapping;using System.Data;using System.Collections.Generic;using System.Reflection;using System.Linq;using System.Linq.Expressions;using System.ComponentModel;using System;[System.Data.Linq.Mapping.DatabaseAttribute(Name="Northwind")]public partial class NorthwindDataContext : System.Data.Linq.DataContext{private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();#region Extensibility Method Definitionspartial void OnCreated();partial void InsertEmployees(Employees instance);partial void UpdateEmployees(Employees instance);partial void DeleteEmployees(Employees instance);#endregionpublic NorthwindDataContext() : base(global::DAL.Properties.Settings.Default.NorthwindConnectionString, mappingSource){OnCreated();}public NorthwindDataContext(string connection) : base(connection, mappingSource){OnCreated();}public NorthwindDataContext(System.Data.IDbConnection connection) : base(connection, mappingSource){OnCreated();}public NorthwindDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) : base(connection, mappingSource){OnCreated();}public NorthwindDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) : base(connection, mappingSource){OnCreated();}public System.Data.Linq.Table

从中可以看到,这里本质上就是以前的数据模型层,将数据整个对象化了,为了层之间的访 问方便,我们将改类的命名空间改为Auto.DAL,并将NorthwindDataContent类的***个构造函 数代码修改如下,这样修改主要是为了统一数据库连接字符串的位置,因为dbml文件在生成后 会附带生成一个app.config文件,用来存放连接字符串,而我们要把连接字符串统一放到 web.config中。(要访问web.config文件,需要为DAL项目添加对System.Configuration的应用 )

public NorthwindDataContext() :base(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString, mappingSource){OnCreated();}

完成前面的操作以后,开始建立数据访问层的类文件,这时,先在 DAL项目下添加一个类文件,取名为DALEmployees.cs,其代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Auto.DAL{public class DALEmployees{///NorthwindDataContext db = new NorthwindDataContext();//////[object Object]城 市地址///public IQueryable

这个数据访问层中只建立了一个用来根据城市地址获取Employee数据的方法,它内部执行一 段LINQ,返回一个IQueryable型的结果,由于LINQ后期编译的特性,这个结果只有在程序运行 后才会返回数据集。

接着,建立业务逻辑层,在BLL项目中,添加一个类文件,取名为BLLEmployees.cs,其代码 如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Auto.DAL;namespace Auto.BLL{public class BLLEmployees{//////[object Object]城市名///public IQueryable

这段代码完成了业务逻辑层的定义,建立了一个和数据访问层的同名方法GetList,用来传 送城市名称参数。***,在WEB Application项目中,添加对BLL层的应用,并在Default.aspx 页面中添加一个GridView控件用来显示数据,Default.aspx.cs的代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Auto.BLL;namespace WebApplication2{public partial class _Default : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){GetList("London");}} //////[object Object]城市名称private void GetList(string strCity) {//执行业务逻辑层的方法BLLEmployees bl = new BLLEmployees();//绑 定到GridView1控件GridView1.DataSource = bl.GetList (strCity);GridView1.DataBind();}}}

完成后,执行程序,便可得到相关数据,整个程序的结构如下:

到此,相信大家对"基于LINQ to SQL的WEB开发三层架构怎么实现"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

数据 文件 项目 代码 架构 程序 生成 模型 数据库 方法 开发 业务 城市 对象 方式 系统 资源 资源管理 逻辑 管理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 党委党组网络安全工作责任制办法 如何写软件开发文档 怀旧服服务器刷怪路线 直播软件开发公司哪家靠谱 农安网络技术咨询质量保障 网站提取数据库 广西党员教育软件开发 我的测试数据库怎么创建命令 潮州专业软件开发市价 配置服务器文件夹权限管理 2017三级网络技术题库 合肥软件开发培训哪家学校好 安卓微信数据库修改聊天记录 贺州裁剪网络技术有限公司 查看数据库下有多少用户 微信收款音响老是无法连接服务器 在数据库的安全性控制 2017网络安全事故案例 公安网络安全管理工作总结 计算机网络技术专业工作周报 西安东恒鑫源软件开发有限公司 苍蓝境界怎么连接两个服务器 泰安联想服务器总代理销售电话 美股网络安全的股票龙头是哪个 致网络安全家长的一封信 启橙网络技术有限公司怎么样 惊天动地ep8数据库修改经验 中标麒麟服务器根目录空间扩容 用vs对数据库新建查询 网络安全巡展活动
0