On your code, you really need to move on to the definition. The function used for LINQ-to-SQL and for the Entity Framework,
IQueryable<TSource> Where<TSource>(this IQueryable<TSource> source, Expression<Func<TSource, bool>> predicate)
System.Linq.Queryable, , , "" . :
, node , , x < .
,
var products = context.Products.Where(p => p.Location == "France");
# :
ParameterExpression par = Expression.Parameter(typeof(Product), "p");
LambdaExpression lambda = Expression.Lambda(
Expression.Equal(
Expression.Property(par, "Location"),
Expression.Constant("France")),
par);
var products = context.Products.Where(lambda);
... , ( ) - . . :-)
- . . ExpressionVisitor, . LINQ , .
, IL ( "".NET) , (., , IlSpy). , , DelegateDecompiler, , LINQ-to -SQL EF - SQL.