NHibernate を使用してクエリを作成し、複数の外部キーを検索しようとしています。
次のコードは、外部キーの 1 つだけを検索しているときに機能します。
ICriteria query = Session.CreateCriteria<TblTeam>()
.Add<TblTeam>(x => x.FldUrlSafeName == teamName)
.CreateCriteria<TblTeam>(x => x.TblSportsType)
.Add<TblSportsType>(x => x.FldUrlSafeName == sportsType);
return query.UniqueResult<TblTeam>();
2 つの外部キーを検索する必要があるため、次のように作成しました。
ICriteria query = Session.CreateCriteria<TblTeam>()
.Add<TblTeam>(x => x.FldUrlSafeName == teamName)
.CreateCriteria<TblTeam>(x => x.TblSportsType)
.Add<TblSportsType>(x => x.FldUrlSafeName == sportsType)
.CreateCriteria<TblTeam>(x => x.TblSportsOrganization)
.Add<TblSportsOrganization>(x => x.FldUrlSafeName == sportsOrganization);
return query.UniqueResult<TblTeam>();
残念ながら、これにより次のエラーが発生します。
「プロパティを解決できませんでした: TblSportsOrganization の: site.Core.TblSportsType」
TblSportsTypeではなくTblTeamに基準を追加できるように、いわば「一歩後退」させるにはどうすればよいですか?