【问题标题】:HQL vs Linq to objectsHQL 与 Linq 到对象
【发布时间】:2009-08-12 22:07:16
【问题描述】:

我需要在系统中获取符合特定条件的产品。

我应该如何决定是否应该编写 HQL 并从数据库中获取符合条件的所有产品,或者直接将 Linq 查询写入包含系统中所有产品的主列表。

这应该是更好的性能虎钳

【问题讨论】:

    标签: c# asp.net linq nhibernate


    【解决方案1】:

    NHibernate 查询会更好,因为对象的过滤会发生在数据库中。使用 LINQ to Objects,您很可能会从数据库中返回您并不真正想要的对象。

    如果可以,请始终过滤数据库中的结果集 - 这将为您提供可能的最佳性能(所有其他条件相同)。

    【讨论】:

    • “如果可以的话,总是过滤数据库中的结果集”对于非常小的结果集不一定正确。
    • @Pavel - 你有任何证据支持你的说法吗?我有兴趣看到一个完整的示例,在该示例中,从关系数据库中检索所有对象并在内存中过滤这些对象比在正确索引的数据库上使用编写良好的查询更快。
    • 值得一提的是,您可以使用 LINQ 从数据库中过滤元素,而无需借助对象。
    • 是否有一个 nHibernate 文档实际上声明 LINQ 查询不在数据库端执行(即正确转换为语句)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多