gpt4 book ai didi

asp.net - Linq to SQL 设计问题

转载 作者:行者123 更新时间:2023-12-03 17:21:21 26 4
gpt4 key购买 nike

我经常需要组合来自多个表的数据并将结果显示在 GridView 控件中。

我可以在 Page_load 事件中内联编写一个 Linq 查询,返回一个组合了我需要的所有字段的匿名类型,并将结果数据绑定(bind)到 GridView 控件。

  • 问题:我使用 Scott Guthrie on his blog 中描述的“辅助方法” .这样的辅助方法不能返回匿名类型。对于这种方法,查询必须是内联的。

  • 我可以编写一个返回我需要的数据的数据库 View ,并编写一个辅助方法,并针对它返回的这个(新的和已知的)类型进行查询。
  • 问题:我的数据库模式中需要很多 View ,并且我会引入很多冗余方面的数据。我也失去了使用 Linq 的一些优势——从数据库中删除所有业务逻辑。

  • 我想采取一种方法,让我将 Linq 查询保留在辅助方法中,同时允许我在它们各自的数据绑定(bind)表达式中访问网格上我需要的所有属性。这可以做到吗?

    最佳答案

    我问错了问题,我经常这样做。促使我研究匿名类型的是 GridView 的一个明显限制——我无法在 <asp:BoundField> 中使用数据绑定(bind)表达式。 (DataField 参数只接受 Linq 查询拉入的表的列名)。

    事实证明,在 TemplateField 中可以使用 Eval 并访问 Linq 数据项的成员,而 Linq 会为我处理查询。
    换句话说,我可以将查询保留在我的辅助方法中,让它返回一个主数据库表类型(例如 Account),并将 Accounts 绑定(bind)到 GridView。
    在数据绑定(bind)表达式中,我可以访问驻留在其他表中的 Account 对象的数据成员,而不必在查询中显式地拉入它们。完美的。

    关于asp.net - Linq to SQL 设计问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1472929/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com