我刚刚开始学习nhibernate,并且正在学习教程。在我自己的学习项目中,我为自己解决了一个问题。我有两张桌子:
Team:
TeamId*
Name
Match:
MatchId*
TeamAId
TeamBId
模型实体包括:
团队
public virtual int? TeamId { get; private set; }
public virtual string Name { get; set; }
public virtual IList<Match> HomeMatches { get; set; }
public virtual IList<Match> AwayMatches { get; set; }
比赛
public virtual int? MatchId { get; private set; }
public virtual Team TeamA { get; set; }
public virtual Team TeamB { get; set; }
这是我的团队地图:
<property name="Name" type="string">
<column name="Name" sql-type="nvarchar" not-null="true"/>
</property>
<bag name="HomeMatches" inverse="true" cascade="all-delete-orphan">
<key column="TeamAId" />
<one-to-many class="Match"/>
</bag>
<bag name="AwayMatches" inverse="true" cascade="all-delete-orphan">
<key column="TeamBId" />
<one-to-many class="Match"/>
</bag>
这是为了比赛:
<many-to-one name="TeamA" class="Team">
<column name="TeamAId" sql-type="int" not-null="true" />
</many-to-one>
<many-to-one name="TeamB" class="Team">
<column name="TeamBId" sql-type="int" not-null="true" />
</many-to-one>
我想这不是正确的方法,因为我收到一条错误消息:
nhibernate.lazyinitializationException:正在初始化[MyProject.Domain.Entities.Team 1]-无法初始化代理-没有会话。
-
我的地图有问题吗?
-
如果没有,有什么关于如何处理错误的建议吗?
谢谢。