MonoRail - 如何获取列不为空的记录

时间:2010-05-27 01:48:07

标签: castle-activerecord

在MonoRail / Active Record中,如果我想获取某个列等于null的所有记录,我可以这样做:

public static Category[] AllParentCategories()
        {
            return (FindAllByProperty("Parent.Id", null));
        }

但是,如果我想获取该列不等于null的所有记录,该怎么办?我无法弄清楚如何使用这个FindAllByProperty方法做到这一点,是否有另一种方法更灵活或使用类似linq的查询语言获取记录?

谢谢, 贾斯汀

1 个答案:

答案 0 :(得分:1)

在NHibernate 2.1(以及扩展名为Castle ActiveRecord)中,您基本上可以选择三种查询API:

有标准:

return ActiveRecordMediator<Category>.FindAll(Restrictions.IsNotNull("Parent"));

Linq:

return (from c in ActiveRecordLinq.AsQueryable<Category>() 
        where c.Parent != null 
        select c).ToArray();

要获得Linq支持,您需要NHibernate.Linq.dll和Castle.ActiveRecord.Linq.dll(最新的ActiveRecord版本包含所有内容)。