TEntity Single(Expression<Func<TEntity, bool>> predicate);
Run Code Online (Sandbox Code Playgroud)
请解释参数.
所以,这里有很多内容,但让我们从内部开始:
Func<TEntity, bool>是一个接受输入的委托,该类型是通用的,所以我们只是调用它TEntity.没有任何约束,这可以是任何东西,但是强类型的东西.
一个级别是Expression<Func<TEntity, bool>>.这是表达式树,它被强类型化为一个委托,它接受一个输入并返回一个bool.换句话说,它是表示函数的表达式树(回想您的编译器课程).
最后,最外层:TEntity Single(Expression<Func<TEntity, bool>> predicate)是一个被调用的方法Single,它以表达式的形式获取谓词函数.返回的内容与传递给该函数的类型相同.
本质上,Single将采用您的表达式,编译它并针对一组数据执行它,返回集合中与谓词表达式匹配的第一个实体.
希望这可以帮助?