Динамический тип внутри запроса Linq-to-sql - PullRequest
4 голосов
/ 24 июня 2010

Я пытаюсь реорганизовать запрос, который в настоящее время использует отражение:

var dbObjects = from d in collection  
    where d.GetType().GetProperty("Id").GetValue(d, null) == id  
    select d;

Я хотел бы использовать динамическую типизацию для доступа к свойству Id для "d", не зная, какой тип "d" во время компиляции. Примерно так:

var dbObjects = from (dynamic)d in collection  
    where d.Id == id  
    select d;

Возможно ли это? ... и из интереса, это быстрее, или динамическое время выполнения использует отражение под капотом?

Спасибо

Alan

1 Ответ

2 голосов
/ 24 июня 2010

Динамический тип использует отражение под капотом, поэтому он не будет намного быстрее, если таковой имеется.Поэтому я думаю, что ваше выражение Linq-To-Sql должно работать нормально.Вы можете проверить это сообщение в блоге .Похоже, что DLR существует только для того, чтобы сделать ваш код более читабельным.

...