NHibernate CreateCriteria をNHLambdaExtensions基準に変換したいのですが、修正方法がわからないエラーが発生します。
NHibernate の基準は次のようになります。
var departments = DepartmentService
.CreateCriteria()
.CreateAlias( "Goals", "goal" )
.Add( Expression.Eq( "goal.Company.Id", companyId ) )
.Add( Expression.Eq( "goal.Program.Id", programId ) )
.List<Business.Department>();
作成しようとしている NHLambdaExtensions 基準は次のようになります。
Business.Goal goalAlias = null;
var departments = DepartmentService
.CreateCriteria()
.CreateAlias<Business.Goal>( g => g.Department, () => goalAlias )
.Add<Business.Goal>( g => g.Company.Id == companyId )
.Add<Business.Goal>( g => g.Program.Id == programId )
.List<Business.Department>();
私が得ているエラーは、「ビジネス部門のプロパティを解決できませんでした」です。エラーは明らかに「g => g.Department」に関係しており、元の NHibernate クエリには似たようなものは何もありませんが、式を取らないオーバーロードはありません。