WinForms数据绑定实体框架6



我在WinForm应用程序上有一个ComponentOne Grid控件,我想绑定一个"LINQ查询",而不是整个DbSet。

如果我需要完整的DbSet,答案在这里:不支持直接绑定到存储查询(DbSet,DbQuery,DbSqlQuery)的数据实体框架5

gridControl1.DataSource = context.capitulo.Local.ToBindingList();
context.capitulo.Load();

但如果我想下订单和/或像这样的条件,这是不起作用的

gridControl1.DataSource = context.capitulo.OrderBy(x => x.Id).Local.ToBindingList();
context.capitulo.Load();

因为CCD_ 1是CCD_ 2的性质,而不是CCD_。我找到了很多WPF的解决方案,但没有找到WinForms的解决方案。

var capituloList = new ObservableCollection<capitulo>(context.capitulo.Local.OrderBy(x => x.Id));
gridControl1.DataSource = capituloList.ToBindingList();
context.capitulo.Load();

您需要将LINQ查询应用于可绑定集合,然后获得另一个可绑定集合。这是用LiveLinq完成的,它是ComponentOne套装的一部分(与C1DataSource一起,ComponentOne WinForms中有一个),所以你可能已经拥有了它。只需使用AsLive()扩展方法:

gridControl1.DataSource=context.capitulo.Local.AsLive().OrderBy(x=>x.Id);

要使AsLive()可用,您需要

使用C1.WPF.LiveLinq;

(但这里的WPF并不意味着你在使用WPF,它只是一个名称,你仍然在WinForms中)

最新更新