我需要一些帮助来理解从sqldb到syncfusion网格控件表示数据的最佳方法。
动物表包含眼睛颜色,皮毛颜色的外键。。。
我可以将devart生成的objectcontext中的objectset添加为syncfusion sfdatagrid的数据源。正如我们在图片上看到的,我们看到了外键。
如果我想显示{rec.coat.name}而不是{rec.coatid},我必须使用unboundcolumn(在这里输入链接描述)。但使用这种方法会带来一些麻烦:syncfusion组件无法对unboundcolumn进行排序。从编者的Angular 来看,没有实施的计划。
那么,使用实体框架将数据(和外键)从sql表转换为winform控件的好数据源的好方法是什么呢?
谢谢你的帮助。
文森特
3条答案
按热度按时间23c0lvtd1#
尝试在linq查询中使用join将结果集中的rec.coatid替换为rec.coat.name:https://docs.microsoft.com/en-us/ef/core/querying/complex-query-operators .
pzfprimi2#
我们正在使用dataview的sort属性对sfdatagrid中的记录进行排序。如您所知,unbound列不是datatable中绑定到sfdatagrid的实际列。因此,即使应用排序,也不会从框架中获得排序并引发异常,因为对应的列在实际的datatable中不可用。因此,根据您的要求,我们不能提供使用datatable作为数据源的支持。
另一方面,我们建议您可以使用实体框架并将实体集合分配给sfdatagrid。sfdatagrid支持实体框架的未绑定列的排序和所有其他数据操作。因为,我们正在处理我们自己的排序逻辑和所有其他数据操作。您可以参考下面的文章来了解如何使用sql和实体框架。
https://dzone.com/articles/receive-notifications-with-new-values-when-table-r
每当更新服务器端数据时,都将调用sqltabledependency.onchanged方法。因此,您可以在此基础上更新应用程序中的实体。请您仔细阅读以上条款,让我们知道这是否符合您的要求?
当做,
维贾亚拉桑
92vpleto3#
以下是解决方案:
感谢syncfusion公司的@devart支持和@vijayarasan:)