C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 50 下一页

2013年9月28日

摘要: 可变属性的需求:我们需要在数据库里面存储很多电器,比如电视,冰箱等等。通常,在程序中,我们的类图为:EVA设计 对于这种继承下来的可变属性时,有一种办法是创建另外一张表,将属性当成行来存储。 其中存储的数据类似下面这样: 这样的设计称为:实体-属-值,简称:EVA,或者又叫开放架构、无模式。 这种设计有如下3种好处: 1、这两张表的列都很少。 2、新增的属性不会对现有的表结构造成影响,不需要新增列。 3、避免由于空值而造成的表内容混乱。 但是这样也有如下缺点: 1、查询属性 本来,我们想要按出厂日期查询,只需要: SELECT ElectricId,DateO... 阅读全文
posted @ 2013-09-28 18:39 逆心 阅读(4519) 评论(1) 推荐(2) 编辑

2013年9月25日

摘要: 首先,当然是安装MemCache服务器端了。 然后配置过程,仅仅两个问题。 1、NHibernate要与NHibernate.Cache的版本要一致。否则,NHibernate.Caches.MemCache.MemCacheProvider无法实例化。 2、要引用log4net,否则Memcached.ClientLibrary.SockIOPool无法实例化。 App.config: NHibernate.Dialect.MsSql2008Dialect NHibernate.Connection.... 阅读全文
posted @ 2013-09-25 00:24 逆心 阅读(1602) 评论(6) 推荐(1) 编辑

2013年9月23日

摘要: 一、常用属性 CommandText 获取或设置要对数据源执行的 Transact-SQL 语句、表名或存储过程。 CommandTimeout 获取或设置在终止执行命令的尝试并生成错误之前的等待时间。 CommandType 获取或设置一个值,该值指示释 CommandText 是SQL语句,存储过程还是表操作。 Connection 获取或设置 SqlCommand 的此实例使用的 SqlConnection。 Parameters 获取 SqlParameterCollection。 Transaction 获取或设置将在其中执行 SqlC... 阅读全文
posted @ 2013-09-23 11:56 逆心 阅读(9429) 评论(1) 推荐(4) 编辑

摘要: 一、常用属性 ConnectionString 获取或设置用于打开 SQL Server 数据库的字符串。 (重写 DbConnection.ConnectionString。) ConnectionTimeout 获取在尝试建立连接时终止尝试并生成错误之前所等待的时间。 Database 获取当前数据库或连接打开后要使用的数据库的名称。 DataSource 获取要连接的 SQL Server 实例的名称。 PacketSize 用来与 SQL Server 的实例进行通信的网络数据包的大小,以字节为单位。 ServerV... 阅读全文
posted @ 2013-09-23 11:33 逆心 阅读(14351) 评论(1) 推荐(5) 编辑

2013年9月22日

摘要: 在NHibernate的映射中,关于继承的映射策略有3种方式单表继承类表继承具体表继承 另外还有一种比较特别的多态映射隐式多态 下面分别来阐述NHibernate继承映射的各种策略要点。一、单表继承 单表继承的方式是,所有的字段都放在一个表中,用一个字段来区分子类。使用配置节点配置子类。 看DEMO,首先新建一张Animal表如下: 映射文件:Animal.hbm.xml: //discriminator-value用来标记表中哪些行是青蛙 映射文件:Fish.hbm.xml ... 阅读全文
posted @ 2013-09-22 21:55 逆心 阅读(2758) 评论(0) 推荐(2) 编辑

摘要: NHibernate过滤器相当于定义一个非常类似于类和集合上使用的where子句。ISession 中默认是不启用过滤器的,必须通过ISession.EnableFilter()方法显式的启用。 该方法返回被启用的IFilter的实例。这也支持链式操作。 过滤器主要的配置都在映射文件内完成。来看示例: 操作: static void Main(string[] args) { ISessionFactory _sessionFactory =... 阅读全文
posted @ 2013-09-22 09:41 逆心 阅读(1312) 评论(0) 推荐(0) 编辑

2013年9月21日

摘要: NHibernate也是能够操作存储过程的,不过第一次配置可能会碰到很多错误。一、删除 首先,我们新建一个存储过程如下: CREATE PROC DeletePerson @Id int AS DELETE FROM Person WHERE PersonId = @Id; 修改映射文件,添加删除对象的存储过程: DeletePerson ? 执行存代码: using (ISession session = sessionFactory.Op... 阅读全文
posted @ 2013-09-21 00:28 逆心 阅读(2418) 评论(0) 推荐(2) 编辑

2013年9月20日

摘要: 在NHibernate中,可以把视图当表一样操作,只需要记住一点就是,视图是只读的,因此映射实体的setter应该改为protected。 新建一个视图如下: 持久化类: public class CountryPersonModel { public virtual int PersonId { get; protected set; } public virtual string PersonName { get; protected set; } public virtual string CountryName { ge... 阅读全文
posted @ 2013-09-20 23:56 逆心 阅读(1900) 评论(0) 推荐(0) 编辑

2013年9月16日

摘要: 在上一篇的Linq to NHibernate的介绍当中,全部是namespace NHibernate命名空间中的IQueryOver<TRoot, TSubType>接口提供的。IQueryOver<TRoot, TSubType>这个借口实际上会被翻译成条件查询(Criteria Querie 阅读全文
posted @ 2013-09-16 23:24 逆心 阅读(2576) 评论(0) 推荐(0) 编辑

2013年9月14日

摘要: 数据操作,在这里主要介绍INSERT、UPDATE、DELETE。我们在使用NHibernate的时候,如果只是查询数据,不需要改变数据库的值,那么是不需要提交或者回滚到数据库的。一、INSERT 通过调用ISession.Save()方法,然后同步同步到数据库。 Program.cs ... 阅读全文
posted @ 2013-09-14 21:56 逆心 阅读(5212) 评论(0) 推荐(1) 编辑

上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 50 下一页