Lambda查询

使用EF查询数据库,之前使用Linq表达式,现在改成另一个种方法查询:Lambda表达式

TestEntities db=new TestEntities();
var userinfo = db.UserInfo.Where<UserInfo>(u => u.ID == 1).FirstOrDefault();

其中Where方法是扩展方法。

public static IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate);

扩展方法的第一个参数前必须加this关键字,紧跟着是类型表示这个方法是给哪个类型扩展的。后面的参数才表示调用这个方法的时候传的参数。

在第二个参数中,Expression表示Lambda表达式树。Func<TSource, bool>是委托,需要一个TSource类型的委托,结果返回bool类型。

// public delegate int AddSum(int a, int b);
static void Main(string[] args)
{
Program p = new Program();
// AddSum addSum = new AddSum(p.GetSum);
// AddSum addSum = delegate(int a, int b) { return a + b; };
// AddSum addSum = (int a, int b) => { return a + b; };
// int result = addSum(3, 6);

Func<int, int> f = a => a + 1;
int result=f(5);

Console.WriteLine(result);
Console.ReadKey();

}
//public int GetSum(int a, int b)
//{
// return a + b;
//}
View Code

 

TestEntities db=new TestEntities();            var userinfo = db.UserInfo.Where<UserInfo>(u => u.ID == 1).FirstOrDefault();

posted @ 2018-05-09 23:41  DreamGiant  阅读(371)  评论(0编辑  收藏  举报