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."); } }
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)); }