在只读/仓库场景中的NHibernate延迟加载

时间:2011-10-25 19:50:46

标签: sql-server-2008 nhibernate

在SQL Server 2008 R2中,给出了一个或多个一对一表的表结构,例如......(CaseId是公共主键)

CaseTable: 案例ID COL1 COL2

CaseDetailTable: 案例ID COL1 COL2

CaseMoreDetailTable: 案例ID COL1 COL2

然后在它的顶部放置一个视图,例如

CREATE VIEW MyView
    SELECT CaseTable.Col1 AS CaseCol1, CaseDetailTable.Col1 AS CaseDetailCol1,
    CaseMoreDetailTable.Col1 AS CaseMoreDetailCol1
    FROM CaseTable
    INNER JOIN CaseDetailTable
    ON CaseTable.CaseId = CaseDetailtable.CaseId
    INNER JOIN CaseMoredetailTable
    ON CaseTable.caseId = caseMoreDetail.CaseId

现在,如果我将NHibernate映射到视图,它将能够通过视图延迟加载而不是,例如,如果使用...调用视图,则从CaseMoreDetail中选择数据。

SELECT CaseCol1, CaseDetailCol1
FROM MyView

或者,最好将三个表映射到实体,从而确保它可以延迟加载吗?

1 个答案:

答案 0 :(得分:1)

一对一映射 不支持延迟加载 AFAIK。对于视图来说相同,如果您将视图映射到视图中所有连接,那么就无法延迟加载关联。尝试在主实体中将关联部分指定为<many-to-one>关联。