LINQ下使用三层构的探索.docVIP

  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文档。上传文档
查看更多
LINQ下使用三层构的探索

LINQ下使用三层架构的探索(一)文章索引与概念 建立一个LTS层,并在表示层中查询数据 建立一个LTS层,并在表示层中插入数据 建立一个逻辑访问层,并且添加一些查询方法 逻辑访问层中的带参查询、插入、更新以及删除 逻辑访问层中的数据统计以及一个主从报表 现在网上能够将LINQ讲的很清楚或者比较深刻的文章并不多,而关于分层的则就更少,无论是国外还是国内,对于LINQ的应用都还在探索阶段,也有不少人怀疑LINQ的性能。 而就我个人而言,也没有更好的办法去探究它的性能究竟如何。不过作为一个传统三层架构的忠实粉丝,我仅仅将我在LINQ下使用三层架构的经验拿出来与大家分享。如果这么做不好或者会损失性能,还请高手指出。如果觉得有可以探讨的地方,欢迎大家留言。 进入正题,为了实现多种数据展现的方法,我使用了一个很流行的NORTHWIND数据库(就是Scott MitchellASP.NET 2.0数据教程中的那个数据库)。在这里,我们所使用的三层架构稍稍与原先不同,因为LINQ的存在。 ? 这样,三层架构就成了:表示层,逻辑访问层,LTS层 这么做的原因如下: 1三层结构不允许在表示层中使用任何有关数据访问的内容,因此表示层中不能使用Linq语法直接去访问数据,即便是已经对象化的 2之所以把LINQ语句放在逻辑层是因为,Linq语法能够与C#或者VB混合使用,与传统的TSQL语言有很大不同,而且把它放在逻辑层,能够更加方便的处理业务上的规则。与此同时该层访问的并非数据实体,所以仍然是建立在数据访问层之上的层。 3 LTS层由VS2008自动建成,将数据对象化,使我们可以使用linq语法与访问它。 这章简单的描述了我设计的新三层架构,下章将讲一些实例,包括最基本的linq的使用方法。 (二)建立一个LTS层,并在表示层中查询数据 按部就班地做 1打开VS2008,新建一个站点,直接将提供的Northwind数据库拷贝到App_Data中。 在根目录按右键,Add new item,然后选择LINQ to SQL classes,选择C#语言,重命名为Northwind.dbml。 2 点击Server Explorer 选项卡,打开NORTHWIND.MDF节点,将tables中的表Categories和表Products拖入Northwind.dbml中。 3 点击窗口中的空白处,切换到Properties 选项卡,注意到这个DataContext的名字为NorthwindDataContext,之后我们要使用到该对象创建实例。点击到Products表,注意到他的名字为Products,Source属性为dbo.Products。 4 注意到Solution Explorer中的Northwind.dbml有个cs类文件,我们可以看一下他的内容,仔细看可以理解他的工作原理,但是我们现在不深入讨论这些东西。 5 这一张我们先不添加包含LINQ语法的逻辑访问层,而直接通过表示层和一些LINQ语句来使用表中的数据。所以我们新建一个WEB窗体,添加一个GridView,双击空白处,进入PageLoad事件,让我们添加如下代码: NorthwindDataContext?db?=?new?NorthwindDataContext(); 牋牋牋牋var爌roduct?爁rom爌爄n燿b.Products hwindDataC牋牋牋牋牋牋牋牋牋牋爏elect爌; 爌爄n燿b.Produc牋牋牋牋GridView1.DataSource=product; hwin牋牋牋牋GridView1.DataBind(); rodu? 6 简单的解释一下这些代码: 1)???????? 我们创建了一个DataContext实例 db 2)??????? 我们使用了一个新的var关键字,告诉编译器,让它判断值的类型。(但是既然让编译器推断类型就必须声明的时候赋值,而且不能是null值。注意,这只能用于局部变量,用于字段是不可以的) 3)??????? 我们选择了db中的Products,其实这就是表Products对象化后的结果(关于LINQ语法这里先不讲) 4)??????? 其实最后product的类型应该就是IQueryable,该类型位于System.Linq中。该类型可以直接作为DataSource使用。 5)???????? 使用product作为GridView1的数据源,然后绑定。 7 然后运行该页面,将看到Product表中的所有记录。 它是如何工作的? 我们做的工作非常少,我们仅仅是建立了一个LINQ TO SQL 类,并且将数据库中的表拖入其中(还可以把视图和存储过程添加进去)。之后,VS2008自动生成了一系列的代码,

文档评论(0)

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

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

1亿VIP精品文档

相关文档