Самый простой подход - это просто
public T GetById(params object[] keys)
{
_set.Find(keys);
}
Если вы знаете, что все ваши сущности имеют первичный ключ с именем Id (его не нужно называть Id в БД, но он должен быть сопоставлен со свойством Id) определенного типа, вы можете использовать это просто:
public interface IEntity
{
int Id { get; }
}
public class BaseRepository<T> where T : class, IEntity
{
...
public T GetById(int id)
{
_set.Find(id);
}
}
Если тип данных не всегда один и тот же, вы можете использовать:
public interface IEntity<TKey>
{
TKey Id { get; }
}
public class BaseRepository<TEntity, TKey> where TEntity : class, IEntity<TKey>
{
...
public TEntity GetById(TKey id)
{
_set.Find(id);
}
}
Вы также можете просто использовать:
public class BaseRepository<TEntity, TKey> where TEntity : class
{
...
public TEntity GetById(TKey id)
{
_set.Find(id);
}
}