我有一个类A
,其中包含类B
的集合。最后一节课很重,对于我正在使用的新模块,我只需要其中几个领域。
为了提高使用nhibernate从SQL Server加载实体时的性能,我想创建一个精简版的此类用于在我正在开发的模块中使用(类BLite
)。
该BLite
类将用于集合和多对一关系。我知道我可以为此新类创建一个单独的映射,其中仅包含我需要的字段,但如果可能的话,我想避免这种情况(使用组件或类似功能)。
是否可以使用类的“精简版”版本而无需创建额外的映射?
最佳答案
在您的方案中可能有用的是lazy
属性映射,文档5.1.9. property第9点):
惰性(可选-默认为false):指定此属性为
懒。初始时不加载惰性属性
加载,除非在特定查询中已覆盖访存模式。
延迟属性的值会在
对象被访问。
这种映射可能适合您,因为这些属性在需要时可用(当对象连接到会话时),但绝不会隐式加载。在查询中,仍可以调整获取模式(成为一个SELECT子句的一部分)。