private IQueryable<T> BuildQuery(Expression<Fun<T,bool>> specification)
        {
            IQueryable<T> data = Session.Query<T>();
            if (filterSpecification != null)
            data = data.Where(filterSpecification.IsSatisfiedBy());
            return data;
        }
这段代码好像是,将数据库中的所有记录(对象)读取到Queryable集合中,然后再根据表达式树从集合中筛选出符合要求的记录? 如果NHIbernate设置了延迟加载的话,也是这样吗?如果有1万条数据,也要全部加载到内存中吗?问题2: 关于NHIbernate的性能
由于NHibernate是基于面向对象的ORM框架,处理数据库的方式是针对单个对象的。对数据库的增、删、改都是正对一条记录而言。对于批量修改、删除数据,不适合用NHiberante。这也是所有OR框架弱点,其原因,我认为是在于与缓存机制的冲突。这句话怎么理解?为什么说,所有的ORM工具都不适用于批量操作呢?这里的批量,是指删除的时候,删除一个List吗?在使用Nhibernate的时候,用循环一个个的对象删除,但是这是一个session中,也就是一个connection中。在ADO.NET中,不也是一个connection中吗?