使用新的API QueryOver
在NHibernate的,我需要做一些事情當量:實施「其中不存在」與NHibernate QueryOver
換句話說:「給我一個不包含狗的所有類別餐飲」。
我最初的想法是這樣的:
IEnumerable<Category> FindCategoriesWithoutProduct(Product product)
{
return _session
.QueryOver<Category>()
.Where(c => c.Products.Contains(product))
.List();
}
然而,這使得NHibernate.Impl.ExpressionProcessor
吹了一個「無法識別的方法調用」上System.Collections.Generic.ICollection<T>.Contains()
。
我認爲必須有其他方式來做到這一點,可能涉及ICriterion
,但我在這裏和谷歌的搜索沒有任何用處。
「cp.CategoryID = c.Id」限制在哪裏?不應該在分離的查詢中有「Where(()=> categoryProductAlias.CategoryID = categoryAlias.ID)」嗎? – psousa 2011-04-14 08:12:38