winforms 具有分页、排序、筛选、分组功能的DevExpress GridControl的数据源

axkjgtzd  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(246)

我们可以使用什么数据源从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不再存在。

jexiocij

jexiocij1#

您需要为DevExpress组件创建一个OData API终结点。然后LINQ/EF magic会将OData查询从DefExpress传输到SQL。
控制器操作的返回类型将是IQueryable,IIRC需要添加[Queryable]属性--但是webAPI是一个不断变化的目标,自从我上次这样做以来,他们可能已经全部更改了。
questin中的IQueryable将是数据库上下文中的一个实体集(或实体集上的LINQ表达式)。如果您的基本查询相当复杂,那么您可能更愿意为它创建一个视图,并将其Map到实体集。
这意味着基础数据集的查询在编译时是已知的...

piztneat

piztneat2#

最后,我将EntityServerModeSource与实体框架核心DbContextDbSet结合使用:

entityServerModeSource.QueryableSource = myDbContext.PersonsDbSet;
entityServerModeSource.KeyExpression = "Id";
entityServerModeSource.Reload();
gridPersons.DataSource = entityServerModeSource;

相关问题