1
我想根據列表的內容查詢一組結果,我已經設法爲類Foo
的單個實例執行此操作,但我不確定我會怎麼做IList<Foo>
。如何在nHibernate中設置標準以查詢多個值
所以對於類Foo
的單個實例,這個工程:
public ICriteria CreateCriteria(Foo foo)
{
return session
.CreateCriteria<Component>()
.CreateCriteria("Versions")
.CreateCriteria("PublishedEvents")
.Add(Restrictions.And(Restrictions.InsensitiveLike("Name", foo.Name, MatchMode.Anywhere),
Restrictions.InsensitiveLike("Type", foo.Type, MatchMode.Anywhere)))
.SetCacheable(true);
}
但是我怎麼做到這一點時,方法參數是Foo
列表?
public ICriteria CreateCriteria(IList<Foo> foos)
{
return session
.CreateCriteria<Component>()
.CreateCriteria("Versions")
.CreateCriteria("PublishedEvents")
.Add(Restrictions.And(Restrictions.InsensitiveLike("Name", foo.Name, MatchMode.Anywhere),
Restrictions.InsensitiveLike("Type", foo.Type, MatchMode.Anywhere)))
.SetCacheable(true);
}
有沒有更好的方法來做這種事情? – AwkwardCoder 2010-05-06 10:43:04
唯一的選擇是使用Restrictions.In()並傳入集合,但由於您正在執行InsensitiveLike,因此您需要追加每個查詢。如果你編寫實際的SQL你需要做出這個請求,上面的方法非常合理。 – lomaxx 2010-05-06 10:44:57