![]() |
1
1
我不知道是否可以使用HQL,但是使用NHibernate的标准API,您可以这样做:
然而,这可能不是你真正想要的。技术脚本现在不会被获取,但一旦您访问它们,它们就会被获取(即:第一次调用技术脚本属性)。
在与NHibernate合作时,你不应该考虑“数据”。相反,你应该用“实体”来思考。
我脑海中闪现的另一件事:
我想您想要检索这些技术,而没有相关的内容,因为您想要在概述或类似的内容中显示它们?
在这种情况下,您应该看看“转换”。
例如,您可以创建一个称为
一旦你这样做了,你必须通知NHibernate这个类的存在。 例如,您可以通过在hbm.xml文件中导入类来实现这一点。(我不知道用流利的语言怎么做)。
之后,您可以创建一个查询(使用hql或条件),用于检索
使用HQL:
使用标准:
|
![]() |
2
1
我想你要找的是让技术脚本变得懒惰。这样,只有在访问描述时才能从数据库加载描述(nhibernate将发出第二个db查询)。请注意,在某些情况下,这可能会导致N+1选择,您可能更喜欢一次查询,具体取决于用法。)
通过nhibernate XML映射,默认为延迟加载集合。在过去,流畅的NHibernate似乎没有同样的默认值。你需要添加
最近,似乎延迟加载已成为默认的Fluent映射: Is the default behavior with Fluent NHibernate to lazy load HasMany<T> collections? |
![]() |
Nico Pizzo · 子查询上的nhibernate联接 6 年前 |
![]() |
YMC · 无法在Nhb 4中构建只有特定字段可供选择的2个表联接 6 年前 |
![]() |
Stu · 具有特定类型的字符串外键的NHibernate映射 7 年前 |
![]() |
Zout · 为Hibernate的HiLo算法管理的列生成ID 7 年前 |