У меня есть 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);
, но без соответствующей стоимости отдела. Как я могу получить комбинированную версию с помощью автомаппера?