Однажды я прочитал статью Имаара Spaanjars о том, как создавать трехуровневые приложения. ( http: //imar.spaanjaars. com / 416 / building-layered-web-applications-with-microsoft-aspnet-20-part-1 ), который некоторое время составлял основу моего программирования.
Таким образом, я реализую коллекции, как он, путем наследования List
. Поэтому, если у меня есть класс с именем Employee, для реализации коллекции у меня также будет класс Employees, как показано ниже.
class Employee
{
int EmpID {get;set;}
string EmpName {get;set;}
}
class Employees : List
{
public Employees(){}
}
Я никогда не сомневался в этом, поскольку он работал за меня. Но теперь, когда я начал пробовать несколько вещей, я не уверен, что это правильный подход.
например, если я хочу получить подмножество от сотрудников, такое как
Employees newEmployees = (Employees) AllEmployees.FindAll(emp => emp.JoiningDate > DateTime.Now);
Это вызывает System.InvalidCastException. Однако, если я использую следующее, проблем нет.
List newEmployees = AllEmployees.FindAll(emp => emp.JoiningDate > DateTime.Now);
Итак, как мне реализовать сотрудников, чтобы мне не приходилось явно использовать List
в моем DAL или BLL? Или, может быть, как мне избавиться от InvalidCastexception?