使用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;
//}
TestEntities db=new TestEntities(); var userinfo = db.UserInfo.Where<UserInfo>(u => u.ID == 1).FirstOrDefault();
来源:oschina
链接:https://my.oschina.net/u/4265555/blog/3978317