2012-06-27 3 views
-3

У меня есть большой вопрос, который долгое время озадачивал меня и что я не могу получить прямой ответ нигде, и я уверен, что если кто-то сможет ответить на него, авторитет и с хорошими примерами, что это поможет не только мне, но и тысячам разработчиков. Все, что я хочу знать, каковы характеристики следующих понятий и каковы различия между нимиLinq to ... и Lambda Expressions

Linq

Linq для SQL

Linq к Entities

Linq to Objects

лямбда-выражений

Кроме того, в частности, может кто-то сказать нам, где конструкции, такие, как они попадают в вышеуказанные категории

Construct 1

var result = from n in nums 
      where n < 5 
      orderby n 
      select n; 

Construct 2

Entities.Person.Where(p => p.FirstName == "John").First(); 

Ваши изученные разъяснения с нетерпением ждут.

+0

Я не спускал вниз, но ваш вопрос общий (переполнение стека связано с конкретными проблемами программирования), и на него можно ответить, просто сделав немного поиска и чтения – Guillaume86

ответ

3

Я уверен, что есть некоторые более-упрощений здесь, но для чего это стоит:

Linq является API предназначен для работы с наборами данных. IQueryable, например, происходит из пространства имен System.Linq. Linq to ... - это разные реализации, которые анализируют одни и те же инструкции Linq для выполнения различных операций на основе того, как хранятся ваши данные. Так Linq к SQL будет анализировать вашу .Where инструкцию, чтобы произвести SQL-запрос с пунктом WHERE, в то время как Linq к объектам бы ту же самую инструкцию и произвести foreach.

A лямбда-выражение - довольно короткое сокращение для анонимного делегата. Вы определяете лямбда оператором =>. Список аргументов находится слева от =>, и выражение, которое может обращаться к этим аргументам и, при необходимости, возвращать результат, находится справа.

Ваши два примера кода - это разные синтаксисы, в которых могут быть записаны запросы Linq. Они называются синтаксисом запроса и синтаксисом метода, соответственно.

Смежные вопросы