LINQ to Entities - Адресация свойств класса с их строковыми именами
У меня есть сетка Kendo, в которой включена фильтрация на стороне сервера. Поле для фильтрации передается в виде строки. Например, я хочу фильтровать поSampleId», Теперь мне нужно написать запрос LINQ to Entities, который можно фильтровать, используя строго типизированное свойство SampleId. Например:
db.Cases.Where(x=>targetlist.Contains(x.SampleId))
где targetlist - это список элементов из фильтра.
Так что, по сути, есть ли способ написать запрос, который "SampleId» можно напрямую перевести на Case.SampleId?
Я попытался отражения и использовал GetProperty и GetValue и LINQ to Entities не нравится.
Любые предложения будут высоко оценены!
РЕДАКТИРОВАТЬ (по pid для оригинального плаката srinaik2020):
@zaitsman: это код, размещенный в комментарии ниже, и это реальное решение проблемы, основанное на принятом ответе.
public static class MyExtensions
{
public static string GetPropertyByName(this CaseV case1, string name)
{
var x = typeof (CaseV).GetProperty(name).GetValue(case1);
if (x != null)
{
return x.ToString();
} else {
return "none";
}
}
}