1
嗨,我想執行到表之間的連接,但我無法做到這一點。如何在MVC3中使用nhibernate執行連接
這裏是我的課:
public class Person
{
public virtual LoginAccount LoginAccount { get; set; }
}
public class LoginAccount
{
//fields of LoginAccount
}
人
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly ="HobbyHomes" namespace ="HobbyHomes.Model" >
<class name ="Person">
<composite-id class="HobbyHomes.Model.LoginAccount" name="LoginAccount">
<key-property name="LoginAccountID">
<column name="LoginAccountID"></column>
</key-property>
</composite-id>
//other properties
</class>
現在的映射文件是什麼這是我試圖從人獲取登錄賬號的值:
public IList<Person> FetchPerson(ICollection<Learner> learner)
{
log.Debug("Started");
ISession session = DataAccessLayerHelper.OpenReaderSession();
IList<Person> person = null;
ITransaction transaction = null;
Disjunction dj = new Disjunction();
try
{
transaction = session.BeginTransaction();
person = session.CreateCriteria(typeof(Person), "person")
.CreateCriteria("person.LoginAccount", "LoginAccount", NHibernate.SqlCommand.JoinType.LeftOuterJoin)
.List<Person>();
transaction.Commit();
}
catch (Exception ex)
{
if (transaction != null && transaction.IsActive)
transaction.Rollback();
log.Error(ex);
}
finally
{
if (transaction != null)
transaction.Dispose();
if (session != null && session.IsConnected)
session.Close();
}
log.Debug("End");
return person;
}
但與此我只能夠獲取Person類的字段而不是LoginAccount類的字段。請幫助我。
這可能會幫助你走了。 http://nhforge.org/blogs/nhibernate/archive/2008/10/05/querying-with-nhibernate.aspx –
我個人使用QueryOver API。你也希望看到這一點。它可以爲你節省一些時間。 –