示例#1
0
        public N ExecuteSingle <N>(QueryModel queryModel, bool returnDefaultWhenEmpty)
        {
            QueryBuilder <N> builder = new QueryGeneration <N>(queryModel).GetQuery();

            if (builder.Take > 0)
            {
                throw new NotSupportedException("Unable to specify Take when using fetching single record.");
            }

            if (builder.GetSingle)
            {
                return(DoGetSingle <N>(builder, returnDefaultWhenEmpty));
            }
            else if (builder.GetFirst)
            {
                return(DoGetFirst <N>(builder, returnDefaultWhenEmpty));
            }
            else
            {
                throw new InvalidOperationException("Unable to ExecuteSingle without specifying GetFirst or GetSingle.");
            }
        }
示例#2
0
        public IEnumerable <N> ExecuteCollection <N>(QueryModel queryModel)
        {
            QueryBuilder <N> builder = new QueryGeneration <N>(queryModel).GetQuery();

            return(GetArchiveManager <N>().DoQuery(builder.RestrictionBuilder, builder.OrderByBuilder, builder.Take, builder.Skip));
        }