
Castle 开发系列
文章平均质量分 79
fjp813
这个作者很懒,什么都没留下…
展开
-
NHibernate文档翻译 第5章 集合类(Collections)映射
第5章 集合类(Collections)映射 目录持久化集合类(Persistent Collections) 映射集合(Mapping a Collection) 值集合和多对多关联(Collections of Values and Many-To-Many Associations) 一对多关联(One-To-Many Associations) 延迟初始化(原创 2007-09-21 15:27:00 · 441 阅读 · 0 评论 -
Castle ActiveRecord学习实践(8):数据有效性的验证
摘要:在我们录入数据时,对数据有效性的验证是必不可少的, ActiveRecord中如何去验证数据的有效性呢?本文将详细介绍这一内容。 主要内容1.概述2.使用Validation3.如何扩展4.深入分析验证一.概述在录入数据时,对数据有效性的验证是必不可少的,很多时候我们在UI层上就会做一层验证,但有时也需要在底层做一些必要的处理,这就要用到ActiveRec原创 2007-09-21 16:19:00 · 438 阅读 · 0 评论 -
NHibernate文档翻译 第1章 体系结构
第1章 体系结构总览 对NHibernate体系结构的非常高层的概览: 这幅图展示了NHibernate使用数据库和配置文件数据来为应用程序提供持久化服务(和持久化的对象)。 我们试图显示更多NHibernate运行时体系结构的细节。 但挺不幸的,NHibernate是比较灵活的并且提供了好几种不同的运行方式。我们展示一下两种极端情况。轻型体系中,应用转载 2007-09-21 15:18:00 · 353 阅读 · 0 评论 -
NHibernate文档翻译 第4章 O/R Mapping基础
第 4 章 O/R Mapping基础 目录映射声明(Mapping declaration) Schema hibernate-mapping class id 联合ID(composite-id) 识别器(discriminator) 版本(version)(可选) 时间戳(timestamp )(可选) property 多对一(many-to-one) 一对原创 2007-09-21 15:25:00 · 509 阅读 · 0 评论 -
NHibernate文档翻译 第6章 关联映射
第6章 关联映射 目录 简介 单向关联 多对一(many to one) 一对一(one to one) 一对多(one to many)使用表连接的单向关联 一对多(one to many) 多对一(many to one) 一对一(one to one) 多对多(many to many)双向关联 一对多(one to many) / 多对一(many to o原创 2007-09-21 15:27:00 · 329 阅读 · 0 评论 -
NHibernate的数据库连接机制分析和如何使用外部连接
NHibernate的数据库连接机制分析和如何使用外部连接 1.普通数据库连接的分析在一般情况下我们会让NHibernate应用我们让NHibernate自己管理数据库连接。我们来看看配置文件中和连接有关的配置信息。property name="connection.provider">NHibernate.Connection.DriverConnectionProviderpr转载 2007-09-21 15:42:00 · 522 阅读 · 0 评论 -
NHibernate的调试技巧和Log4Net配置
NHibernate的调试技巧和Log4Net配置 对新手而言NHibernate的调试事件很痛苦的事情,不知道NHibernate做了些什么,错误出现在什么地方。我给出一些常用的调试办法希望对你有所帮助。 1.查看NHibernate写在控制台里的Sql语句在配置文件中有这么个选项,如果把它设置为true,NHibernate会把执行的Sql显示在控制台上。propert原创 2007-09-21 15:44:00 · 1806 阅读 · 1 评论 -
Castle ActiveRecord学习实践(2):构建配置信息
摘要:ActiveRecord在底层封装了NHibernate,在框架启动时需要指定相关的配置信息,那么我们需要配置些什么?又该如何去配置呢?本文将会介绍在ActiveRecord中构建配置信息。主要内容1.需要配置什么2.如何去配置3.常见的配置示例 一.需要配置什么在第一篇大家都已经看到了,其实我们的配置信息跟用NHibernate时的配置是一样的,这是因为Ac转载 2007-09-21 16:09:00 · 384 阅读 · 0 评论 -
Castle ActiveRecord学习实践(6):延迟加载和使用Where子句
摘要:在ActiveRecord中把数据库表之间的关联关系采用对象间的聚合关系来表现,然而这却带来一系列的性能上的问题。就像我在One-Many中用到的例子Blog,使用Blog.Find(1)查找了一个Blog对象,也许我们只用到它,但事实它却把该Blog所关联的Post对象也读取出来放在了内存中,于是我们就需要有一种方法来实现只在需要Post对象的时候框架再自动读取。另外ActiveRec原创 2007-09-21 16:16:00 · 461 阅读 · 0 评论 -
Castle Active Record for .NET2.0快速入门示例
一.创建Web工程创建一个Web站点或者Web应用程序,添加对Castle.ActiveRecord.dll的引用。二.创建需要持久化的业务实体在.NET2.0下,由于引入了泛型,创建业务实体比1.1下简单了许多,业务实体只需要继承于泛型的ActiveRecordBase类,其中默认已经实现了一些静态的方法,不需要我们再在业务实体中实现。[ActiveRecord("Emp原创 2007-09-21 16:25:00 · 726 阅读 · 1 评论 -
[ActiveRecord] 之一:初始化和配置
有关Castle.ActiveRecord的介绍文章已经有不少了,本文不做详述。配置文件个人认为使用一个独立的配置文件可能更好点,App.config / Web.config 已经被塞入很多的内容了。ActiveRecord.xml 初始化代码// 获取数据库连接配置XmlConfigurationSource source = new XmlC原创 2007-10-17 14:58:00 · 746 阅读 · 0 评论 -
[ActiveRecord] 之二:常用方法
看下面的例子[ActiveRecord("Users")]public class User : ActiveRecordBase{ public User() {} public User(string name) : this() { this.name = name; } private int id; [PrimaryKey(PrimaryKeyType.Identi原创 2007-10-17 15:00:00 · 718 阅读 · 0 评论 -
[ActiveRecord] 之三:SessionScope
看了网上很多有关ActiveRecord的文章,对于SessionScope只是在延迟加载中提及,但是SessionScope实际上是ActiveRecord一个非常重要的特点。善于使用它可以提高应用性能。看看Castle官方网站是怎么说的。Session scope allows you to reuse the NHibernate session, thus not flushing it原创 2007-10-17 15:02:00 · 1018 阅读 · 0 评论 -
[ActiveRecord] 之四:Cascade
在ActiveRecord中级联操作为我们带来很多方便,但是一些细节地方需要注意。[ActiveRecord("Users")]public class User : ActiveRecordBase{ public User() { } public User(string name) : this() { this.name = name; } private int原创 2007-10-17 15:05:00 · 523 阅读 · 0 评论 -
[ActiveRecord] 之五:ActiveRecordMediator
有意无意的,很多文章都没有提及 ActiveRecordMediator 。ActiveRecordMediator最大的用途是:即便你的实体类不是继承自 ActiveRecordBase (不推荐这么做),它也可以进行同等的创建、查找等操作;另外这个类实现了很多常用的方法,我们直接使用它就没必要为每个实体类写一堆相同的操作方法了(ActiveRecordBase的静态方法干吗声明为 protec原创 2007-10-17 15:07:00 · 642 阅读 · 0 评论 -
[ActiveRecord] 之六:继承
ActiveRecord 支持继承体系,我们看看几种不同的实现方式。1. 无关联继承public class Person{ private int id; [PrimaryKey(PrimaryKeyType.Identity)] public int Id { get { return id; } set { id = value; } } private stri原创 2007-10-17 15:09:00 · 585 阅读 · 0 评论 -
Castle ActiveRecord学习实践(5):实现Many–Many关系的映射
摘要:多对多的关系在日常开发中也会经常遇到,在ActiveRecord中我们用HasAndBelongsToMany特性来实现Many-Many的关联,本文将通过一个具体的实例来介绍这一用法。 主要内容1.准备数据库表2.编写实体类3.编写测试代码 一.准备数据库表接着在上篇文章中的例子,为了实现多对多的关系,我们引入Community,即每个Blog可以属于多原创 2007-09-21 16:15:00 · 445 阅读 · 0 评论 -
Castle ActiveRecord学习实践(3):映射基础
摘要:本文详细介绍了ActiveRecord中的基本映射,对于关联映射会在后续文章中通过一些具体的实例来说明。主要内容简单映射1.ActiveRecordAttribute2. PrimaryKeyAttribute3.CompositeKeyAttribute4.PropertyAttribute5.FieldAttribute 一.ActiveRecor原创 2007-09-21 16:11:00 · 460 阅读 · 0 评论 -
NHibernate的关联映射(one-to-one,one-to-many,many-to-many)以及cascade分析
NHibernate的关联映射(one-to-one,one-to-many,many-to-many)以及cascade分析 一、典型设置cascade:(默认为none)级联。指明哪些操作会从对象级联到关联的对象。inverse: (默认为false) 标记这个集合作为双向关联关系中的方向一端。在双向关联时才需要设置。在设为false的一端对cascade进行维护。处于性能的考虑,原创 2007-09-21 15:49:00 · 436 阅读 · 0 评论 -
Castle ActiveRecord学习实践(4):实现One-Many关系的映射
摘要:前面几篇文章简单的介绍了ActiveRecord中的基本映射以及构建配置信息,本文我们用ActiveRecord里面的Blog,Post例子来实现One-Many/Many-One关联。主要内容1.准备数据表结构2.编写实体类并介绍HasMany和BlongsTo特性3.构建配置信息4.编写测试代码 一.准备数据表结构在这个例子中,我们引入了两个对象Blo原创 2007-09-21 16:13:00 · 446 阅读 · 0 评论 -
Castle ActiveRecord学习实践(7):使用HQL查询
摘要:虽然ActiveRecord为我们提供了Find()和FindAll()这样两个静态的查询方法,并且有Where特性可供使用,但是仍然不能解决实际开发中一些复杂的查询,这时我们就需要通过HQL查询来实现。 主要内容1.HQL概述2.SimpleQuery查询3.ScalarQuery查询4.自定义查询5.使用CallBack 一.HQL简单介绍HQ原创 2007-09-21 16:17:00 · 519 阅读 · 0 评论 -
NHibernate文档翻译 第2章 ISessionFactory配置
第2章 ISessionFactory配置目录 可编程配置方式 获取ISessionFactory 用户自行提供ADO.NET连接 NHibernate提供ADO.NET连接 可选配置属性 SQL 方言 (SQL Dialects) 外连接抓取(Outer Join Fetching ) 自定义 CacheProvider 查询语言替换Logging原创 2007-09-21 15:22:00 · 376 阅读 · 0 评论 -
NHibernate文档翻译 第9章 使用AttributesNHibernate.Mapping.Attributes
第9章 使用AttributesNHibernate.Mapping.Attributes 目录 如何使用? 提示 已知的问题和TODOs 开发者须知什么是 NHibernate.Mapping.Attributes? NHibernate.Mapping.Attributes 是 NHibernate 的附加软件,它是Pierre Henri Kuat原创 2007-09-21 15:31:00 · 458 阅读 · 0 评论 -
NHibernate文档翻译 第10章 NHibernate.Tool.hbm2net
第10章 NHibernate.Tool.hbm2net 什么是 NHibernate.Tool.hbm2net?NHibernate.Tool.hbm2net 是 NHibernate 的附加软件.它使得从hbm.xml映射文件产生源代码成为可能。在 NHibernate.Tasks目录,有一个叫做Hbm2NetTask的工具,你可以用它自动编译程序(使用NA原创 2007-09-21 15:32:00 · 336 阅读 · 0 评论 -
用我的MyGeneration模板生成NHibernate映射文件和关系(one-to-one,one-to-many,many-to-many)
用我的MyGeneration模板生成NHibernate映射文件和关系(one-to-one,one-to-many,many-to-many) MyGeneration的几个NHibernate模板功能已经很强,但还是存在些问题。例如:Guid主键支持不佳,代码不易修改,不支持中文注释等等。所以我决定自己来改写此模版。我把一部分通用的函数提取到自己定义的基类中,这样调试和修改都方便另外增加转载 2007-09-21 16:04:00 · 515 阅读 · 0 评论 -
Castle ActiveRecord学习实践(10):深度分析Schema Pitfals
摘要:写这篇文章缘于昨天跟Linkin的一段聊天。我在使用ActiveRecord的一些技巧一文中的由实体类生成数据库表提到了这样一句话:生成数据库表时只有当该表不存在时ActiveRecord才会生成,否则表如果存在ActiveRecord不会做任何事情,也不会报任何错误。Linkin说他在实验时如果数据库表存在,ActiveRecord会删除表中的记录,其实这句话是在有些情况下是不对的,本原创 2007-09-21 16:21:00 · 446 阅读 · 0 评论 -
NHibernate文档翻译 第3章 持久化类(Persistent Classes)
第 3 章 持久化类(Persistent Classes) 目录POCO 简单示例 为持久化字段声明访问器(getters 和 setters) 实现一个默认的构造方法(constructor) 提供一个标识属性(identifier property)(可选) 建议使用不是sealed的类 (可选)实现继承(Inheritance) 实现Equals()和Get原创 2007-09-21 15:24:00 · 333 阅读 · 0 评论 -
NHibernate文档翻译 第7章 示例: Parent/Child
第7章 示例: Parent/Child 目录关于collections 双向的一对多关系(Bidirectional one-to-many) 级联生命周期(Cascading lifecycle) 级联更新(Using cascading update()) 结论刚刚接触NHibernate的人大多是从父子关系(parent / child type rel原创 2007-09-21 15:29:00 · 362 阅读 · 0 评论 -
NHibernate文档翻译 第8章 NHibernate缓存(NHibernate.Caches)
第8章 NHibernate缓存(NHibernate.Caches) 目录如何使用?什么是 NHibernate.Caches?NHibernate.Caches 是 NHibernate 的附加软件,它是Kevin Williams (aka k-dub)贡献的.缓存是一个保存实体的地点(在首次加载时);一旦进入缓存,能够取得它们,而无需(再次)查询原创 2007-09-21 15:30:00 · 394 阅读 · 0 评论 -
NHibernate文档翻译 第11章 Nullables
第11章 Nullables 目录如何使用?什么是 Nullables?Nullables 是 NHibernate 的附加软件,它是Donald L Mull Jr. (aka luggage)贡献的.大部分数据库系统允许基本类型(象int或bool)为null。这意味着一个boolean列可能有0,1或者是null值,null和0有不同的含义。但是在原创 2007-09-21 15:33:00 · 309 阅读 · 0 评论 -
NHibernate的灵活配置
注:本文中使用的是NH1.0.2.0版本,其他版本配置可能略有不同。示例代码下载(没看明白的看看这个或许可以明白些)数据库脚本下载NHibernate的灵活配置1.Visual Studio中文件的生成操作在开始讨论这个话题前,我们想来看看Visual Studio中文件的生成操作。无(None) - 不在项目输出组中包含该文件,并且在生成进程中不会对其进行编译。例如包含文档的文本文件原创 2007-09-21 15:36:00 · 854 阅读 · 0 评论 -
NHibernate的Session管理
代码下载看过hibernate文档的人应该看到在“第 1 章 在Tomcat中快速上手”,可以看到代码中使用ThreadLocal作为Session的存放容器。 public static final ThreadLocal session = new ThreadLocal();查看JDK的文档,这个东东作用是给每个线程提供单独的静态变量,在一个线程内部共享,而不同的线程间不共享。在hi原创 2007-09-21 15:40:00 · 354 阅读 · 0 评论 -
Castle ActiveRecord学习实践(1):快速入门指南
摘要:最近几天有时间看了一下Castle,原来它的功能是如此的强大,从数据访问框架到IOC容器,再到WEB框架,基本包括了整个开发过程中的所有东西,看来得好好学习研究一下了,并且打算把自己学习过程的一些东西记录下来。先从ActiveRecord开始吧,ActiveRecord提供的简洁的O/R映射给我留下了很深的印象,本文将通过一个简单对象的CRUD操作来带你快速走进Castle Active原创 2007-09-21 16:08:00 · 410 阅读 · 0 评论 -
Castle.Windsor 类型和对象构造参数注入
Castle.Windsor 是一种非常方便的 IOC Framework,有关细节请参考官方文档。本文仅介绍如何向构造方法注入类型和对象参数。在下面的例子中,我们需要注入 InjectionClass 这个类型,为了方便我将它和其他类型写到一起。在注入 InjectionClass 的同时需要为这个类型提供另一个所依赖的类型 Data,Data 实现了 IData 接口。如果你为了更好地理解,可原创 2007-10-17 15:10:00 · 1208 阅读 · 1 评论