我的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...