** ** ** 数据的存取方式 **
数据存取的目的,是持久化保存对象。在 Websharp 中,定义了 PersistenceManager 接口来实现这个功能。 PersistenceManager 的定义可以见: 附 1 : Websharp 主要接口定义—— PersistenceManager
我们可以使用如下的方式来持久化保存一个对象:
Product product= new Product (true);
……//处理product
PersistenceManager pm = PersistenceManagerFactory.Instance().
CreatePersistenceManager();
pm.PersistNewObject(p);
pm.Close();
代码非常简明和直观,没有一大堆数据库操纵的代码,也不容易发生差错。
也可以通过向 PersistenceManagerFactory 传递一个PersistenceProperty参数来初始化一个 PersistenceManager ,如:
PersistenceProperty pp=new PersistenceProperty();
pp …… //设置pp的属性
PersistenceManager pm = PersistenceManagerFactory.Instance().CreatePersistenceManager(pp);
关于 PersistenceProperty的说明,可以见后面的 系统持久化配置信息 一节。
** 事务处理 **
在很多时候,在处理对象保存的时候,我们需要使用事务处理,特别是在处理上上面示例中的类似于入库单的一对多结构的对象的时候。在 Websharp 中,我们可以通过 Transaction 接口来完成这个功能。 Transaction 接口的定义可以见: 附 1 : Websharp 主要接口定义—— Transaction
下面是使用事务处理的一个例子:
Product product= new Product (true);
……//处理product
PersistenceManager pm = PersistenceManagerFactory.Instance().
CreatePersistenceManager();
Transaction trans=pm. CurrentTransaction;
trans. Begin ();
try
{
pm.PersistNewObject(p);
trans.Commit();
}
catch (Excption e)
{
trans.Rollback();
}
finally
{
pm.Close();
}