LinqToSql中的子查询是否保证与其父级的顺序相同?

Mik*_*e_G 2 .net c# linq linq-to-sql

假设我有一个带有DateTime字段和int字段的表,并执行如下查询:

var query = context.tblSomeTable.Where(s=>s.Name == "Hello World").OrderBy(s=>s.SignUpDate);
Run Code Online (Sandbox Code Playgroud)

如果我随后用结果执行两个子查询,它们是否仍按日期排序?:

var sub1 = query.Where(s=>s.Id = 5);
var sub2 = query.Where(s=>s.Id = 8);
Run Code Online (Sandbox Code Playgroud)

我的直觉说它们仍处于有序状态,但是如果原始查询已被迭代/执行了,这是否重要?

Jam*_*ran 7

是的,然而,说它们"仍然"被命令是错误的.他们最后订购一次.

关于LinqtoSql的重要注意事项是它只是构建一个查询,它在使用时执行.在您显示的示例中,您尚未实际使用该查询.你刚刚建立了两个大问题

他们都会生成这个SQL语句:

select * from tblSomeTable s
where s.Name = 'Hello World' and s.ID == @p1
order by s.SignUpDate
Run Code Online (Sandbox Code Playgroud)

使用sub1时,@ p1将设置为5

(实际上,'Hello World'也将作为参数传递......)