使用Linq to sql 和Linq to entity 时候写的拓展方法
2012-05-21 11:19
686 查看
public static class PredicateBuilder
{
public static Expression<Func<T, bool>> True<T>() { return f => true; }
public static Expression<Func<T, bool>> False<T>() { return f => false; }
public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> expr1,
Expression<Func<T, bool>> expr2)
{
var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());
return Expression.Lambda<Func<T, bool>>
(Expression.Or(expr1.Body, invokedExpr), expr1.Parameters);
}
public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> expr1,
Expression<Func<T, bool>> expr2)
{
var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());
return Expression.Lambda<Func<T, bool>>
(Expression.And(expr1.Body, invokedExpr), expr1.Parameters);
}
public static Predicate<T> ConvertToPredicate<T>(this Func<T, bool> func)
{
return new Predicate<T>(func);
}
}
{
public static Expression<Func<T, bool>> True<T>() { return f => true; }
public static Expression<Func<T, bool>> False<T>() { return f => false; }
public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> expr1,
Expression<Func<T, bool>> expr2)
{
var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());
return Expression.Lambda<Func<T, bool>>
(Expression.Or(expr1.Body, invokedExpr), expr1.Parameters);
}
public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> expr1,
Expression<Func<T, bool>> expr2)
{
var invokedExpr = Expression.Invoke(expr2, expr1.Parameters.Cast<Expression>());
return Expression.Lambda<Func<T, bool>>
(Expression.And(expr1.Body, invokedExpr), expr1.Parameters);
}
public static Predicate<T> ConvertToPredicate<T>(this Func<T, bool> func)
{
return new Predicate<T>(func);
}
}
相关文章推荐
- Silverlight + WCF使用Linq to SQL以及ADO.NET Entity Data Model更新数据库子表方法
- 学习并使用了两种linq to entity 的实现sql关键字in的查询方法
- 学习并使用了两种linq to entity 的实现sql关键字in的查询方法
- Linq To Sql常用方法使用总结
- 在LINQ to SQL中使用Translate方法以及修改查询用SQL 推荐
- linq to sql: 在Entityfamework Core中使用多个DbContext
- [转自JeffreyZhao]在LINQ to SQL中使用Translate方法以及修改查询用SQL
- Linq To Sql常用方法使用总结
- Linq to entity 中 实现 Sql 中的like 的两个方法小解
- Linq To Sql常用方法使用总结
- 在LINQ to SQL中使用Translate方法以及修改查询用SQL
- Linq To Sql常用方法使用总结【转】
- 扩展LINQ to Entity:使用Lambda Expression批量删除数据------让微软帮我们生成T-SQL语句
- Linq To Sql常用方法使用总结
- 在LINQ to SQL中使用Translate方法以及修改查询用SQL (转)
- 使用扩展方法对Linq to SQl Classes扩展,使其在增删改时返回结果
- Silverlight + WCF使用Linq to SQL以及ADO.NET Entity Data Model更新数
- 分别使用ADO.Net Entity Data Model 和Linq to Sql 建立数据访问层
- asp.net MVC + linq to Entity简单教程(四)linq to Entity查询中其它方法的使用
- 在使用Linq to SQL并序列化一个数据对象的时候报System.InvalidOperationException异常,序列化类型XXX的对象时检测到循环引用。