Я пытаюсь использовать шаблон репозитория для сайта, созданного в .Net 2.0. Весь код клиента ожидает данных для привязки, и я не смогу это изменить, поэтому, пожалуйста, потерпите меня.
У меня (возможно, глупая) проблема. Я не могу понять, как передать строго типизированную сущность в мой конкретный репозиторий. Интерфейс вынуждает меня передавать тип Employee, но мне нужно передать тип Developer (он унаследован от Employee), поскольку у него есть определенные свойства, которых нет в базовом классе.
public interface IEmployeesRepository
{
DataTable Employees { get; }
void SaveEmployee(Employee employee);
void DeleteEmployee(Employee employee);
}
public class DevelopersRepository : IEmployeesRepository
{
public void SaveEmployee(Developer employee)
{
Database db = new SqlDatabase(connectionString);
DbCommand dbCommand = db.GetStoredProcCommand("Developers_Insert", employee.ProgrammingLanguage);
db.ExecuteNonQuery(dbCommand);
}
}
}
Я попытался использовать дженерики вместо этого, но тогда у меня все еще не будет строго типизированного объекта, верно?