解决实体载入的性能问题 - Lazy Load,延迟载入
摘要: 因为AR把数据库中的外键关系全部采用对象间的聚合关系表现了出来,例如:实体Blog对象中会包含一个IList Posts的属性,以表示他们之间的关系。这样,只要通过 Blog blog = Blog.fine(id); 得到一个Blog实体,内存中就会同样生成与其相关的Post对象。但是,在一个大的系统中,这种对象间的关系会非常复杂 (Blog对象可能还会和Community之间存在关系,还可能和...
阅读全文
多对多关系 及 O/R映射小结
摘要: 这是一个权限验证系统的一部分。对象包括:帐户(Account)、角色(Role)和资源(Resource)。它们之间的关系是,多个帐户对应一个角色,一个角色可以拥有多个资源,一个资源也和多个角色存在关系。所以有 Account : Role = n : 1 ,Role : Resource = n : m 。本文只介绍 Castle AR 的多对多关系解决方案,所以忽略 Account,只研究 R...
阅读全文
Castle ActiveRecord学习实践4---转
摘要: 摘要:多对多的关系在日常开发中也会经常遇到,在ActiveRecord中我们用HasAndBelongsToMany特性来实现Many-Many的关联,本文将通过一个具体的实例来介绍这一用法。主要内容1.准备数据库表2.编写实体类3.编写测试代码一.准备数据库表接着在上篇文章中的例子,为了实现多对多的关系,我们引入Community,即每个Blog可以属于多个社区,每个社区也可以有多个Blog。C...
阅读全文
castle One-Many/Many-One关联 --- 转
摘要: 摘要:前面几篇文章简单的介绍了ActiveRecord中的基本映射以及构建配置信息,本文我们用ActiveRecord里面的Blog,Post例子来实现One-Many/Many-One关联。主要内容1.准备数据表结构2.编写实体类并介绍HasMany和BlongsTo特性3.构建配置信息4.编写测试代码一.准备数据表结构在这个例子中,我们引入了两个对象Blog、Post,它们之间的关系是一对多,...
阅读全文
Castle ActiveRecord学习实践2----转
摘要: Castle ActiveRecord学习实践(2):构建配置信息 摘要:ActiveRecord在底层封装了NHibernate,在框架启动时需要指定相关的配置信息,那么我们需要配置些什么?又该如何去配置呢?本文将会介绍在ActiveRecord中构建配置信息。主要内容1.需要配置什么2.如何去配置3.常见的配置示例一.需要配置什么在第一篇大家都已经看到了,其实我们的配置信息跟用NHiberna...
阅读全文
Castle ActiveRecord学习实践 ---转
摘要: 摘要:最近几天有时间看了一下Castle,原来它的功能是如此的强大,从数据访问框架到IOC容器,再到WEB框架,基本包括了整个开发过程中的所有东西,看来得好好学习研究一下了,并且打算把自己学习过程的一些东西记录下来。先从ActiveRecord开始吧,ActiveRecord提供的简洁的O/R映射给我留下了很深的印象,本文将通过一个简单对象的CRUD操作来带你快速走进Castle ActiveRe...
阅读全文
聚簇索引与非聚簇索引的区别以及SQL Server查询优化技术(转)
摘要: 最多只能有一个聚簇索引。不过这个定义太抽象了。在SQL Server中,索引是通过二叉树的数据结构来描述的,我们可以这么理解聚簇索引:索引的叶节点就是数据节点。而非聚簇索引的叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。如下图:非聚簇索引聚簇索引聚簇索引与非聚簇索引的本质区别到底是什么?什么时候用聚簇索引,什么时候用非聚簇索引?这是一个很复杂的问题,很难用三言两语说清楚。我在这里从SQL...
阅读全文
并发操作的一致性问题
摘要: 2.2 SQL Server 2000+ADO.NET实现并发控制2.2.1 并发一致性问题常见并发并发一致性问题包括:丢失的修改、不可重复读、读脏数据、幻影读(幻影读在一些资料中往往与不可重复读归为一类)。2.2.1.1 丢失修改下面我们先来看一个例子,说明并发操作带来的数据的不一致性问题。 考虑飞机订票系统中的一个活动序列: 甲售票点(甲事务)读出某航班的机票余额A,设A=16. 乙售票点(乙...
阅读全文