基于LINQ to SQL的WEB开发三层架构.docx
- 文档编号:2393809
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:25
- 大小:245.86KB
基于LINQ to SQL的WEB开发三层架构.docx
《基于LINQ to SQL的WEB开发三层架构.docx》由会员分享,可在线阅读,更多相关《基于LINQ to SQL的WEB开发三层架构.docx(25页珍藏版)》请在冰豆网上搜索。
基于LINQtoSQL的WEB开发三层架构
程序员不再受限于复杂的SQL脚本,而可以一种近乎完美的方式来搭建自己的面向对象型软件系统,这种方式就是将数据完全对象化,将SQL语句封装到底层,由framework来完成,程序员只需面向数据库对象来编程,从另一种意义上来说,是把数据也程序化了。
LINQ的这种开发模式也改变了系统架构的搭建方式,在以往的系统中,数据访问层DAL要访问数据字段,业务逻辑层BLL要得到数据都需要通过数据模型层Model来处理,而LINQ和VS2008为我们带来了一种全新的自动化方式生成数据模型层,这就是dbml(DatabaseMarkLanguage。
数据库描述语言,是一种xml格式的文档,用来描述数据库),有了它我们就不需要去找那些第三方的代码生成工具,只需要把数据表拖拽到设计器中,如下图所示,DONET便为我们做好了一切。
完成拖拽操作后,VS会自动生成一个数据模型层的dbml文件和相关的类文件。
这样我们省去了数据模型层的搭建,系统的架构也就有所不同,以下用一个例子简单的讲一下该架构模型。
为了完成这个架构,我们首先要创建一个WEBAPPLICATION项目,在新建项目窗口选择“ASP.NETWEB应用程序”,为它取一个名字,并确定。
接下来,在解决方案资源管理器中再添加一个类库项目,取名为DAL,如下图:
再使用同样的方法在解决方案资源管理器中添加一个类库项目,取名为BLL,这样我们的基础架构搭建完成,此时我们的解决方案资源管理器应该是如下结构。
此时,我们先从DAL项目入手,在DAL项目中,添加一个LINQTOSQL类,取名为Northwind(为了方便起见,此项目使用SQLSERVER2005中的Northwind示例数据库),双击新建立的Northwind.dbml文件,然后打开“服务器资源管理器”,建立与数据的连接,并从Northwind数据库中,将Employees表拖拽到Northwind.dbml文件的可视化设计器中。
初始的Northwind.dbml文件代码如下:
#pragmawarningdisable1591
//--------------------------------------
----------------------------------------
//
//此代码由
工具生成。
//运行时版本:
2.0.50727.3053
//
//对此文件的更改可能会
导致不正确的行为,并且如果
//重新生成代码,这些更改将会丢失。
//
//-----------------------------------------------------------------
-------------
namespaceDAL
{
usingSystem.Data.Linq;
using
System.Data.Linq.Mapping;
usingSystem.Data;
using
System.Collections.Generic;
usingSystem.Reflection;
using
System.Linq;
usingSystem.Linq.Expressions;
using
System.ComponentModel;
usingSystem;
[System.Data.Linq.Mapping.DatabaseAttribute(Name="Northwind")]
public
partialclassNorthwindDataContext:
System.Data.Linq.DataContext
{
privatestaticSystem.Data.Linq.Mapping.MappingSourcemappingSource=new
AttributeMappingSource();
#regionExtensibilityMethodDefinitions
partialvoidOnCreated();
partialvoidInsertEmployees(Employees
instance);
partialvoidUpdateEmployees(Employeesinstance);
partial
voidDeleteEmployees(Employeesinstance);
#endregion
public
NorthwindDataContext():
base
(global:
:
DAL.Properties.Settings.Default.NorthwindConnectionString,mappingSource)
{
OnCreated();
}
publicNorthwindDataContext(string
connection):
base(connection,mappingSource)
{
OnCreated();
}
publicNorthwindDataContext(System.Data.IDbConnectionconnection):
base(connection,mappingSource)
{
OnCreated();
}
publicNorthwindDataContext(stringconnection,
System.Data.Linq.Mapping.MappingSourcemappingSource):
base(connection,
mappingSource)
{
OnCreated();
}
public
NorthwindDataContext(System.Data.IDbConnectionconnection,
System.Data.Linq.Mapping.MappingSourcemappingSource):
base(connection,
mappingSource)
{
OnCreated();
}
public
System.Data.Linq.TableEmployees
{
get
{
return
this.GetTable();
}
}
}
[Table
(Name="dbo.Employees")]
publicpartialclassEmployees:
INotifyPropertyChanging,INotifyPropertyChanged
{
privatestatic
PropertyChangingEventArgsemptyChangingEventArgs=newPropertyChangingEventArgs
(String.Empty);
privateint_EmployeeID;
privatestring
_LastName;
privatestring_FirstName;
privatestring
_Title;
privatestring_TitleOfCourtesy;
private
System.Nullable_BirthDate;
private
System.Nullable_HireDate;
privatestring_Address;
privatestring_City;
privatestring_Region;
private
string_PostalCode;
privatestring_Country;
privatestring
_HomePhone;
privatestring_Extension;
private
System.Data.Linq.Binary_Photo;
privatestring_Notes;
privateSystem.Nullable_ReportsTo;
privatestring_PhotoPath;
#regionExtensibilityMethodDefinitions
partialvoidOnLoaded
();
partialvoidOnValidate(System.Data.Linq.ChangeActionaction);
partialvoidOnCreated();
partialvoidOnEmployeeIDChanging(intvalue);
partialvoidOnEmployeeIDChanged();
partialvoidOnLastNameChanging(string
value);
partialvoidOnLastNameChanged();
partialvoid
OnFirstNameChanging(stringvalue);
partialvoidOnFirstNameChanged();
partialvoidOnTitleChanging(stringvalue);
partialvoidOnTitleChanged
();
partialvoidOnTitleOfCourtesyChanging(stringvalue);
partial
voidOnTitleOfCourtesyChanged();
partialvoidOnBirthDateChanging
(System.Nullablevalue);
partialvoidOnBirthDateChanged
();
partialvoidOnHireDateChanging(System.Nullable
value);
partialvoidOnHireDateChanged();
partialvoid
OnAddressChanging(stringvalue);
partialvoidOnAddressChanged();
partialvoidOnCityChanging(stringvalue);
partialvoidOnCityChanged();
partialvoidOnRegionChanging(stringvalue);
partialvoid
OnRegionChanged();
partialvoidOnPostalCodeChanging(stringvalue);
partialvoidOnPostalCodeChanged();
partialvoidOnCountryChanging(string
value);
partialvoidOnCountryChanged();
partialvoid
OnHomePhoneChanging(stringvalue);
partialvoidOnHomePhoneChanged();
partialvoidOnExtensionChanging(stringvalue);
partialvoid
OnExtensionChanged();
partialvoidOnPhotoChanging(System.Data.Linq.Binary
value);
partialvoidO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于LINQ to SQL的WEB开发三层架构 基于 LINQ SQL WEB 开发 三层 架构