我正在从breeze中保存一个复杂的对象图,我从服务器收到以下错误:
错误:Oracle不支持CROSS APPLY
我们正在使用Devart提供程序使用Oracle数据库。从我的研究来看,似乎这个问题的唯一解决方案是避免某些linq查询表达式。这些线程提供了进一步的上下文:
http://forums.devart.com/viewtopic.php?t=18849
链接的最后一个线程特别令人沮丧,因为这似乎是微软相关的EF问题,他们已经在很长一段时间内一直处于黑暗状态。
因为对此的唯一补救措施似乎是避免使用特定的linq运算符/表达式,所以我必须问是否有任何方法可以使用breeze并避免这些违规的linq表达式?如果没有,我会得出结论,微风目前仅限于EF完全支持的关系数据库,我的研究实际上只是MS SQL。
希望我错了, 的Mathias
答案 0 :(得分:0)
如果您想使用Breeze的EFContextProvider,那么您只能使用EF后端。但是你做了一些其他的选择。首先,您可以将自己的参数传递给控制器方法,(请参阅EntityQuery.withParameters方法)。这可能允许您在服务器上重写表达式,以避免无法为Oracle正确转换的EF表达式。
此外,您可以将Breeze与您自己的自定义上下文提供程序一起使用,也可以完全接管服务器端。第一种方法是一种很好的方法,如果你正在与另一种.NET后端进行通信,第二种方法适用于与任意非.NET后端进行通信时。
我们计划在未来几周内将NHibernate后端发布为微风以及Node-MongoDb后端,以说明这两者。