Здравствуйте, вопрос о том же условии, используя лямбда-выражение.
Я надеюсь, что вы можете ответить на этот пост как можно скорее (это немного срочно)
Мой вопрос заключается в том, как делать подобные запросы, я понимаю, яМожно использовать старты с, содержит и т. д. или sqlmethods, как.Но как использовать их в лямбда-выражении.
Например, например: сущность Person содержит имя, в приведенном ниже примере я ищу person.name = 'john'.
Но пользователь может выбратьлюбой оператор во время выполнения для сравнения (например, равно, начинается с, заканчивается и т. д.) Например.это может быть person.name = 'john' или person.name, например, 'j%', или person.name, например, '% j', или person.name содержит '% jo%'
, как я могу построить динамический запрос,Можете ли вы изменить код выше и дайте мне знать.Поскольку я совсем новичок в linq, я не очень хорошо понимаю лямбду.
Ваша помощь приветствуется.
Исходный код -
DataContext context = new DataContext // linq to sql data context.
Query<Person> q = new Query<Person>(context);
Expression<Func<Manufacturer, bool>> expn = DynamicExpression.ParseLambda<Manufacturer, bool>(condition, value); //condition is "name=@0", value = string[] i.e - "john"
q.Where = expn;
return q.SingleOrDefault<Person>();
например, expn is name =@ 0, но я хочу сделать имя как '% @ 0%' как?
Класс запроса выглядит следующим образом
public Expression<Func<T, bool>> Where
{
set { m_where = value; }
}