CreateObjectQueryConstant() приватный статический Метод

Takes a DbQuery{T} or DbQuery and creates an expression for the underlying ObjectQuery{T}.
private static CreateObjectQueryConstant ( object dbQuery ) : Expression
dbQuery object
Результат System.Linq.Expressions.Expression
Пример #1
0
 protected override Expression VisitMember(MemberExpression node)
 {
   Check.NotNull<MemberExpression>(node, nameof (node));
   PropertyInfo member = node.Member as PropertyInfo;
   MemberExpression expression = node.Expression as MemberExpression;
   if (member != (PropertyInfo) null && expression != null && (typeof (IQueryable).IsAssignableFrom(member.PropertyType) && typeof (DbContext).IsAssignableFrom(node.Member.DeclaringType)))
   {
     DbContext constantExpression = DbQueryVisitor.GetContextFromConstantExpression(expression.Expression, expression.Member);
     if (constantExpression != null)
     {
       Expression objectQueryConstant = DbQueryVisitor.CreateObjectQueryConstant(member.GetValue((object) constantExpression, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, (Binder) null, (object[]) null, (CultureInfo) null));
       if (objectQueryConstant != null)
         return objectQueryConstant;
     }
   }
   return base.VisitMember(node);
 }
Пример #2
0
 protected override Expression VisitMethodCall(MethodCallExpression node)
 {
   Check.NotNull<MethodCallExpression>(node, nameof (node));
   if (typeof (DbContext).IsAssignableFrom(node.Method.DeclaringType))
   {
     MemberExpression memberExpression = node.Object as MemberExpression;
     if (memberExpression != null)
     {
       DbContext constantExpression = DbQueryVisitor.GetContextFromConstantExpression(memberExpression.Expression, memberExpression.Member);
       if (constantExpression != null && !node.Method.GetCustomAttributes<DbFunctionAttribute>(false).Any<DbFunctionAttribute>() && node.Method.GetParameters().Length == 0)
       {
         Expression objectQueryConstant = DbQueryVisitor.CreateObjectQueryConstant(node.Method.Invoke((object) constantExpression, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, (Binder) null, (object[]) null, (CultureInfo) null));
         if (objectQueryConstant != null)
           return objectQueryConstant;
       }
     }
   }
   return base.VisitMethodCall(node);
 }