nhibernate - 在 NHibernate 中获取 *不是* 引用的延迟加载属性

标签 nhibernate

我有一个带有二进制列的实体,该实体在映射中设置为延迟加载。但在某些情况下,我们希望同时获取实体和二进制数据。我尝试使用 Linq.Fetch(x => x.BinaryData),但这给出了无效的连接异常。可以理解,考虑到它一开始就不应该是连接。有办法让它发挥作用吗?我正在使用 NHibernate 3.1

这是映射:

Map(x => x.BinaryData)
   .CustomSqlType("image")
   .Length(int.MaxValue)
   .Not.Nullable()
   .LazyLoad();  // Wanna make sure we don't kill the app by loading the image data when we don't need it.

这是抓取:

Linq.Where(x => x.Id == id).Fetch(x => x.BinaryData).FirstOrDefault();

最佳答案

目前看来这是不可能的:https://nhibernate.jira.com/browse/NH-2888

所以,你必须使用 HQL :

var post = session.CreateQuery("from Post fetch all properties")
    .SetMaxResults(1)
    .UniqueResult<Post>();

来源:http://ayende.com/blog/4377/nhibernate-new-feature-lazy-properties

关于nhibernate - 在 NHibernate 中获取 *不是* 引用的延迟加载属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10620455/

相关文章:

nhibernate - Get<T> 和 Load<T> 的区别

c# - NHibernate 更新不工作

nHibernate 查询继承

nhibernate - Nhibernate/Fluent NHibernate : Using Filter with SubclassMap

对子集合有限制的 NHibernate 查询

.net - 存储库基础或特定方法?

nhibernate - 为什么是 Fluent NHibernate 与 hbm XML 文件?

nhibernate - Fluent NHibernate Automapping 与抽象基类

c# - 需要为 nhibernate 配置提供程序集的路径

NHibernate 投影帮助