我希望在Rx和EF之间共享一个谓词,而不会破坏为谓词生成有效SQL代码的能力。 这可能吗?
理想的解决方案需要最少的代码来执行以下所有操作:
在我的想象中,代码看起来很简单:
public IObservable<Pet> GetAndObserveUserPets(int userId) {
return EfContext.Pets.AsQueryableObservable().Where(d => d.OwnerId == userId);
}
显然,上述操作中的核心方法AsQueryableObservable()
不存在。在实践中,我怀疑可能的软件可能不支持这一点。可能没有办法“同步”使用“LINQ to Observables”(Rx)和LINQ to Entities(或LINQ to SQL)。在检查观察谓词中的相关实体时可能会出现另外的复杂情况,尽管这可能严格地是设计到性能的关注点。
有没有办法做到这一点?
我的目标是构建实时多用户Web界面,显示来自SQL数据库的可编辑信息,并根据可用性或安全性原因进行过滤。我希望使用SignalR。
https://msdn.microsoft.com/en-us/library/hh242971(v=vs.103).aspx