随笔分类 -  框架学习----NHibernate

摘要:ICriteria iCriteria = _SessionFactory.GetCurrentSession().CreateCriteria(typeof(Cardtype)); if (cardtype.Cardtypeid != null) { iCriteria.Add(Restrictions.Like("Cardtypename", "12%")); } if (cardtype.Cardtypeid != null) { iCriteria.Add(Restrictions.Like("Cardtypename", & 阅读全文
posted @ 2012-02-18 14:16 awp110 阅读(623) 评论(0) 推荐(0)
摘要:set, bag, list, map的语义集合最重要的一点是集合的语义。Java JPA中对Set, List, Collection, Map四种集合进行了定义(Java的Collection允许bag语义),NHibernate从Hibernate移植时照搬了这些概念。但是.Net社区中这些概念比较弱,很多人对set, bag, map的说法很陌生,这也对NHibernate集合映射的使用造成一定障碍。set集合中的对象是唯一的,无序的,不能通过索引、key值访问,只能使用enumerator列举集合对象。.Net没有原生的set类,所以NHibernate使用Iesi.Collecti 阅读全文
posted @ 2012-02-17 08:30 awp110 阅读(295) 评论(0) 推荐(0)
摘要:在上一篇文章中,我们详细讲述了C# 3.0中Lambda表达式(构造委托)的使用方式,它在语义上的优势及对编程的简化——这些内容已经属于委托的“扩展内容”。不如这次谈得更远一些,就来讨论一下上文中“编程方式”的性能相关话题。循环分离及其性能在上文的第一个示例中,我们演示了如何使用Lambda表达式配合.NET 3.5中定义的扩展方法来方便地处理集合中的元素(筛选,转化等等)。不过有朋友可能会提出,那个“普通写法”并非是性能最高的实现方法。方便起见,也为了突出“性能”方面的问题,我们把原来的要求简化一下:将序列中的偶数平方输出为一个列表。按照那种“普通写法”可能就是:static List< 阅读全文
posted @ 2012-02-14 10:03 awp110 阅读(206) 评论(0) 推荐(0)
摘要:在上一篇文章中我们简单探讨了.NET 1.x和.NET 2.0中委托表现形式的变化,以及.NET 2.0中匿名方法的优势、目的及注意事项。那么现在我们来谈一下.NET 3.5(C# 3.0)中,委托的表现形式又演变成了什么样子,还有什么特点和作用。.NET 3.5中委托的写法(Lambda表达式)Lambda表达式在C#中的写法是“arg-list => expr-body”,“=>”符号左边为表达式的参数列表,右边则是表达式体(body)。参数列表可以包含0到多个参数,参数之间使用逗号分割。例如,以下便是一个使用Lambda表达式定义了委托的示例1:Func<int, in 阅读全文
posted @ 2012-02-14 10:03 awp110 阅读(272) 评论(0) 推荐(1)
摘要:http://www.cnblogs.com/inday/category/203168.html http://fluentnhibernate.org/ 阅读全文
posted @ 2012-02-14 09:50 awp110 阅读(203) 评论(0) 推荐(0)
摘要:12月份项目比较忙,周末都给占了。今天终于算是比较清闲了。之前因为在DevText项目中使用Fluen NHibernate,顺便就学习了下。今天就结合官方网站的介绍来给大家分享下为什么我们要用Fluent NHibernate。1.Fluent NHibernate是什么?Fluent NHibernate提供了一个方法让你不再需要去写NHibernate的标准映射文件(.hbm.xml),而是可以把你的映射文件都使用C#来写。这样做,方便了我们的代码重构,提供了代码的易读性,并精简了项目代码。它还包含了如下几个工具:Fluent NHibernate是NHibernate核心代码的扩展,完 阅读全文
posted @ 2012-02-14 09:22 awp110 阅读(309) 评论(0) 推荐(1)
摘要:本节内容引入NHibernate中的集合类型建立父子关系父子关联映射结语引入通过前几篇文章的介绍,基本上了解了NHibernate,但是在NHibernate中映射关系是NHibernate中的亮点,也是最难掌握的技术。从这篇开始学习这些东西,我将图文结合来说明这里奥秘的知识。前几篇,我们的例子只使用了一个简单的Customer对象。但是在客户/订单/产品的经典组合中,他们的关系非常复杂?让我们先回顾在第二篇中建立的数据模型。在图上,我已经清晰的标注了表之间的关系,首先分析Customer和Order之间的“外键关系”或者称作“父子关系”、“一对多关系”。在分析之前先初步了解NHibernat 阅读全文
posted @ 2012-02-14 08:53 awp110 阅读(261) 评论(0) 推荐(0)
摘要:解决问题:解决UI上使用NHibernate通用查询方法(仅适用于多个条件联合查询)第一步:在UI层建立构造条件方法: private IList<ICriterion> GetCondition(string customerName = "", string address = "") { Employee employee = new Employee(); List<ICriterion> queryConditions = new List<ICriterion>(); if (!string.IsNullO 阅读全文
posted @ 2011-12-29 09:11 awp110 阅读(272) 评论(0) 推荐(0)
摘要:方法一:Session.Delete()这个方法是最常用的,一共有4个重载的方法void Delete(object obj);int Delete(string query)int Delete(string query, object value, IType type);int Delete(string query, object[] values, IType[] types);这几个重载方法中,第一个方法是基于现有对象的删除操作,其余是使用query语句查询获得对象,再逐个删除的,如果使用批量删除时,效果不太理想int Delete(string query, object[] v 阅读全文
posted @ 2011-12-15 14:45 awp110 阅读(860) 评论(0) 推荐(0)
摘要:NHibernate的调试技巧和Log4Net配置 对新手而言NHibernate的调试事件很痛苦的事情,不知道NHibernate做了些什么,错误出现在什么地方。我给出一些常用的调试办法希望对你有所帮助。1.查看NHibernate写在控制台里的Sql语句在配置文件中有这么个选项,如果把它设置为true,NHibernate会把执行的Sql显示在控制台上。<propertyname="show_sql">true</property>对于控制台应用程序我们可以设置断点后很轻松的看到NHibernate执行了什么Sql。下图是从数据库中读取一条数据。 阅读全文
posted @ 2011-12-15 14:36 awp110 阅读(253) 评论(0) 推荐(0)
摘要:如果你正在阅读此文,我们假设你刚刚下载了NHibernate的,并希望开始使用它。本教程将讨论如下几个步骤: 安装NHibernate 定义一个简单的业务对象类。 创建一个NHibernate的映射加载和保存业务对象。 配置NHibernate与本地数据库进行连接。 自动生成一个数据库。 使用Repository模式编写简单的CRUD代码。 使用单元测试,以确保代码工作正常。这是我们期待的最终结果: 但首要的事情是: 让我们从您刚刚下载的ZIP文件开始。 安装NHibernate的如果您已经下载了NHibernate的二进制压缩文件,你需要做的就是将该文件解压缩到合适的地方。我通常创建一个.. 阅读全文
posted @ 2011-11-14 08:58 awp110 阅读(404) 评论(0) 推荐(0)
摘要:NHibernate是使用ISession对象实现对数据库的增、删、改、查工作的。一、对数据库的查询:NHibernate对数据库的查询可以使用四种方式来实现: 使用ISession对象的方法来实现查询 使用HQL语句来实现查询 使用Criteria实现查询 使用原始SQL语句来实现查询1、使用ISession对象的Get()方法来根据主键查询对象 语法:T ISession.Get<T>(object Id) 通常使用这种方法来根据主键Id值来查询对象的,并返回查询到的实体对象。2、使用HQL语句来实现查询。 为了实现对对象的灵活操作,NHibernate也引入了Hibernat 阅读全文
posted @ 2011-05-08 13:25 awp110 阅读(275) 评论(0) 推荐(0)
摘要:NHibernate是从Hibernate迁移到DotNet来的优秀的ORM框架,它把数据库中的表的关系模型转换为程序中的对象之间的关联模型,从而使程序模型更接近于现实中的逻辑。作为DotNet本身在VS2008 SP1中新增了ADO.NET Entity Framework,但EF非常庞大,远超过ORM的概念范畴,使初学者难以把握。而在VS2005中却没有这种ORM框架,在此我们先以NHibernate为工具研究ORM思想,并研究它如何在VS2005中应用。ORM就是“对象-映射-关系”的简称,它主要包含三部分: 关系:关系型数据库。 对象:实体对象类 映射:XML文件,指定实体类与表的对应 阅读全文
posted @ 2011-05-08 13:24 awp110 阅读(313) 评论(0) 推荐(0)
摘要:http://home.cnblogs.com/group/topic/6006.htmlNHibernate是把Java的Hibernate核心部分移植到Microsoft .NET Framework。它是一个对象关系映射(OR/M)工具,其目标是把.NET对象持久化到关系数据库。由于ALT.NET和像微软实体框架这样的竞争技术,NHibernate最近越来越流行,并得到更广泛的使用。Steve Bohlen为我们分享了“NHibernate之夏的系列录像教程”,这是目前唯一的比较全面的NHibernate视频教程。这个教程包括完整的使用和实施NHibernate的方法。是为菜鸟而设计的, 阅读全文
posted @ 2011-05-08 00:13 awp110 阅读(536) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/lyj/archive/2008/10/30/1323099.html 1.注意Nhibernate的版本号 NHibernate2.1版本改变了ByteCode延迟加载机制,有三种3种IoC框架动态代理方式,分别为:Castle框架、LinFu框架、S 阅读全文
posted @ 2009-08-14 10:31 awp110 阅读(370) 评论(0) 推荐(0)
摘要:今天开发的时候又遇到一个极其奇怪的问题,本人使用asp.net 2.0+NHibernate开发一个Publish系统,在使用NHibernate做持久层访问数据库的时候收到Exception:element was not found in the configuration file.但是很奇怪,我都是使用的跟标准一样的配置方法啊,并且是用codesmith生成的配置文件和Persistent... 阅读全文
posted @ 2009-08-04 11:51 awp110 阅读(231) 评论(0) 推荐(0)
摘要:配置NHibernate有三种常见的配置方法。1:在web.config,App.config里面配置[代码]则需要这样实例化Configuration对象。NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();这种配置方法将会到应用程序配置文件(App.Config,Web.Config)中查找NHiberna... 阅读全文
posted @ 2009-08-04 11:51 awp110 阅读(351) 评论(0) 推荐(0)
摘要:本文并不是去详细的介绍如何使用NHibernate,而是通过一个简单的例子来演示基于NHibernate的三层结构应用程序开发过程。关于NHibernate的有关文档,DDL已经做了汉化,但是由于英文文档自身就不完善,所以汉化后也是不全。菩提树在一篇《NHibernate学习之路》随笔中谈到了学习NHibernate遇到的困难,也希望大家把自己在使用NHibernate中的经验和心得能够共享出来,... 阅读全文
posted @ 2009-08-04 11:49 awp110 阅读(254) 评论(0) 推荐(0)
摘要:2) 含有关系的表的情况 含有关系的表指的是像学生这样,除了保存学生的基本信息,还希望把选课信息保存到学生的类中。这样情况下不能用软件来辅助产生对应的类和XML,这是NHibernate中唯一需要费脑筋学的地方。学生表对应的类和XML如下所示: 类文件(Student.cs) using System; using Iesi.Collections; namespace CodeTest{ pu... 阅读全文
posted @ 2009-08-04 11:47 awp110 阅读(151) 评论(0) 推荐(0)
摘要:4. 使用NHibernate的API进行编程 数据库编程不外乎“添加”、“删除”、“更新”,看看NHibernate是如何实现这三种操作吧。 (1) 在类中声明NHibernate的Factory private static Configuration mCfg=new Configuration();private st... 阅读全文
posted @ 2009-08-04 11:47 awp110 阅读(263) 评论(0) 推荐(0)