如何将NHibernate与Rx.NET一起使用?

时间:2017-08-16 17:56:03

标签: nhibernate rx.net

我正在查看博客和reactivex.net书籍,但我很难看到如何从NHibernate查询创建一个可观察的流。在RxJava中,我会使用Observable.fromCallable - 或者甚至不是最好的方法。我知道我需要从查询结果中打开无状态流,但关于如何做到这一点的语法使我望而却步。

从NHibernate查询创建Observable流的语法是什么?另外,如果不同,如何发出持久性?

谢谢!

1 个答案:

答案 0 :(得分:1)

由于Rx的存在是为了简化异步编程,我假设您的NHibernate(我从未使用过它)查询是异步的并返回Task。 Rx可以很容易地使用TaskToObservable()转换为可观察对象。

所以它可能看起来像这样:

 var observable = 
     session
         .CreateCriteria<Product>()
         .ListAsync<Product>()
         .ToObservable();

observable将在查询完成时发出查询结果,或者在出现错误时抛出异常。

您可以阅读有关ToObservable() here

的更多信息