Давно не использовал 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();
}
}
А в наследниках можно дописывать методы специфичные для конкретных типов сущностей.