次のようなクラスがあるFoo
とBar
します。
public class Foo
{
public string F1 {set; get;}
public string F2 {set; get;}
public Bar ContainerBar {set; get;}
}
public class Bar
{
public string B1 {set; get;}
public string B2 {set; get;}
public List<Foo> Foos {set; get;}
}
次の linq クエリにはfoo
、 という名前のプロパティが含まれていないというエラーがありますF1
。
var query = from foo in session.Linq<Foo>()
select foo.ContainerBar;
query = query.Where(foo => foo.F1 == "abcdef");
クエリが選択foo
するため、2 番目のステートメントが実際には a であることはわかっています。Bar
ContainerBar
問題は、元のクエリを変更せずにクエリに動的な where 句を追加するにはどうすればよいかということです。最終的な目標は、linq-to-nhibernate を使用してサブクエリを作成することです。