流畅的NHibernate查询作为方法参数

时间:2013-06-23 21:55:54

标签: c# linq design-patterns fluent-nhibernate

我是Fluent NHibernate和LINQ的新手,我的问题如下: 我有一个应用程序,它从数据库中产生了很多不同的查询。要进行查询,我需要打开一个会话(或使用一些以前创建的会话)并创建一个事务。所以,根据我见过的教程和代码示例,我得到的结果如下:

using (var session = sessionFactory.OpenSession()) {
    using (var transaction = session.BeginTransaction()) {
        //do something here, probably using LINQ, for example:
        var queryResult = from emp in session.Query<Employee>()
                          where emp.Name.Contains("John")
                          select emp;
        //or just save data by:
        session.Save(something);
        transaction.Commit();
    }
}

但是,我不想在我使用数据库的每个地方重复这样的代码,所以我想创建一个每次调用的辅助方法,而不是每次都编写两个嵌套的using子句。我可以很容易地做到这一点来保存数据(只是通过传递一个对象来保存为方法参数),但是查询呢?我的想法是将查询作为参数,但我无法找到任何方法。解决这个问题的最佳方法是什么?是否有任何最佳实践或模式?我对任何想法持开放态度,使用LINQ不是必需的。

0 个答案:

没有答案