Предположим, у меня есть автоматически сгенерированный класс Employee
на основе таблицы Employees
в моей базе данных.
Теперь предположим, что я хочу передать данные о сотрудниках в метод ShowAges
, который выведет имя и возраст для списка сотрудников. Я получу данные для данного набора сотрудников с помощью запроса linq, который вернет мне набор Employee
экземпляров. Затем я могу передать Employee
экземпляры методу ShowAges
, который может получить доступ к полям Name
& Age
, чтобы получить необходимые данные.
Однако, поскольку моя таблица Employees
связана с различными другими таблицами в моей базе данных, мой класс Employee
также имеет поле Department
, поле Manager
и т. Д., Которые обеспечивают доступ к связанным записям в этих базах данных. другие таблицы. Если бы метод ShowAges
вызывал какой-либо из этих методов, это привело бы к тому, что по требованию из базы данных можно было бы получить намного больше данных.
Я хочу быть уверен, что метод ShowAges
использует только те данные, которые я уже извлек для него, но я действительно не хочу заниматься проблемой определения нового класса, который реплицирует Employee
класс, но имеет меньше методов. (В моем реальном сценарии класс должен был быть значительно более сложным, чем класс Employee
, описанный здесь; у него было бы несколько «объединенных» классов, которые нужно заполнить, и другие, которые этого не делают).
Есть ли способ «выключить» или «отключить» экземпляры Employees
, чтобы попытка получить доступ к любому свойству или связанному объекту, который еще не был заполнен, вызвала исключение?
Если нет, то я предполагаю, что, поскольку это должно быть общим требованием, может быть, уже существует установленный образец для такого рода действий?