Nhibernate开发专题博客

Nhibernate开发专题博客,为您精选Nhibernate开发教程,助您开发愉快!

公告信息
欢迎光临Nhibernate开发专题博客,祝您开发愉快!
文章档案

NHibernate持久化与合法性验证回调-NHibenate入门到精通系列5


本节为您介绍:
NHibernate持久化与合法性验证回调内容。

一:NHibernate持久化介绍

首先来了解一个概念:何为NHibernate持久化?[Persistent]

持久化是指将(内存中)数据保存到外部介质,如磁盘中。


然后再来了解一个新概念:何为NHibernate持久化类?[Persistent Classes]

持久化类其实就是持久化的一个数据载体,你也可以简单的理解为实体类。


持久化类,有它自己的需要满足的条件:

1:必须有一个无参数的构造函数[好说一个]。

2:需要有属性[可选,有多个]。

3:使用非可继承的类标识(non-sealed)或者虚方法[可选]


二:NHibernate生命周期中回调介绍

其实很简单,就是一个接口ILifecycle,只要让实体类继承自这接口,然后实现相关方法即可。

ILifecycle接口的属性:

public interface ILifecycle

{

 LifecycleVeto OnDelete(ISession s);

 void OnLoad(ISession s, object id);

 LifecycleVeto OnSave(ISession s);

LifecycleVeto OnUpdate(ISession s);

}

接口的方法在不同的时候被触发:

OnSave:在实体调用save、insert时回调

OnUpdate:在实体调用update的时回调

OnDelete:在实体调用delete时回调

OnLoad:在实体刚load时回调




三、NHibernate合法性验证回调介绍

同样也很简单,仍是一个回调接口:IValidatable

IValidatable接口属性:

public interface IValidatable
{
        void Validate();
}

Validate()由于是合法性验证回调查,应该将经常性被调用到。

给出简单的接口示例:

public class Entity : IValidatable
{

        ....
        public virtual decimal Price { get; set; }


        public virtual void Validate()
        {
            if (Price > 100)
            {
                throw new ValidationFailure("价钱太高了!");
            }
        }
}

本文NHibernate持久化与合法性验证回调内容介绍到此,内容比较简单,希望对网友开发有所用!

新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"

2011/9/7 3:48:00 | Nhibernate从入门到精通系列 | |

  • 发表评论