Карта 2 сущностей в 1 для viewmodel (Automapper) - PullRequest
0 голосов
/ 30 октября 2019

У меня есть 2 сущности

public class EmployeeEntity : Entity
    {
        public EmployeeEntity()
        {...}
        public string FirstName
        {...}
        public string LastName
        {...}
        public int DepartmentFK
        {...}
    }


public class DepartmentEntity : Entity
    {
        public string Department
        {...}
    }

Первая содержит int "DepartmentFK", который является внешним ключом в моем файле базы данных SQLite, но в моих 2 сущностях нет ссылки. Оба имеют столбец «Id» (автоматически генерируется в БД SQLite), а «Id» из «Departments» связан с «Employees.DepartmentFK».

Для моей ViewModel я хотел бы создать новый класс

    public class Combined : Entity
        {
            public string FirstName
            {...}
            public string LastName
            {...}
            public string Department
            {...}
        }

и отображение

"FirstName", "LastName" и "Department" (на основе значения внешнего ключа). Моя конфигурация Automapper выглядит следующим образом:

var config = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap<EmployeeEntity, Combined>().ForMember(e => e.FirstName, opt => opt.MapFrom(s => s.FirstName))
            .ForMember(e => e.LastName, opt => opt.MapFrom(s => s.LastName)).ForAllOtherMembers(d => d.Ignore());
                cfg.CreateMap<DepartmentEntity, Combined>().ForMember(d => d.Department, opt => opt.MapFrom(s => s.Department)).ForAllOtherMembers(d => d.Ignore());
            });
            var mapper = config.CreateMapper();

Я могу получить всех сотрудников или все отделы, используя _emp.GetAll().ToObservable() или _dep.GetAll().ToObservable()

В конце я хотел бы привязать вид кa ObservableCollection

public ObservableCollection<Combined> Test
{
    get { return _test; }
    set { _test = value; }
}

Это приведет всех сотрудников к моему новому OC

_test = mapper.Map(_emp.GetAll().ToObservable(), _test);

, но без соответствующей стоимости отдела. Как я могу получить комбинированную версию с помощью автомаппера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...