.NET分层架构中的一个问题
acqy 2007-05-21 09:51:58 通常情况下,数据访问层只管数据的CRUD操作,而业务逻辑层使用数据访问层提供的类和方法实现业务逻辑。我的数据持久层采用NHibernate,例如,某个用户tester创建并post了一个blog,我是这样做的:
public void PostBlog()
{
using (ISession session = NHibernateHelper.GetCurrentSession())
{
User user = new User();
user.Name = "tester";
Blog blog = new Blog();
blog.Title = "blogTitle";
blog.Content = "blogContent";
blog.User = user;
user.Blogs.Add(blog);
session.Save(user);
session.Save(blog);
session.Flush();
}
}
从表面上看,上面的业务逻辑很简单,但是,这种做法明显的把数据库操作以及数据库事务处理放在了业务层,明显不符合分层必须解耦的思想。那么,这个数据访问层和数据持久层应该如何定义呢?他们的关系是怎样的呢?