linq之like操作
时间: 2023-07-01 14:19:51 浏览: 212
在LINQ中,可以使用Like操作符来进行模糊查询。但是需要注意的是,Like操作符并不是标准的LINQ操作符,因此需要使用第三方库或自定义查询扩展方法来实现。
以下是一个自定义查询扩展方法的示例,可以实现Like操作符:
```csharp
public static class LinqExtensions
{
public static IQueryable<T> WhereLike<T>(this IQueryable<T> query, Expression<Func<T, string>> propertySelector, string value)
{
var method = typeof(string).GetMethod("Contains", new[] { typeof(string) });
var containsExpression = Expression.Call(propertySelector.Body, method, Expression.Constant(value));
var lambda = Expression.Lambda<Func<T, bool>>(containsExpression, propertySelector.Parameters);
return query.Where(lambda);
}
}
```
使用示例:
```csharp
var users = context.Users.WhereLike(u => u.Name, "John");
```
上述代码将会查询出所有名字中包含“John”的用户。
阅读全文