Звучит так, будто вы должны сделать GetEmployees () статическим методом для Employee. Вам не нужно создавать экземпляр сотрудника, чтобы получить их список.
Кроме того, ваш первый пример будет только устанавливать ваш objEmployee на то, что будет последним в ваших данных. Когда он проходит по всем сотрудникам, он останавливается, когда достигает последнего, то есть данных, которые вы получите.
Кроме того, класс "Сотрудники" относится к одному сотруднику или ко многим? Назовите это соответственно. Если «Employees» представляет одного «Employee», то, возможно, вам следует переименовать его в «Employee» и вернуть List из метода GetEmployees, который, как я говорил выше, должен быть статическим, поэтому вы можете просто вызвать что-то вроде «Employee». GetEmployees ()».
При этом мне никогда не нравилась архитектура, в которой вы предоставляете возможности доступа к данным для вашего бизнес-объекта. Он имеет тенденцию слишком тесно связывать уровень доступа к данным и уровень бизнес-объектов.
Возможно, вы захотите создать интерфейс доступа к данным, который принимает параметры для поиска сотрудников и возвращает фактические объекты сотрудников в качестве результата. После того, как вы это сделаете, вы захотите создать реализацию этого уровня доступа к данным, которую затем будете использовать для генерации реальных экземпляров. Преимущество этого состоит в том, что вы можете быстро изменить реализацию уровня доступа к данным, не изменяя также и бизнес-объекты. Тогда вы запрограммируете свои бизнес-объекты вне интерфейса, и вы сможете использовать динамическую загрузку сборки или какой-либо другой метод для динамического определения реализации вашего доступа к данным.