0

ネストされたプロパティでQueryOverを使用する簡単な方法はありますか?

たとえば、私はこのようなことを試みます。

// SPLAT!
session.QueryOver<SuperHero>().Where(Expression.Eq("HomeBase.Name", "Bat Cave");

'SuperHeroのプロパティ'homebase.name'を解決できなかったため、機能しません。それは理にかなっていますが、これを機能させる方法は明らかにあります。古い「クエリ」アプローチを使用すれば、問題なく機能させることができるからです。

// The results I (technically) want.
sess.Query<SuperHero>().Where(x => x.HomeBase.Name == "The Bat Cave");

だから私は何が欠けていますか?式などを組み合わせて次のプロパティをQueryOverで動作させる方法があると思いますが、それらは何ですか?

4

1 に答える 1

3

このようなネストされたプロパティアクセスを行うことはできません。関連するテーブルに参加する必要があります。

session.QueryOver<SuperHero>()
    .JoinQueryOver(sh => sh.HomeBase)
        .Where(hb => hb.Name == "Bat Cave");

また、制限に文字列を使用する必要はありません。これは、結局、QueryOverを使用することの大きな利点の1つです。

于 2013-03-08T15:13:50.010 に答える