public IQueryCatalog Add(IQueryEntry entry)
        {
            _entries.Add(entry.QueryType, entry);

            Contract.Assume(GetEntry(entry.QueryType) == entry);

            return(this);
        }
        public IQueryCatalog Add(IQueryEntry entry)
        {
            Contract.Requires(entry != null);
            Contract.Ensures(Contract.Result <IQueryCatalog>() != null);
            Contract.Ensures(GetEntry(entry.QueryType) == entry);
            Contract.EnsuresOnThrow <ArgumentException>(GetEntry(entry.QueryType) == Contract.OldValue(GetEntry(entry.QueryType)));

            throw new NotImplementedException();
        }