nil

导航

我的ORM设计(正在完成中)

      一直对orm很感兴趣,自己也有一点想法。有一天研究了一下nhibernate,竟然发现它就是我所要的,比较兴奋,不过水平有限,把代码全读下来慢慢理解还真不容易,down下慢慢消化吧。等对nhibernate熟悉了肯定会用它,但自己还是想写一些,至少可以验证一下自己的想法。没有一个东东出来心里不塌实啊。

 言归正传。

      在我的想法中,connection不应该暴露出来,写业务层看不到应connection。其次,操作应该比较统一,但不乏多样性并满足各种要求。

先来看一段代码:

1。

ISession session = SessionFactory.OpenSession();
 User user = new User();
  user...
  user...
  
  session.Insert(user);
  session.Flush();
  
session.Close(); //Connection Auto Close.  

2。  

ISession session = SessionFactory.OpenSession();
ITransaction trans = session.OpenTransaction();
try
{
 trans.Begin();
  User user = new User();
  user...
  user...
  
  session.Insert(user);
  session.Flush();
 trans.Commit();

catch(Exception e)
{
 trans.RollBack();
}
finally
{
 session.Close();
}

3。


ITransaction trans = SessionFactory.OpenTransaction();

try
{
 trans.Begin();
  ISession session1 = SessionFactory.OpenSession(trans);
   User user = new User();
   user...
   user...
   session1.Insert(user);
   session1.Flush();
   session2.Close();
   
  ISession session2 = SessionFactory.OpenSession(trans);
   Order order = new Order();
   order...
   order...
   session2.Update(order);
   session2.Flush();
   session2.Close();
   
 trans.Commit();
}
catch(Exception e)
{
 trans.RollBack();
}
finally
{
 SessionFactory.CloseTransaction(trans);
}

 这样子操作我觉得还是比较方便的,而且形式上基本能够统一。

 

continue...
 

posted on 2004-11-30 14:36  青水泛舟  阅读(991)  评论(0编辑  收藏  举报