Совместное использование свойства в DTO с использованием атрибута Category C#
Я работаю над моделью сотрудника, она содержит всю информацию о сотруднике, которую я уже опубликовал в разделе Как эффективно использовать DTO на основе сценария в C#. Как я мог разделить одно свойство для нескольких групп, используя атрибут категории C#.
Например:
public class Employee
{
public int EmployeeId { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
public string HomePhone { get; set; }
public string MobilePhone { get; set; }
}
У меня есть следующие четыре метода для получения записей сотрудника
public Employee GetEmployeeName(int id)
{
// The return should contain only FirstName, MiddleName and LastName.
// The rest of the properties should be non-accessable (i.e., Private)
}
public Employee GetEmployeeContacts(int id)
{
// The return should contain only EmailAddress, HomePhone and MobilePhone.
// The rest of the properties should be non-accessable (i.e., Private)
}
public Employee GetEmployeeNameEmail(int id)
{
// The return should contain only FirstName, MiddleName, LastName and EmailAddress.
// The rest of the properties should be non-accessable (i.e., Private)
}
public Employee GetEmployee(int id)
{
// It should return the entire Employee object
}
Как я мог этого добиться? Не могли бы вы, пожалуйста, любую помощь в этом отношении.
1 ответ
Пример, это общее использование для DTO:
public class EmployeeNameDto
{
public int EmployeeId { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
}
public EmployeeNameDto GetEmployeeName(int id)
{
Employee emplpoyee = employeeRepository.Find(id):
return new EmployeeNameDto() {
EmployeeId = emplpoyee.EmployeeId,
FirstName = emplpoyee.FirstName,
MiddleName = emplpoyee.MiddleName,
LastName = emplpoyee.LastName
};
}
Или же
public class Employee
{
public int EmployeeId { get; set; }
public string FirstName { get;
set {
if (condition == false)
throw new Exception(" is Read Only !")
}
}
public string MiddleName { get; set; }
public string LastName { get; set; }
public string EmailAddress { get; set; }
public string HomePhone { get; set; }
public string MobilePhone { get; set; }
}