Exemplo n.º 1
0
        /// <summary>
        /// Returns a query that will return an Empty enumeration of specified type when executed.
        /// </summary>
        /// <param name="entityType"></param>
        /// <returns></returns>
        public static EntityQuery BuildEmptyQuery(Type entityType)
        {
            var parameterExpr = Expression.Parameter(entityType, "t");
            // where 1 = 0;
            var predicateExpr = Expression.Equal(Expression.Constant(1), Expression.Constant(0));
            var lambdaExpr    = Expression.Lambda(predicateExpr, parameterExpr);
            var entityQuery   = EntityQuery.Create(entityType);

            entityQuery = AddWhereClause(entityQuery, lambdaExpr);
            return(entityQuery);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Builds an <see cref="EntityQuery"/> based on a collection of <see cref="EntityKey"/>s.
        /// The EntityQuery returned is actually an EntityQuery{T} but T is unknown at compile time.
        /// </summary>
        /// <param name="keys"></param>
        /// <returns></returns>
        public static EntityQuery BuildQuery(IEnumerable <EntityKey> keys)
        {
            if (!keys.AllEqual(k => k.EntityType))
            {
                throw new ArgumentException("The EntityQueryBuilder.BuildQuery method requires that the 'keys' parameter consist of EntityKeys all with the same EntityType.");
            }
            var firstKey = keys.FirstOrDefault();

            if (firstKey == null)
            {
                return(null);
            }
            var entityQuery = EntityQuery.Create(firstKey.EntityType.ClrType);

            return(AddWhereClause(entityQuery, keys));
        }