我有一个对象可以有多个职位的用户。部分延迟加载
例子:
负载上的帖子IList<User> users = User.LoadAll()
然后我想只读了users[2].Posts[3]
的“半壁江山”(只获取我想要的属性,而不是从所有这些延迟加载用户那个帖子对象),这是可能做到的吗?
(注意,我不想使用视图)。
编辑: 请问有人可以给我一个简单的示例代码吗? 我试图找到一个没有成功。 谢谢
我有一个对象可以有多个职位的用户。部分延迟加载
例子:
负载上的帖子IList<User> users = User.LoadAll()
然后我想只读了users[2].Posts[3]
的“半壁江山”(只获取我想要的属性,而不是从所有这些延迟加载用户那个帖子对象),这是可能做到的吗?
(注意,我不想使用视图)。
编辑: 请问有人可以给我一个简单的示例代码吗? 我试图找到一个没有成功。 谢谢
如果我很好地理解你的问题 - 你想得到一个对象 - 在你的情况下发布 - 但只有它的一些属性 - 例如Post.Annotation而不是Post.Content,两者都是字符串。
这是不可能的。从数据库检索的每个对象都将具有所有不属于关系或集合的属性。
你可以做一个变通方法:通过转动较大的性能 到一个单独的实体,创建自定义
,然后做 多到一的映射,并利用懒 装载
查询是HQL还是带投影的标准(基本上只有几列)。但是这不会返回完整的对象。
希望我把你的问题的权利......
是的,这是可能的。当NHibernate重构数据库中的一个对象时,它也可以重建所有对象的成员,创建一个完整的对象图。这被称为级联,它是在你的映射文件中定义的关联的属性,以及你不想要的东西的声音。有关更多信息,请参阅docuemntation。
当然。
您只需在'User'类中声明一个集合类型的额外属性(例如'map'),将其'lazy'属性设置为false,将'where'属性设置为所需的SQL-where子句。
是的,那是我的问题,能够从懒加载只能得到一些属性从对象,而不是全部。我想知道NHibernate团队是否会想出一些方法来创建“自定义延迟加载映射”,允许有多种方法来加载一个对象(全部,部分)。 – Dryadwoods 2009-10-10 11:57:12