我是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不是必需的。