Последние комментарии

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


Rub

Мальчик научился писать запросы к массивам данных и считает что это круто, теперь наверно на всех блогах и форумах будет показывать, какой он умный. Обработка массивов запросом – это пятнышко на айсберге LINQ, а все ваши (не думаю, что вам больше 20 лет) примеры это обработка структурированных данных в памяти. Когда начнёте работать программистом, то поймёте, что большинству требуется работать с базами данных и очень много времени уходит на написание запросов к базе данных. Обработка массивов информации и примеры, что вы описали нужны очень редко или если вы не знаете SQL.


Михаил Фленов

Последний раз говорю, используйте LINQ без проблем для чего угодно, но не для запросов к базам данных. То, что ты перечислил, это все работа с массивами данных (я надеюсь) не полученных из базы данных. Если данные можно обработать на стороне сервера нормальным SQL, то они должны обрабатываться на сервере нормальным SQL. Если для тебя перечисленное - это айсберг, то пусть будет айсбергом.

Я не против использования в перечисленных тобой случаях, потому что код действительно получится небольшим, а если не знаешь базовых алгоритмов, то еще и быстрее. Но даже зная алгоритмы, каждый раз изобретать колесо не нужно, когда есть LINQ и хочется его использовать.

Прежде чем писать подобные комментарии, прочитайте пожалуйста еще раз что я написал. Я не рекомендвал, не рекомендую и не планирую рекомендовать эту фигню для написания запросов к базе данных. Если же вы решитись на это, то это ваши личные проблемы, я никому ничего не запрещаю.


Bush

Я часто использую Linq в следующих ситуациях (имея на руках некий IEnumerable<T>):
1. Нужно выполнить некоторую несложную операцию над всеми элементами перечисления, после чего результат обработки отфильтровать по некоторому условию и на основе результата создать перечисление экземпляров совершенно иного типа (например члены анонимного класса). "Несложную операцию" как правило юзаем в виде лямбда-выражения.
Как правило, код получается небольшой, в одну-три строки, вполне удобочитаемый, поскольку я использую не синтаксис "аля SQL", который на мой взгляд уродлив, а точечную нотацию - такой код читается последовательно и весьма понятен.

2. Просто выполнить некоторые действия над всеми или некоторыми, выбранными по определённому условию элементами перечисления.

3. Преобразовать список в массив, либо массив в словарь, либо др. подобное действо.

4. Очень удобно выполнять группирование, объединение, пересечение, выборку уникальных записей.

5. Весьма полезны и "ленивые" вычисления (надеюсь не нужно пояснять, что это такое).

6. Про удобство работы с XML даже пояснять не буду - оно весьма очевидно.

А вообще, мне кажется, что тема обусловлена тем, что автор (не в обиду сказано) не разобрался как следует в технологии LINQ. Нельзя судить о всём айсберге, видя лишь его маленький кончик, торчащий из воды, и при этом неудачно кем-то где-то применённый (причём не факт, что применённый грамотно).

имхо


Bush

Я написал по указанной тобой ссылке.


Михаил Фленов

Если обрабатывать данные не базы данных, то используйте LINQ, если он нравится. Большинство программистов лучше чем то, что реализовано в LINQ все равно код не напишут.


Pushok

Ну в линке я тоже ничего мощного не увидел. Он все равно генерит SQL для доступа к данным. Так почему бы не писать сразу на SQL и не использовать различных программных передастов типа linq. Ведь основная его задача просто интегрировать язык запросов прямо в .NET и заниматься передастизмом - передавать C# мысли программиста в SQL.

Это лишь при работе с SQL запросами. А обработка коллекций, перечислений, возможность парсинга лямбд и дальнейшего их использования в LINQ?


Денис

Насколько я по помню, в LINQ to Entities есть возможность самому писать SQL-запросы на выборку, а результатом будет не набор данных, а набор сущностей. Разве это не мощь? Если нет, то выбирай
ado.net данные, и строки преобразуй в сущности. Если предметка сложная, геморрой тебе обеспечен. А
с LINQ to SQL согласен - это масло масленное....


Михаил Фленов

Ну в линке я тоже ничего мощного не увидел. Он все равно генерит SQL для доступа к данным. Так почему бы не писать сразу на SQL и не использовать различных программных передастов типа linq. Ведь основная его задача просто интегрировать язык запросов прямо в .NET и заниматься передастизмом - передавать C# мысли программиста в SQL.


Pushok

Что значит мощная? обладает какими-то супер возможностями, которые нельзя сделать просто в ADO.NET? На сколько я помню, это просто фреймворк и надстройка над ADO.NET

Я имелл ввиду LINQ - мощная технология. EF можно и без LINQ использовать :)


Александр из NNov

Здравствуй, Михаил!
У тебя интересный блог - живой. Интересно когда была написана вот эта статья http://www.flenov.info/favorite.php?artid=35 и правдали что в Java в России не прижился?
Прости, что не в тему, но интересно как дела обстоят по твоему мнению. Приду комментарий проверю:)) Эт к тому, что жду ответа.


О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне