Linq 易读和易读
哪种方法更好Linq 易读和易读,linq,iqueryable,isession,Linq,Iqueryable,Isession,哪种方法更好 ISession session = SessionController.Factory.OpenSession(); IQueryable<myObject> myObjectdquery; ISession session=SessionController.Factory.OpenSession(); IQueryable myObjectdquery; 一, myObjectquery=session.Query(); myObjectquery=myObj
ISession session = SessionController.Factory.OpenSession();
IQueryable<myObject> myObjectdquery;
ISession session=SessionController.Factory.OpenSession();
IQueryable myObjectdquery;
一,
myObjectquery=session.Query();
myObjectquery=myObjectquery.Where(x=>x…)
或
二,
myObjectquery=session.Query()。其中(x=>x…);
我不确定我的逻辑是否正确,但在第一种方法中,myObjectquery首先“填充”数据,然后进行查询,在第二种方法中,跳过一个步骤,myObjectquery仅填充必要的数据。关键是什么更快
一,
myObjectquery=session.Query()myObjectquery= myObjectquery.Where(x=>x…)或 二, myObjectquery=session.Query(),其中(x=>x…) 它们是完全一样的东西,看看吧。如果您已经知道了这一点,并且想要选择使用哪一个,请选择第2个,这样更容易准备,并且代码行更少
注意:在第一个示例中,您的查询“填充”了数据,但不在内存中,所以这无关紧要。所以是的,这是一样的。没有区别。在这两种情况下,您在
session
上调用Query
,并在调用结果上调用Where
。“在第一个示例中,您的查询“填充”了数据,但不在内存中”这是什么意思?变量只引用了一个查询,没有数据,在内存中或其他地方。是的,我同意你的看法。他写道:“我不确定我的逻辑是否正确,但在第一种方法中,myObjectquery首先“填充”数据,然后被查询”。我只是告诉他这没什么区别,因为实际上根本没有加载任何数据。
myObjectquery = session.Query<myObject>();
myObjectquery = myObjectquery.Where(x=>x....)
myObjectquery = session.Query<myObject>().Where(x=>x...);