Beispiel #1
0
        public Entity[] ProcessEntityQueryRequest <Entity>(Bzure.Common.Data.EntityQueryRequest <Entity> QueryRequest) where Entity : Bzure.Common.Core.IEntity, IPersistenceState
        {
            List <Entity> entities = new List <Entity>();

            if (QueryRequest is EntityPageQueryRequest <Entity> )
            {
                entities.AddRange(ProcessEntityQueryRequestPaged <Entity>(QueryRequest as EntityPageQueryRequest <Entity>));
            }
            else
            {
                entities.AddRange(ProcessEntityQueryRequestNonePaged <Entity>(QueryRequest));
            }
            entities.ForEach(m => { m.MarkPersistenceState(true); });
            return(entities.ToArray());
        }
Beispiel #2
0
        /// <summary>
        /// 实体查询
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryRequest"></param>
        /// <returns></returns>
        public virtual T[] QueryEntity <T>(Bzure.Common.Data.EntityQueryRequest <T> queryRequest) where T : Bzure.Common.Core.IEntity, Bzure.Common.Core.IPersistenceState
        {
            lock (_queryHandlers)
            {
                InitEntityMap(typeof(T));

                Delegate handler;
                if (_queryHandlers.TryGetValue(typeof(T), out handler))
                {
                    QueryEntityHandler <T> h = handler as QueryEntityHandler <T>;
                    return(h(this, queryRequest));
                }
            }
            return(default(T[]));
        }