在Linq to Nhibernate中,以可重用的方式选择映射的nhibernate对象到结构中的最便宜的方法是什么?

时间:2016-02-10 21:09:56

标签: nhibernate linq-to-nhibernate nhibernate-4

我注意到如果我正在进行一些繁重的计算,排序或涉及大量数据库对象的事情,如果我只选择我需要的结构或类,那就快得多。

例如我可以这样做:

List<FastObject> testList = session.Query<NHObject>().Select(x => new FastObject{A = x.A, B = x.B}).ToList();

但这不是非常可重复使用。

假设我尝试了几件事。

第一:选项1

FastObject NHObject2FastObject(NHObject toConvert)
{
     return new FastObject{A = toConvert.A, B = toConvert.B}
}

  List<FastObject> testList = session.Query<NHObject>().Select(x => NHObject2FastObject(x)).ToList();

选项2:

Expression<Func<NHObject, FastObject>> NHObject2FastObjectExp = x => new FastObject{A = x.A, B = x.B};

List<FastObject> testList = session.Query<NHObject>().Select(NHObject2FastObjectExp).ToList();

Nhibernate是否足够智能以避免在选项2中实例化完整的NHObject?这个过程大致相同吗?有没有更快的方法呢?

0 个答案:

没有答案