本节为您介绍: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持久化与合法性验证回调内容介绍到此,内容比较简单,希望对网友开发有所用!