LINQ to Entity Framework — базовый класс для работы с БД? (C#)?
Давно не использовал EF, но думаю, должно получиться:
    public class BaseDBProxy 
    {
        protected SiteContext db = new SiteContext();

        public TEntity GetById<TEntity>(int id)
        {
            return db.Set<TEntity>.Where(e => e.Id == id).FirstOrDefault();
        }
    }


Но вообще, лучше этот метод вынести в базовый класс репозитория:

    public abstract class RepositoryBase<TEntity> where TEntity : class
    {
        private Set<TEntity> _set;

        public RepositoryBase(DbContext context)
        {
            _set = context.Set<TEntity>();
        }

        public TEntity GetById(int id)
        {
            return _set.Where(e => e.Id == id).First();
        }

        public TEntity TryGetById(int id)
        {
            return _set.Where(e => e.Id == id).FirstOrDefault();
        }
    }


А в наследниках можно дописывать методы специфичные для конкретных типов сущностей.
Не понятно чего Вы добиваетесь. Каким образом программа должна узнать что по ID Вы хотите получить Problem, а не что-то другое? 
Мне кажется, Вы пытаетесь реализовать паттерн репозиторий 