cdo*_*ner 5 asp.net data-binding controls linq-to-sql
我经常需要组合来自多个表的数据并在GridView控件中显示结果.
我可以在Page_load事件中内联编写Linq查询,返回一个匿名类型,它结合了我需要的所有字段,并将结果数据绑定到GridView控件.
我可以编写一个数据库视图来返回我需要的数据,并编写一个帮助器方法,对它返回的这个(新的和已知的)类型进行查询.
我想采取一种方法,让我将Linq查询保存在辅助方法中,但允许我在各自的数据绑定表达式中访问网格上所需的所有属性.可以这样做吗?
我问错了问题,就像我经常做的那样。促使我研究匿名类型的原因是 GridView 的一个明显限制 - 我无法在<asp:BoundField>
(DataField 参数只接受 Linq 查询引入的表的列名称) 中使用数据绑定表达式。
事实证明,在 TemplateField 中可以使用 Eval 并访问 Linq 数据项的成员,并且 Linq 会为我处理查询。换句话说,我可以将查询保留在辅助方法中,让它返回主数据库表类型(例如帐户),然后将帐户绑定到 GridView。在数据绑定表达式中,我可以访问驻留在其他表中的 Account 对象的数据成员,而无需在查询中显式地将它们拉入。完美的。