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