Я почти уверен, что это невозможно, но здесь идет ..
У меня есть пользовательский класс в C #, называемый Person, который имеет несколько свойств, таких как Возраст, Рост и т. Д.
Затем я создаю новый класс Employee, который наследуется от Person, но я пока не добавляю никаких других свойств в Employee.Так что в основном это все еще Person, за исключением того, что он называется Employee.
Теперь скажите, что у меня есть экземпляр Person, называемый SomePerson.Как я могу создать новый экземпляр Employee, который имеет все значения, которые он унаследовал от Person, и установить их в SomePerson.Как приведение человека к сотруднику. Но мне не нужно вручную указывать каждое свойство, которое нужно установить ..
Что-то вроде ..
Employee NewEmployee = (Employee)SomePerson;
Но, конечно,появляется сообщение «Не удается преобразовать человека в сотрудника» и т. д.
Является ли AutoMapper единственным практическим решением, позволяющим делать подобные вещи, если вы говорите, что в задействованных объектах имеется 300 свойств ??
ОБНОВЛЕНИЕ:
Кажется, Auto-Mapper не обрабатывает мои объекты ..
Employee SomeEmployee = EmployeeRepository.GetEmployee(SomeEmployeeID);
// Populate the ViewModel with the Person fetched from the db, ready for editing..
VMEmployee EmployeeToEdit = Mapper.Map<Employee, VMEmployee>(SomeEmployee);
// ViewModel based on Employee with Validation applied..
[MetadataType(typeof(Employee_Validation))]
public class VMEmployee : Employee
{
// Absolutely nothing here
}
, где "Employee" автоматически генерируется LINQ дляSQL ..