Service layer提供相关的服务,由presentation layer来调用。其内部数据部分主要由两部分组成,一部分是domain object,一部分是data context.
ORM在事务,并发管理以外对数据的操作主要包括3部分:
-
An API for CRUD operations
-
A query model plus an ad hoc query language to speed up the definition of most queries
-
An API for mapping metadata (such as classes to tables or properties to columns)
ORM的CRUD操作是由data context来实现的。NHibernate中的data context是ISession。
下面的简单代码描述了有ORM时在service layer如何实现一般的业务逻辑。
-
通过工厂类创建一个ISession;
-
生成所需的业务对象;
-
调用ISession的相应方法来完成数据库操作。
private void btnAddCategory_Click(object sender, RoutedEventArgs e)
{
var factory = CreateSessionFactory();
using (var session = factory.OpenSession())
{
var category = newCategory
{
Name = txtCategoryName.Text,
Description = txtCategoryDescription.Text
};
session.Save(category);
}
}