【问题标题】:Is there any NHibernate equivalent of the sql 'left' function?是否有任何 NHibernate 等效于 sql 'left' 函数?
【发布时间】:2019-12-20 04:08:42
【问题描述】:

目前项目需要从sql server数据库中检索海量数据,那么NHibernate中有没有类似sql 'left' 的函数,可以像下面这样从数据库中获取更少的内容属性数据?

SELECT
    m.*, left(mc.Content, 30) as Content
from
    Message m
INNER JOIN
    MessageContent mc
ON
    m.SequenceID = mc.SequenceID

"string.substring()" 不适合这里,因为这里的数据真的很大,应用"left"函数的目的是为了减少从数据库中检索的时间。

【问题讨论】:

标签: sql linq nhibernate linq-to-sql


【解决方案1】:

left() 函数在 HQL 中可用。

我认为如果您在 LINQ 查询的 select 子句中使用 string.Substring(),NHibernate 或许可以将此方法调用传递到 SQL 语句中。

【讨论】:

  • 您好,感谢分享。我终于创建了一个实际的 SQL 查询,这也提高了运行速度。
  • @pri17 你声称的性能听起来有点可疑......除非你被投射到使用 HQL/LINQ 映射的实体,但只是映射到使用 SQL 查询的非映射 DTO:s?我想一个 LINQ 查询将被转换为有效的相同 SQL 并具有同样的性能。
  • 好吧,不管什么“理论”应该执行相同,但实际上,实际的 SQL 查询确实执行得更好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-27
  • 1970-01-01
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
  • 2019-06-26
  • 2017-01-21
相关资源
最近更新 更多