Должен ли я беспокоиться о пути обновления для LINQ (языка запросов)

StackOverflow https://stackoverflow.com/questions/620234

  •  03-07-2019
  •  | 
  •  

Вопрос

Я начинаю использовать LINQ как настоящий язык запросов в коде, чтобы улучшить читаемость.До недавнего времени я боялся прикасаться к LINQ из-за перехода команды LINQ to SQL в команду Entity Framework (пытаюсь игнорировать этот разговор здесь) - будет ли LINQ языком запросов надежной ставкой в будущем (как и все остальное в этой быстро развивающейся отрасли)?

Это было полезно?

Решение

Стоит различать " LINQ " и " конкретный поставщик LINQ " ;. Я думаю, можно с уверенностью сказать, что сам LINQ здесь, чтобы остаться - и это феноменально полезно для обработки коллекции в процессе через LINQ to Objects.

Что касается того, какой поставщик LINQ будет " win " (если есть) - коллировать сложнее.

Я бы наверняка изучил основы самого LINQ - и LINQ to XML также является прекрасным XML API.

Другие советы

Как сказал Джон, очень важно проводить различие между поставщиками LINQ.Например

  • ПРИВЯЗКА к объектам:Это основано на IEnumerable<T> и настолько укоренилось в BCL, что мне очень сложно добиться чего-либо подобного
  • ССЫЛКА на SQL:Я использую это далеко не так часто, как LINQ, но я знаю, что у него хорошие подписчики, и людям, похоже, это нравится.

Предостережение:Я работал над LINQ, так что здесь я довольно предвзят.

Что действительно примечательно в LINQ, в чем, я думаю, мы действительно правы, так это то, что любой может написать провайдера LINQ.Все, что нужно, - это несколько привязываемых методов с правильным именем, и внезапно у вас появляется синтаксис запроса.

var query = from it in someCollection select it.SomeProperty;

Я могу написать это утверждение, не используя какой-либо фреймворк 3.5.У меня есть мой собственный Провайдер LINQ который работает в рамках платформы 2.0 и совместим с синтаксисом запроса, используемым в компиляторе.

Лично я больше склоняюсь к методу лямбда / расширения synatx, но результирующий код на самом деле ничем не отличается.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top