Интересное разделение синтаксиса. Но в общем случае, думаю, я бы предпочел подход EF: LINQ прекрасен своим единообразием — не хочу изучать отдельный синтаксис LINQ под каждый ORM.
А насчет IN vs. Or — это нельзя рассматривать как преимущество NHibernate перед EF, это лишь преимущество провайдера под MySQL в NHibernate по сравнению с MySQL .NET Connector.
Я неточно выразился. Да, Group By на стороне сервера не происходит, но вызов LINQ-метода GroupBy на стороне сервера серьезно усложняет запрос. Вопрос в том, насколько целесообразно это усложнение.
Сортировка? А так ли она нужна? Насколько я понимаю реализация GroupBy из LINQ To Objects просто перебирает список подряд. К тому же, если все сводить к сортировке, то можно во вторую реализацию добавить перед AsEnumerable() вызов OrderBy(o => o.CustomerId).
Похоже, без benchmark'а не обойтись. Сейчас попробую прогнать на 10кк записей.
Я тоже так сначала подумал и реализовал первый вариант. Но обратите внимание, что в приведенном примере ввиду отсутствия функций агрегации использование GROUP BY получается вырожденным: GROUP BY на стороне сервера ровным счетом ничего нам не дает. Так зачем тогда лишний раз напрягать базу?
Чтобы стать нарушителем, достаточно лишь одной библиотеки. Можно потом годами отмаливать грехи, репортя баги и отсылая патчи, но варианта ответа на текущий опрос это не изменит.
Полагаю, обычно картина следующая. Ты находишь некоторую библиотеку (или продукт), которая реализует необходимый функционал, но при этом распространяется по GPL. Не-GPL аналогов нет, открыть исходники своего приложения не можешь/не хочешь, реализовать данный функционал самостоятельно не можешь/не хочешь. Дальше человек придает идеалы Open Source и нарушает GPL.
Интересный взгляд. Я в таком контексте не думал о семантике (или нужно брать в кавычки слово семантика? :) ). То есть вы клоните к тому, что RDF (как и OWL) являются лишь формой описания некоторой семантики (о которой договорились авторы и пользователи онтологии)? Если так, это во многом выглядит как придирка к моей фразе :) Ведь если RDF является формой представления некоторой семантики, то значит, что он несет в себе эту семантику.
А насчет IN vs. Or — это нельзя рассматривать как преимущество NHibernate перед EF, это лишь преимущество провайдера под MySQL в NHibernate по сравнению с MySQL .NET Connector.
Сортировка? А так ли она нужна? Насколько я понимаю реализация GroupBy из LINQ To Objects просто перебирает список подряд. К тому же, если все сводить к сортировке, то можно во вторую реализацию добавить перед AsEnumerable() вызов OrderBy(o => o.CustomerId).
Похоже, без benchmark'а не обойтись. Сейчас попробую прогнать на 10кк записей.
Хотя количество нарушителей меня тоже удивило.
Вернемся к RDF. Вот пример RDF-данных: <habr:Idsa> <habr:discussWith> <habr:CheatEx> Разве это выражение не несет семантики?