特定のクエリを他のいくつかの関数で使用できるようにしたいのですが、特定のドメインに特化した QueryOver オブジェクトを作成するだけのクラスがあります。
ただし、その関数はエイリアス オブジェクトを使用して結合を作成します。別の関数からこれらのエイリアスにアクセスするにはどうすればよいですか?
たとえば、それぞれが学生のコレクションを持つ Course エンティティがあるとします。Active
そして、私は常に(ブール値)コースのみを取得したい
public class QueryHelperClass
{
public QueryOver<Course, Course> GetQuery()
{
Address studentAlias = null;
QueryOver<Course, Course> query = QueryOver.Of<Course>(() => courseAlias)
.JoinAlias(x => cus.Student, () => studentAlias)
.Where(x => courseAlias.IsActive);
return query;
}
}
GetExecutableQuery を実行して結果を返すだけであれば問題なく動作しますが、アクセスしてクエリを変更する必要がある場合はどうすればよいstudentAlias
でしょうか。
例:
public class SomeOtherClass
{
public List<Course> GetActiveCourseSummary(QueryOver<Course, Course> queryOver)
{
var query = queryOver.Where(a=> studentAlias.Name = "Bob");
...
}
}
から、SomeOtherClass.GetActiveCourseSummary
「ボブ」が登録されているコースのみを取得するようにクエリを変更したいと考えています。しかし、別の関数で定義されているため、studentAlias にアクセスできません。
ここで何ができますか、またはこれをすべて完全にハードコアに間違って設定していますか?