当前位置: 首页 > news >正文

暴雪公司最新消息搜索引擎排名优化程序

暴雪公司最新消息,搜索引擎排名优化程序,wordpress瀑布流插件,安徽省建设工程协会网站请注明转载地址#xff1a;http://www.cnblogs.com/arhat通过上一章的学习#xff0c;我们建立了Student和Clazz之间的关联属性#xff0c;并从Student(many)的一方查看了Clazz的信息#xff0c;同时我们使用了懒加载技术和立即执行的方式来实现了对象的关联查询#xff0…请注明转载地址http://www.cnblogs.com/arhat通过上一章的学习我们建立了Student和Clazz之间的关联属性并从Student(many)的一方查看了Clazz的信息同时我们使用了懒加载技术和立即执行的方式来实现了对象的关联查询那么在本章中我们继续来研究“多对一一对多懒加载”的问题。在本章中我们从Clazz(one端)来发送查询请求查询一下班级中Student学生信息。首先呢我们把上一届中的两个映射文件的内容更改一下让它启用一下懒加载即把lazy设置为true或着是去掉(默认情况下NHibernate是开启懒加载的)。然后我们来查询一下班级为1的班级名称和这个班级中所有学生的信息。现在我们添加一个D_Clazz类内容如下public classD_Clazz{public Model.Clazz GetClazz(intid){ISession sessionNHibernateHelper.OpenSession();return session.Get(id);}}更改一下主程序的代码注意这里需要在主程序中添加Iesi.Collection.dll的引用。static void Main(string[] args){DAL.D_Clazz dal newDAL.D_Clazz();Model.Clazz clazzdal.GetClazz(1);Console.WriteLine();Console.WriteLine(班级名称: clazz.CName);Console.WriteLine();foreach (Model.Student student inclazz.Students){Console.WriteLine(学生:student.SName);Console.WriteLine();}}好现在我们来运行一下看看运行的结果如何。我们已经成功的使用懒加载来查询出Clazz关联的属性。从上面的结果来看NHibernate发出了两条SQL语句。当让这个懒加载之所以能够成功的查询是因为我们没有释放ISession的资源。那么现在我们不适用懒加载来查询一下看看有什么区别没有我们更改一下D_Clazz的代码public Model.Clazz GetClazz(intid){//ISession session NHibernateHelper.OpenSession();//return session.Get(id);using (ISession session NHibernateHelper.OpenSession()){return session.Get(id);}}同时我们更改Clazz.hbm.xml把的懒加载去掉也就是lazyfalse。然后运行一下程序看看结果。此时我们发现当使用“立即执行”的时候NHibernate会发出两条SQL语句而这两条SQL语句是同时执行的和上面懒加载相比是不是影响效率了呢?上面懒加载的时候是当我们需要的时候才发出第二条语句而“立即执行”是不管你有没有用我全部给你查询出来。大家可以试想一下这样不就是浪费我们昂贵的内存资源吗如果用得上的话那就不说什么了问题如果我们用不上则不久白白浪费我们的资源了嘛而且在我们传统的思想中我们应该是使用完资源后要立即释放但是要使用NHibernate懒加载的时候却要求不能释放资源这个不就是矛盾嘛。这个该怎么办呢幸运的是NHiberante为我们提供了一个NHibernateUtil的工具类这个工具类中有一个方法非常的游泳就是Initializ方法这个方法是使用一个代理来帮我们初始化未初始化的对象。有个这个方法我们就可以两者兼得了既可以使用懒加载也可以释放ISession资源。首先我们下把hbm.xml中的lazyfalse全部去掉。然后改写一下D_Clazz的代码:public Model.Clazz GetClazz(intid){//ISession session NHibernateHelper.OpenSession();//return session.Get(id);using (ISession session NHibernateHelper.OpenSession()){Model.Clazz clazz session.Get(id);NHibernateUtil.Initialize(clazz.Students);returnclazz;}}我们在得到Clazz对象的时候并没有急着返回而是使用了NHibernateUtil.Initialize方法来初始化Students这个集合。然后在返回clazz对象此时的clazz对象中就有了Students这个集合对象了。下面是运行的结果图发现和使用lazyfalse的效果是一样的。其实NHiberante在懒加载的问题上真是个头疼的问题就好比鱼和熊掌不能兼得要么使用懒加载但是不能及时的释放对象要么就是使用“立即执行”占用大量的资源。在NHibernate中其实提到一个这种的办法就是使用Open Session In View的概念只不过这概念只能在Web应用程序中才能用如果是Winform的话不好意思老魏还这没找到一个合适的方法。不过老魏相信后续的NHibernate可能会解决这个问题的。所以在使用NHibernate的时候什么时候使用懒加载什么时候不使用是个非常重要的问题。
http://www.zqtcl.cn/news/105290/

相关文章:

  • 手机进入网站自动识别城阳区规划建设局网站
  • 网站开发平台的公司订票网站开发公司
  • 郑州网站推广信息网架结构厂家
  • 提升网站流量的方法汕头站扩建
  • 响应式网站建设制作需要注意什么网站建设汇卓
  • 馨雨公司网站建设策划方案一个网站能放多少关键词
  • 福州 网站开发洛阳做网站找哪家好
  • 网站建设创业书海外短视频平台
  • 网站建设的职称做h5长图网站
  • 石家庄正规制作网站公司网页版微信会在电脑上留下记录吗
  • 互联网网站界面设计 要素没有网怎么安装wordpress
  • asp 英文企业网站 免费WordPress发图册
  • 东莞搜索seo优化排名天津seo托管
  • 做网站一年大概的盈利淘宝式网站建设
  • 深圳网站优化最好的方法wordpress文章如何添加标签
  • 炫酷文字制作网站房屋和建设工程信息平台
  • 邢台企业网站制作公司wordpress 博客 安装教程
  • 西宁网站制作公司排名网站开发开题报告范文2019
  • 公司做竞拍网站的收入怎么报税网易门户网站建设
  • 网站建设投资建设一个网站成本多少
  • 如何优化网站内部链接wordpress后台无法预览文章
  • 小白一步步做网站开题报告旅游网站建设
  • 鞋帽箱包网站建设怎么给网站做外链邵连虎
  • linux网站建设模板上海发布公众号官网
  • 信息科技有限公司网站建设网站运营主要做什么
  • 广州建筑公司网站网站上的动态图怎么做
  • win10系统可以做网站搭建网站和微信同步建设
  • 在哪里能找到做网站的人医疗网站建设意见
  • 网站制作及实现wordpress在线工具
  • 网站制作中企动力优响应式网站建设有利于seo