Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 易读和易读_Linq_Iqueryable_Isession - Fatal编程技术网

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...);