摘要:本文将会介绍使用
ActiveRecord
中的一些技巧。
主要内容
1
.由实体类生成数据表
2
.运行存在的
SQL
脚本
3
.使用空属类型
4
.使用枚举类型的属性
5
.使用
NHibernate
中的日志记录
一.由实体类生成数据表
在前面所用到的例子中我们都是先有数据表结构,然后才有实体类,然而这会让很多朋友认为
ORM
怎么变成了
ROM
了,其实这只是我们平时的一个开发时的习惯问题,
ActiveRecord
是支持先有实体类,再由实体类生成数据库表。只不过我们可以在开发中根据项目的实际情况在这两种之间选择。看下面的代码,要生成数据库表结构,在实体类中需要多提供一些信息,是否为空,字段长度等。
ActiveRecordStarter.CreateSchema()
方法就可以了。
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d697c7f940cec91d060a69b7d6bfbabe.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78506ac88f008ceb6ff777ee2bfd9158.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a5a207152d50285d2b642f684cd16367.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a5a207152d50285d2b642f684cd16367.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a5a207152d50285d2b642f684cd16367.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f05bd14f49ac5a6f43870a45f107e35f.gif)
要生成数据库表需要调用
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d697c7f940cec91d060a69b7d6bfbabe.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78506ac88f008ceb6ff777ee2bfd9158.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f05bd14f49ac5a6f43870a45f107e35f.gif)
这里需要注意两点:
1
.生成数据库表时只有当该表不存在时
ActiveRecord
才会生成,否则表如果存在
ActiveRecord
不会做任何事情,也不会报任何错误。
2
.如果在实体类中没有指定字段的长度和是否为空,则默认生成的字段是允许为空的,且字符类生成后的字段类型为
Nvarchar
,长度为
255
。
二.运行存在的
SQL
脚本
有时候我们会想在
ActiveRecord
框架启动时运行一个已经存在的
SQL
脚本来生成数据库表结构,
ActiveRecord
同样也提供了这样的功能,通过调用
ActiveRecordStarter.CreateSchemaFromFile()
来实现。示例代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d697c7f940cec91d060a69b7d6bfbabe.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78506ac88f008ceb6ff777ee2bfd9158.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f05bd14f49ac5a6f43870a45f107e35f.gif)
三.使用空属类型
在进行数据库操作时,有时候需要进行空值的处理,在
ActiveRecord
中给我们提供了一组空属类型,可以方便的进行处理,比如可以这样写属性:
ActiveRecord
提供的空属类型与实际类型对照表
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d697c7f940cec91d060a69b7d6bfbabe.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78506ac88f008ceb6ff777ee2bfd9158.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f05bd14f49ac5a6f43870a45f107e35f.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d697c7f940cec91d060a69b7d6bfbabe.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78506ac88f008ceb6ff777ee2bfd9158.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f05bd14f49ac5a6f43870a45f107e35f.gif)
看一下
CLR Basic Type
|
Nullable Type
|
System.Boolean
|
Nullables.NullableBoolean
|
System.Byte
|
Nullables.NullableByte
|
System.Char
|
Nullables.NullableChar
|
System.DateTime
|
Nullables.NullableDateTime
|
System.Decimal
|
Nullables.NullableDecimal
|
System.Double
|
Nullables.NullableDouble
|
System.Guid
|
Nullables.NullableGuid
|
System.Int16
|
Nullables.NullableInt16
|
System.Int32
|
Nullables.NullableInt32
|
System.Int64
|
Nullables.NullableInt64
|
System.SByte
|
Nullables.NullableSByte
|
System.Single
|
Nullables.NullableSingle
|
注意在使用空属类型时需要添加以下引用
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
四.使用枚举类型属性
在
ActiveRecord
中我们可以定义一个属性的类型为枚举类型,示例代码:
StatusType
属性时,可以这样赋值:
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d697c7f940cec91d060a69b7d6bfbabe.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78506ac88f008ceb6ff777ee2bfd9158.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a5a207152d50285d2b642f684cd16367.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b19221674ccfeaa2be2f33591a26176a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/31fdd64eccd12495cef6cc0af57acfb4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a5a207152d50285d2b642f684cd16367.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f05bd14f49ac5a6f43870a45f107e35f.gif)
在使用该实体类的
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
五.使用
NHibernate
的日志记录
用过
NHibernate
的朋友都知道,
NHibernate
是用
Log4net
来记录日志的,在
ActiveRecord
中也可以通过简单的配置来使用
Log4net
记录。配置示例:
ActiveRecordStarter.Initialize()
方法之前
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
初始化配置在调用
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d697c7f940cec91d060a69b7d6bfbabe.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78506ac88f008ceb6ff777ee2bfd9158.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f05bd14f49ac5a6f43870a45f107e35f.gif)
六.Hooks
有时候我们会在保存,加载,删除等操作时做一些必需的处理,这时可以通过重载以下三个方法来实现:
比如说我们想在保存的时候设置 Post 的创建时间为当前时间,可以这样去写
比如说我们想在保存的时候设置 Post 的创建时间为当前时间,可以这样去写
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a6269e9e4e1e1e402c7d02950e376da4.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d697c7f940cec91d060a69b7d6bfbabe.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/78506ac88f008ceb6ff777ee2bfd9158.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2149273624cba50f4a277a93cb6d22f3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c8d2e4b59017133d33aed64f31183d35.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f05bd14f49ac5a6f43870a45f107e35f.gif)
本文就到这里了,同时本篇也是
Castle ActiveRecord
学习实践系列的最后一篇,过几天我会提供一个完整的
ActiveRecord
的例子程序。下面有时间我会继续写
Castle
中的其他部分,包括
IOC
及
Facility
,
Aspect#
,
DynamicProxy
等。
参考资料
文中很多内容来自于Castle的官方网站http://www.castleproject.org