欢迎来到天天文库
浏览记录
ID:38711254
大小:294.00 KB
页数:5页
时间:2019-06-18
《基于LINQ to SQL的WEB开发三层架构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于LINQtoSQL的WEB开发三层架构(组图)2009年05月06日10:39 来源:我有话说 查看评论(0)好文我顶(0) 程序员不再受限于复杂的SQL脚本,而可以一种近乎完美的方式来搭建自己的面向对象型软件系统,这种方式就是将数据完全对象化,将SQL语句封装到底层,由framework来完成,程序员只需面向数据库对象来编程,从另一种意义上来说,是把数据也程序化了。 LINQ的这种开发模式也改变了系统架构的搭建方式,在以往的系统中,数据访问层DAL要访问数据字段,业务逻辑层BLL要得到数据都需要
2、通过数据模型层Model来处理,而LINQ和VS2008为我们带来了一种全新的自动化方式生成数据模型层,这就是dbml(DatabaseMarkLanguage。数据库描述语言,是一种xml格式的文档,用来描述数据库),有了它我们就不需要去找那些第三方的代码生成工具,只需要把数据表拖拽到设计器中,如下图所示,DONET便为我们做好了一切。 完成拖拽操作后,VS会自动生成一个数据模型层的dbml文件和相关的类文件。这样我们省去了数据模型层的搭建,系统的架构也就有所不同,以下用一个例子简单的讲一下该架构模型。
3、 为了完成这个架构,我们首先要创建一个WEBAPPLICATION项目,在新建项目窗口选择“ASP.NETWEB应用程序”,为它取一个名字,并确定。 接下来,在解决方案资源管理器中再添加一个类库项目,取名为DAL,如下图: 再使用同样的方法在解决方案资源管理器中添加一个类库项目,取名为BLL,这样我们的基础架构搭建完成,此时我们的解决方案资源管理器应该是如下结构。 此时,我们先从DAL项目入手,在DAL项目中,添加一个LINQTOSQL类,取名为Northwind(为了方便起见,此项目使用SQLSE
4、RVER2005中的Northwind示例数据库),双击新建立的Northwind.dbml文件,然后打开“服务器资源管理器”,建立与数据的连接,并从Northwind数据库中,将Employees表拖拽到Northwind.dbml文件的可视化设计器中。共2页:12 内容导航 第1页:LINQ开发模式第2页:初始Northwind.dbml代码 初始的Northwind.dbml文件代码如下: #pragmawarningdisable1591//-- ////此代码由 工具生成。//运行时版
5、本:2.0.50727.3053////对此文件的更改可能会 导致不正确的行为,并且如果//重新生成代码,这些更改将会丢失。////- -namespaceDALusingSystem.Data.Linq;using System.Data.Linq.Mapping;usingSystem.Data;using System.Collections.Generic;usingSystem.Reflection;using System.Linq;usingSystem.Linq.Expressio
6、ns;using 从中可以看到,这里本质上就是以前的数据模型层,将数据整个对象化了,为了层之间的访问方便,我们将改类的命名空间改为Auto.DAL,并将NorthwindDataContent类的第一个构造函数代码修改如下,这样修改主要是为了统一数据库连接字符串的位置,因为dbml文件在生成后会附带生成一个app.config文件,用来存放连接字符串,而我们要把连接字符串统一放到web.config中。(要访问web.config文件,需要为DAL项目添加对System.Configuration的应
7、用) publicNorthwindDataContext():base (ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString,mappingSource)OnCreated (); 完成前面的操作以后,开始建立数据访问层的类文件,这时,先在DAL项目下添加一个类文件,取名为DALEmployees.cs,其代码如下:usingSystem;usingSystem.Collectio
8、ns.Generic;usingSystem.Linq;usingSystem.Text;namespaceAuto.DALpublicclassDALEmployees//////VS自动生成的数据模型///NorthwindDataContextdb=newNorthwindDataContext();//////根据条件获取数据列表方法//////城市地址///获取的Employees数据列表publicI
此文档下载收益归作者所有