0

NHibernate を使用した非常に単純なシナリオがあります。

  • 1 つの抽象基本クラス「動物」。
  • 2 つの具体的なサブクラス "cat" と "dog" と識別子列 (1 つは犬用、2 つは猫用)。
  • ノーマルクラスの人物1名。

人は多対一の動物を持っています。

犬を飼っている人のリストを取得したい。これどうやってするの?ありがとう

4

1 に答える 1

0

私がよく理解していれば、このようなもの:

var list = session.CreateCriteria(typeof(Person))
    .CreateCriteria("Animal")
        .Add(Expression.Eq("discriminatorField", 1))
    .List<Person>();

上記は「Criteria API」ですが、「HQL」を使用できます。これは、次のようなものです。

StringBuilder query = new StringBuilder();
query.Append("from Person pers where ");
query.Append("from Animal ani ... and :wichAnimal");
query.Append("and cus.IsActive = :wichAnimal");

IList<Person> list = session
    .CreateQuery(query.ToString())
    .SetInt16("wichAnimal",1)
    .List<Person>(); 

HTH

于 2009-08-26T06:07:05.920 に答える