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