2010-01-12 2 views
2

Почему это синтаксис свойства Select в LinqDataSource, отличный от Linq, я бы написал inline в C#? Я имею в виду, как:LinqDataSource Выберите синтаксис

new (Id As MyId, Name As MyName) 

против

new (MyId = Id, MyName = Name) 

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

Я бы ожидал, что что-то, называемое LinqDataSource, просто позволит вам предоставить скомпилированный запрос Linq и выполнить его.

Также я не смог найти документацию по синтаксису того, что ожидается для свойства Select, кроме самых простых случаев сглаживания полей. Команда Linq Concat не работает, и было всего лишь удачей, что я нашел блог, в котором кто-то выяснил альтернативу. Поэтому в будущем, когда вы пытаетесь сделать какие-либо другие манипуляции, я в значительной степени могу принимать только дикие догадки в темноте.

ответ

1

Я думаю, что это связано с тем, что ключевое слово as уже имеет другое значение в языке. Выбранный синтаксис напоминает синтаксис параметров по умолчанию (.net 4.0) и довольно ясный IMHO.

Обратите внимание, что этот явный синтаксис необходим только тогда, когда имя свойства для анонимного типа не может быть выведено или является неопределенным.

+0

Это довольно ясно, когда вы читаете его, но когда вы идете построить свой собственный запрос, используя стандартные операторы LINQ, а LinqDataSource не понимает их, тогда расхождение становится проблемой. Это становится угадающей игрой. Где синтаксис, используемый LinqDataSource документированным? Является ли это синтаксисом VB LINQ? – AaronLS

+0

Что именно ваш вопрос? –

+1

Это первый вопрос в верхней части моего сообщения. Позвольте мне перефразировать это так, почему это не работает в LinqDataSource: «new (Name = (FirstName +» «+ LastName», EmployeeID) « И, как я спросил в комментарии, где есть вкус LinqDataSource Линк задокументирован? Использует ли он синтаксис VB LINQ? – AaronLS

Смежные вопросы