Почему это синтаксис свойства Select в LinqDataSource, отличный от Linq, я бы написал inline в С#? Я имею в виду:
new (Id As MyId, Name As MyName)
против
new (MyId = Id, MyName = Name)
И синтаксис расходится больше, когда вы начинаете делать что-то вроде конкатенации в проекции. Я использую это с моделью данных сущности в качестве поставщика, если это имеет к этому какое-либо отношение.
Я бы ожидал, что что-то, называемое LinqDataSource, просто позволит вам предоставить скомпилированный запрос Linq и сделать с ним.
Также я не смог найти документацию по синтаксису того, что ожидается для свойства Select, кроме самых простых случаев сглаживания полей. Команда Linq Concat не работает, и было всего лишь удачей, что я нашел блог, в котором кто-то выяснил альтернативу. Поэтому в будущем, когда я пытаюсь сделать какие-либо другие манипуляции, я в значительной степени могу только принимать дикие догадки в темноте.
Я думаю, что это потому, что ключевое слово as
уже имеет другое значение в языке. Выбранный синтаксис напоминает синтаксис параметров по умолчанию (.net 4.0) и довольно ясный IMHO.
Обратите внимание, что этот явный синтаксис необходим только тогда, когда имя свойства анонимного типа не может быть выведено или является неопределенным.