跨 WCF 数据服务的动态 JOIN
我正在通过 WCF 数据服务构建通用数据浏览器的原型。
用户可以从 TreeView 中选择实体,因此我无法对查询结果类型进行硬编码,而必须动态编码查询(URI 或 LINQ)。
为了提供跨不同数据服务的联接,我将每个数据服务的结果加载到客户端,并尝试动态联接它们:
Dim q1 As IQueryable = ctx.Execute(Of Object)(New Uri("Service1.svc/Customers")).ToList.AsQueryable
Dim q2 As IQueryable = ctx.Execute(Of Object)(New Uri("Service2.svc/Orders")).ToList.AsQueryable
Dim j = q1.JoinDynamic("q1", q2, "q2", "q1.CustomerID", "q2.CustomerID", "New (q1.CustomerID as q1id, q1.CompanyName as CompanyName)")
我在使用动态联接时遇到了问题。请参阅:链接文本
当类型直到运行时才知道时,ctx.Execute 是查询结果的正确方法吗?
有人对如何通过数据服务实现动态连接有更好的想法吗?
I am prototyping a generic data browser over WCF Data Services.
The user can select the entities from a TreeView, thus I cannot hardcode the query result types and have to code the queries (URI or LINQ) dynamically.
To offer joins across different Data Services I am loading the results from each Data Service to the client an try to dynamically join them:
Dim q1 As IQueryable = ctx.Execute(Of Object)(New Uri("Service1.svc/Customers")).ToList.AsQueryable
Dim q2 As IQueryable = ctx.Execute(Of Object)(New Uri("Service2.svc/Orders")).ToList.AsQueryable
Dim j = q1.JoinDynamic("q1", q2, "q2", "q1.CustomerID", "q2.CustomerID", "New (q1.CustomerID as q1id, q1.CompanyName as CompanyName)")
I'm am stuck with a problem using the dynamich Join. See: link text
Is ctx.Execute the right way to query results when the types not known until runtime?
Does someone have a better idea on how to implement dynamic joins over Data Services?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
作为解决方法,我通过内存中程序集动态创建连接代码。
这似乎工作正常。
我可以在调试器中看到连接结果。
我只是不知道如何将结果绑定到 DataGrid。
As a workaround I dynamically created the join code via an in-memory assembly.
This seems to work fine.
I can see the join result in the debugger.
I only do not know hot to bind the result to a DataGrid.