C# 使用NHibernate映射的左连接

C# 使用NHibernate映射的左连接,c#,.net,asp.net-mvc,nhibernate,C#,.net,Asp.net Mvc,Nhibernate,在我的场景中,*.hbm.xml文件中的表映射为 <class name="Student" table="Temp_Student" > <id name="StudentID" column="StudentID" type="AnsiString" /> <property name="Name" type="AnsiString" column="Name" /> <many-to-one name="Cl

在我的场景中,*.hbm.xml文件中的表映射为

<class name="Student" table="Temp_Student" >
    <id name="StudentID" column="StudentID" type="AnsiString" />    
    <property name="Name" type="AnsiString" column="Name" />    
    <many-to-one name="ClassOperator" column="Class_OPERATOR" class="MvcProj.StudentClassRef" lazy="false"/>
</class>
有了上面的代码,我可以生成只包含内部连接而不包含外部连接的查询。 如何进行外部连接以获得预期结果。
我在这里使用的是NHibernate版本3.1

您可以尝试添加inverse=false来编辑*.hbm.xml文件,如下所示

答案与问题无关,我要求做左键连接。
private string GenerateSQL(ICriteria criteria, out QueryParameters queryParam)
{
    CriteriaImpl criteriaImpl = (CriteriaImpl)criteria;
    ISessionImplementor session = criteriaImpl.Session;
    ISessionFactoryImplementor factory = session.Factory;
    CriteriaQueryTranslator translator = 
        new CriteriaQueryTranslator(factory, 
            criteriaImpl, 
            criteriaImpl.EntityOrClassName, 
            CriteriaQueryTranslator.RootSqlAlias);
    String[] implementors = factory.GetImplementors(criteriaImpl.EntityOrClassName);
    CriteriaJoinWalker walker = 
        new CriteriaJoinWalker(
            (NHibernate.Persister.Entity.IOuterJoinLoadable)factory.GetEntityPersister(implementors[0]), 
            translator, 
            factory, 
            criteriaImpl,
            criteriaImpl.EntityOrClassName, 
            session.EnabledFilters);
    queryParameters = translator.GetQueryParameters();
    return walker.SqlString.ToString();
}