首页 > 解决方案 > .NET IQueryable MSSQL 和 ASP.NET WebAPI

问题描述

案件如下。

WPF 应用程序中有 DataGrid,它使用 IQueryable 作为 ItemsSource(应用过滤、排序、分组、聚合等)我们有 MSSQL Server 数据库,如果我们使用 EF DbSet<> 从应用程序直接连接到数据库,则数据存储在其中或 ADO.NET Table<> 一切都很好。我们不希望该应用程序直接访问数据库,目的是在它们之间使用 WebAPI。DataGrid 有自己的查询生成器表达式,生成的查询看起来像

.Call System.Linq.Queryable.Select(
.Call System.Linq.Queryable.GroupBy(
    .Call System.Linq.Queryable.Select(
        .Constant<Reports.ReportQuery>(Query(RepoService.Flight)),
        '(.Lambda #Lambda1<System.Func`2[RepoService.Flight,DynamicClass1]>)),
    '(.Lambda #Lambda2<System.Func`2[DynamicClass1,DynamicClass2]>)),
'(.Lambda #Lambda3<System.Func`2[System.Linq.IGrouping`2[DynamicClass2,DynamicClass1],Telerik.Pivot.Core.PivotResultItem]>))

据我了解,OData 不适合我们的情况。我们要做的是在提供者 Execute 方法中创建我们的自定义 IQueryable 和 IQueryProvider 获取查询表达式,以将其发送到 WebAPI,然后在 DB 上执行它,发回结果并从提供者 Execute 方法返回该结果。

1)这种方式正确/可能吗?

2)这种情况有一些现有的解决方案吗?

标签: c#.netsql-serverwpfasp.net-web-api

解决方案


我为我的问题找到了解决方案,它是Remote.LINQ


推荐阅读