6
給予團隊 - >運動員關係並詢問所有運動員。什麼 我誤解了fetch="Join"
?這個映射是否應該通過連接加載團隊 ?當迭代運動員時, 仍然會延遲加載團隊。NHibernate加入提取(Kind)
public class AthleteMap : ClassMapping<Athlete>
{
public AthleteMap()
{
ManyToOne(a => a.Team, o =>
{
o.Fetch(FetchKind.Join);
o.Lazy(LazyRelation.NoLazy);
}
);
}
}
將會產生這種HBM:
<class name="Athlete" table="Athletes">
<id name="Id" type="Int32" />
<property name="FirstName" />
<property name="LastName" />
<many-to-one name="Team" fetch="join" lazy="false" />
<property name="Created" />
</class>
迭代:
var session = factory.OpenSession();
foreach (var athlete in session.Query<Athlete>())
Console.WriteLine("{0} {1}", athlete.FirstName, athlete.Team.Name);
你有例外嗎?至極? – Gerard
所以當你迭代時,你會看到每個'運動員'獲取一個'Team'的查詢?我的意思是,除了渴望獲取之外,映射是正確的嗎? –
沒有例外。 @GertArnold在迭代時是,它在每次迭代時都向團隊查詢。 – mxmissile