我们可以使用什么数据源从SQL Server获取数据并将其显示在DevExpress GridControl(WinForms中)中?它需要与.NET 6配合使用,并在SQL查询级别提供自动分页、排序、筛选和分组。
当我们使用.NET Framework 4.7时,我们拥有的是一个连接到DataContext
表的LinqServerModeSource
:
using System.Data.Linq;
linqServerModeSource.QueryableSource = new DataContext(connectionString).GetTable(typeof(Persons));
gridPersons.DataSource = linqServerModeSource;
但是在.NET6中命名空间System.Data.Linq
不再存在。
2条答案
按热度按时间jexiocij1#
您需要为DevExpress组件创建一个OData API终结点。然后LINQ/EF magic会将OData查询从DefExpress传输到SQL。
控制器操作的返回类型将是
IQueryable
,IIRC需要添加[Queryable]
属性--但是webAPI是一个不断变化的目标,自从我上次这样做以来,他们可能已经全部更改了。questin中的
IQueryable
将是数据库上下文中的一个实体集(或实体集上的LINQ表达式)。如果您的基本查询相当复杂,那么您可能更愿意为它创建一个视图,并将其Map到实体集。这意味着基础数据集的查询在编译时是已知的...
piztneat2#
最后,我将EntityServerModeSource与实体框架核心DbContext和DbSet结合使用: