public virtual IQueryable <TEntity> Set <TEntity>()
            where TEntity : class
        {
            if (typeof(TEntity) == typeof(City))
            {
                return((IQueryable <TEntity>)Cities.AsQueryable());
            }

            if (typeof(TEntity) == typeof(CogTag))
            {
                return((IQueryable <TEntity>)Tags.AsQueryable());
            }

            if (typeof(TEntity) == typeof(Faction))
            {
                return((IQueryable <TEntity>)Factions.AsQueryable());
            }

            if (typeof(TEntity) == typeof(Gear))
            {
                return((IQueryable <TEntity>)Gears.AsQueryable());
            }

            if (typeof(TEntity) == typeof(Mission))
            {
                return((IQueryable <TEntity>)Missions.AsQueryable());
            }

            if (typeof(TEntity) == typeof(Squad))
            {
                return((IQueryable <TEntity>)Squads.AsQueryable());
            }

            if (typeof(TEntity) == typeof(SquadMission))
            {
                return((IQueryable <TEntity>)SquadMissions.AsQueryable());
            }

            if (typeof(TEntity) == typeof(Weapon))
            {
                return((IQueryable <TEntity>)Weapons.AsQueryable());
            }

            if (typeof(TEntity) == typeof(LocustLeader))
            {
                return((IQueryable <TEntity>)LocustLeaders.AsQueryable());
            }

            if (typeof(TEntity) == typeof(LocustHighCommand))
            {
                return((IQueryable <TEntity>)LocustHighCommands.AsQueryable());
            }

            throw new InvalidOperationException("Invalid entity type: " + typeof(TEntity));
        }