позволяет сказать, что у меня есть таблица с полем DateTime и полем Int и выполнить запрос следующим образом:Подзапросы в LinqToSql гарантированы в том же порядке, что и их родитель?
var query = context.tblSomeTable.Where(s=>s.Name == "Hello World").OrderBy(s=>s.SignUpDate);
если я затем выполнить два подзапрос с результатом, они до сих пор упорядоченные по дате ?:
var sub1 = query.Where(s=>s.Id = 5);
var sub2 = query.Where(s=>s.Id = 8);
В моей кишке говорится, что они все еще в порядке, но имеет ли значение, если исходный запрос был повторен/выполнен еще?
Это довольно легко проверить с помощью SQL Server Profiler. Поместите точку останова в свой код, где вы создаете свой запрос LINQ, а затем пройдите через каждую строку во время просмотра профилировщика. Вы точно узнаете, когда запрос попадает в базу данных. Это отлично подходит для отладки запросов, так как вы можете видеть их и захватывать их из профилировщика. – Jagd
Есть ли что-нибудь в документации, в которой говорится, что предложение Order By будет отброшено до конца? Учитывая тот факт, что L2S обычно пытается сделать «вещь, которая имеет смысл», я бы предположил, что это нужно, но если она не указана, не зависеть от нее и переместить ваш «порядок» до конца ... –
Оператор SQL выполняется только один раз - когда запрос фактически используется (например, в инструкции foreach или с вызовом .ToList() –