NHibernate を使用した非常に単純なシナリオがあります。
- 1 つの抽象基本クラス「動物」。
- 2 つの具体的なサブクラス "cat" と "dog" と識別子列 (1 つは犬用、2 つは猫用)。
- ノーマルクラスの人物1名。
人は多対一の動物を持っています。
犬を飼っている人のリストを取得したい。これどうやってするの?ありがとう
NHibernate を使用した非常に単純なシナリオがあります。
人は多対一の動物を持っています。
犬を飼っている人のリストを取得したい。これどうやってするの?ありがとう
私がよく理解していれば、このようなもの:
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