基于LINQtoSQL应用软件通用开发模式研究.docVIP

基于LINQtoSQL应用软件通用开发模式研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于LINQtoSQL应用软件通用开发模式研究

基于LINQtoSQL应用软件通用开发模式研究   摘要:目前企业级应用软件开发均采用分层逻辑架构。重点讨论了应用软件开发中使用LINQtoSQL技术后的软件项目开发模式,也即是研究得到一种适用于一般项目架构设计与开发的模式:能够基于LINQtoSQL数据库访问技术,围绕分层架构中的领域实体层、业务逻辑层的其它分析进行设计实现。   关键词:分层;LINQtoSQL;软件开发模式;领域实体层;业务逻辑层   中图分类号:TP302.7文献标识码:A文章编号:1672-7800(2013)006-0028-02   基金项目:武昌工学院校级科研课题基金项目(2009JS04)   作者简介:姚远,女,硕士,武昌工学院信息工程学院讲师,研究方向为应用软件开发技术;张铮(1984-),男,武昌工学院信息工程学院教师,研究方向为计算机应用技术、电子信息化。   0引言   一般来说,一个复杂的应用系统只要系统使用的开发方法一致(如面向对象的开发方法)、架构风格一致(如基于层次的逻辑分层架构)、使用的开发、测试技术一致,这些作为一个系统的基调规定下来后,无论面向什么行业的应用系统,整个开发过程从需求分析、数据库设计、模块设计、单元测试与功能实现都可以按照相同的步骤来依次完成。对于这些相同的步骤进行归纳,即为本文的主要研究内容。   1应用软件一般层次架构   面向对象分析、设计与开发已由最初的粗粒度简单对象的封装,演化出几种成熟的分层对象设计模型。受到C/S(客户/服务器)、N-Tier(多层架)、B/S架构、SOA(面向服务架构)等软件开发架构的影响,以及多种开发语言进化的推动,面向对象的软件一般可按3~5个逻辑层次划分。以一般Java EE的软件架构作为例子,这几个软件层次如图1所示。   具体项目应用中,这几个层次和数据库的设计实现分别完成后,一个软件基本上也就成型了。   从图1中可以看到,领域实体层、持久层、数据库这三者之间的联系可以表现在两个方向:一个是先行设计领域实体层,通过持久层生成数据库,另一个是对于数据库设计完毕实现后,由持久层生成领域实体层。持久层可以使用Hibernate或者LinqtoSQL。本文主要讨论关于LINQtoSQL技术的应用。LINQtoSQL会根据已经设计并实现完毕的数据库,生成领域实体层。围绕这些领域实体层应展开业务逻辑层的分析、设计。业务逻辑的设计是围绕领域实体的,不需要考虑持久化的问题。而持久层为所有业务逻辑的实现提供最基础的支持。   2LINQtoSQL生成领域实体   此处着重考虑从关系数据库生成领域实体,也即是将数据库中二维表转换成程序中处理的对象。从应用上来看,VisualStudio提供的对象关系设计器可以方便地完成此功能,它提供了用于许多 LINQ to SQL 功能实现的用户界面。通过可视化界面的操作,表映射后的类即自动生成,也即是说这些类就是提供给程序员进行后续编程的基础。   关系数据库中对于狭义数据库的概念是指:数据表按照一定的形式组织而成的集合。LINQ to SQL 最基本的映射形式就是将数据库映射到 DataContext,将数据表映射到类,将数据表中的列和关系映射到这些类的属性。这就关系到LINQtoSQL中两个核心的类:DataContext和Table。   2.1DataContext   从以上映射结果可以看出,类DataClasses1DataContext是继承自类System.Data.Linq.DataContext的。它代表映射后的“数据库”类。   图2说明通过LINQtoSQL,可以很便捷地得到映射后的LINQtoSQL对象模型,包括相应的DataContext类,以及类A、类B、类C等。   DataContext类似一个数据工厂,通过它可得到实体对象集合。从LINQtoSQL生成的代码可以看到:在DataContext的定义中,类A、类B、类C均为DataContext的只读属性。此处类A、类B、类C均为表1、表2、表3映射后的类。   2.2Table   这些实体对象集合的类型为Table,实现了接口IEnumerable))及IQueryable))等。是一个泛型类,位于命名空间System.Data.Linq中。这个类代表着有0到多个这样序列对象的集合,这些对象的类型是TEntity,也即是每个对象所属的实体类。   通过集合可以进行对象查询、添加实体对象、移除对象或附加对象等,重要方法见表1所示。   DataContext作为数据工厂可以得到需要的实体对象以外,它还有一个重要的方法是:SubmitChanges,用于根据插入、更新或删除的已修改对象或者对象集实现对数据库的更改。

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档