我有一个类A,其中包含类B的集合。最后一节课很重,对于我正在使用的新模块,我只需要其中几个领域。

为了提高使用nhibernate从SQL Server加载实体时的性能,我想创建一个精简版的此类用于在我正在开发的模块中使用(类BLite)。

BLite类将用于集合和多对一关系。我知道我可以为此新类创建一个单独的映射,其中仅包含我需要的字段,但如果可能的话,我想避免这种情况(使用组件或类似功能)。

是否可以使用类的“精简版”版本而无需创建额外的映射?

最佳答案

在您的方案中可能有用的是lazy属性映射,文档5.1.9. property第9点):


  惰性(可选-默认为false):指定此属性为
  懒。初始时不加载惰性属性
  加载,除非在特定查询中已覆盖访存模式。
  延迟属性的值会在
  对象被访问。


这种映射可能适合您,因为这些属性在需要时可用(当对象连接到会话时),但绝不会隐式加载。在查询中,仍可以调整获取模式(成为一个SELECT子句的一部分)。

10-08 12:18