2010-06-29 2 views
0

Я хочу, чтобы указать свойства, которые нужно заполнить/обновить в выражении linq. Что-то в следующем виде:Задание свойств для обновления в запросе linq

Proxy.UpdateEmployee(List<string> propertiesNames) 
Proxy.GetEmployee() //inside the method populate only certain properties 

возвращаемые значения должны быть известного типа (не анонимные типы не принимаются). DLINQ позволяет выбирать, указывая имена свойств, но в результате есть интерфейс IQueryable, и я не могу выполнить AsEnumerable(), чтобы впоследствии создать запрос типа.

ответ

0

Вы должны использовать отражение для изменения свойств экземпляра по имени. Где бы вы обновляете свой объект с помощью LINQ вам нужно сделать что-то вроде этого:

foreach (string propName in propertiesNames) 
{ 
    PropertyInfo prop = this.GetType().GetProperty(propName); 
    prop.SetValue(valueForProp); 
} 
+0

спасибо за предложение. Пробовал этот подход, появляется медленнее и производит нежелательные побочные эффекты ... –

+0

Что вы имеете в виду производит нежелательные побочные эффекты? Медленно, чем что? Это единственный способ изменить объект, учитывая имена строк изменяемых свойств. –

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