Что нового
  • Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

My Top 10 Aurelius Features - #2 Linq Projections

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,071
Баллы
155
Возраст
51
LINQ Projections is the runner-up feature of

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

. It's a sort of "sequel" of the #5 feature

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

, and you can see it in action in the video below.



You could consider that "LINQ Expressions" and "LINQ Projections" are just sides of the same feature. That's not incorrect indeed. But LINQ is a so nice feature of TMS Aurelius that it deserved to be split in two parts. And the reason that projections (and not expression) is ranked higher is just because it's at the core of LINQ.

The coolness of LINQ is more due projections than expressions in my opinion. An expression is actually just a comparison of two projections. It's in the projections that all complexity lies in. And it allows beautiful and complex queries like the following to be written:

Get the unit price and quantity of each order detail, multiply them, and group the sum of it by the year of Order Date.

Manager.Find<TOrder>
.CreateAlias('OrderDetails', 'd')
.Select(TProjections.ProjectionList
.Add(Linq['OrderDate'].Year.Group.As_('Group'))
.Add((Linq['d.UnitPrice'] * Linq['d.Quantity']).Sum.As_('Value'))
)
.Where(Linq['OrderDate'].Year._In([1997, 1998]))
.OrderBy('Value')

Yes, projections allow you to do grouping, counting, sum, arithmetic operations, extract information from dates like year, month, day, from strings like substring, pos, etc.

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

. And everything just translated correctly to the underlying SQL syntax!

Cool, isn't it? You can see queries like the ones above in action, by watching the video above. Don't forget to subscribe to our

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

to get notified about upcoming videos!


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх