Синтаксическая последовательность LINQ - PullRequest
2 голосов
/ 26 сентября 2008

следующий SQL

SELECT * FROM customers

конвертируется в LINQ

var customers = from c in customers 
                select c;

Есть ли у них какие-либо веские причины, по которым поменяется местами from и select?

Единственная логическая причина, которую я могу придумать, это для intellisens? Чтобы интеллектуальные решения были решены, ему нужно знать, к чему они обращаются (область действия)?

Есть ли другие причины, по которым он был заменен?

1 Ответ

9 голосов
/ 27 сентября 2008

Выбор поменялся местами, потому что он представляет порядок вызовов метода, который представляет синтаксис запроса LINQ.

Это эквивалентно

customers.Select(c=>c);

или

customers.Select();

SQL сходит с рук, обрабатывая весь оператор перед продолжением, но для того, чтобы получить такие вещи, как intellisense и выяснить, является ли ваш выбор допустимым, он должен быть последним, а не первым.

Возможно, вы захотите взглянуть на FLWOR, который представляет собой более близкое представление, которое обозначает для , let , , где , orderby и возврат . Вы заметите, что для , что эквивалентно from, является первым; и return , который эквивалентен select, является последним.

SQL здесь больше аномалия. Как узнать, над чем вы работаете, прежде чем указывать свой домен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...