我有一个可以有多个帖子的对象用户。
示例:
在帖子IList<User> users = User.LoadAll()
然后我想只阅读users[2].Posts[3]
的“一半”(只检索我想要的属性,而不是从那个帖子对象中检索所有属性),这可能吗?
(注意,我不想使用View)。
编辑: 有人可以给我一个简单的示例代码吗? 我试图找到一个没有成功。 感谢
答案 0 :(得分:2)
如果我理解你的问题 - 你想得到一个对象 - 在你的情况下发布 - 但只有一些属性 - 例如Post.Annotation而不是Post.Content,它们都是字符串。
此刻不可能。从数据库中检索的每个对象都将具有不是关系的所有属性,也不会加载集合。
您可以解决方法:
通过改变较大的属性 进入一个单独的实体,然后做 多对一映射并利用懒惰 装载
通过创建自定义查询,可以是HQL或带有投影的条件(基本上只有几列)。但是,这不会返回完整的对象。
希望我的问题正确......
答案 1 :(得分:-1)
不确定
您只需要在'User'类中声明集合类型的额外属性(例如'map'),将其'lazy'属性设置为false,并将'where'属性设置为所需的SQL-where子句。
答案 2 :(得分:-2)
是的,这是可能的。
当NHibernate从数据库重构一个对象时,它也可以重建所有对象的成员,创建一个完整的对象图。这称为级联,它是映射文件中定义的关联的属性,以及您不想要它的声音。请参阅docuemntation了解更多信息。