Сначала вам нужно будет абстрагироваться от доступа к свойству Foo
и Bar
на _db
. Тогда общая часть становится довольно прямой.
public T GetByID<T>(int id)
{
return _db.GetCollection<T>().First<T>(m => m.ID == id);
}
Возможно, вам придется ограничить T типом, который имеет свойство ID, если компилятор жалуется.
public T GetByID<T>(int id) where T : IHaveID
{
}