2017-08-16 70 views
1

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

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

谢谢!

回答

1

由于Rx的存在,以简化异步编程我假设你的NHibernate(我从来没有使用它)查询是异步的并返回Task。 Rx使得使用ToObservable()Task变成可观察值变得非常容易。

因此,它可能是这个样子:

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

可观察到的查询完成时会发出查询结果,或如果出现出错抛出异常。

您可以阅读更多关于ToObservable()here