我有3个类(T1和T2数据来自SQLite文件)
T1(EmployeeEntity-> Id,FirstName,LastName,DepartmentFK) << DepartmentKey是T2.Id的外键
T2(部门实体-> ID,部门)
T3(部门雇员-> ID,FirstName,LastName,DepartmentFK,Department] << Id应该与T1.Id相同(使更改更容易保存)
在我的视图模型中,我创建了一个新的ObservableCollection public ObservableCollection<DepartmentEmployee> EmployeesView
,并希望用来自2个SQLite表的数据填充这些,这就是我的操作方式:
get
{
var t1 = new ObservableCollection<EmployeeEntity>(_emp.GetAll().ToObservable());
var t2 = new ObservableCollection<DepartmentEntity>(_dep.GetAll().ToObservable());
var result = t1.Join(t2, t => t.DepartmentFK, t => t.Id, (EmployeeEntity, DepartmentEntity) =>
{
var t3 = _mapper.Map<EmployeeEntity, DepartmentEmployee>(EmployeeEntity);
t3 = _mapper.Map(DepartmentEntity, t3);
return t3;
});
_employeesview = result.ToObservable();
return _employeesview;
}
这适用于我的视图(我可以显示名字,姓氏和适当的部门(基于外键)),但是当我尝试将更改保存回去时,它将更改错误的记录。我的问题是:
T1
1 - Test - User - 2
2 - Another - User -3
3 - Third - User - 1
T2
1 - Development
2 - HR
3 - Production
结果]
T3
2 - Test - User - 2 - HR 3 - Another - User - 3 - Production 1 - Third - User - 1 - Development
因此它“杀死”了我的员工ID,并将其替换为部门的ID。那我该如何解决呢?
添加。信息:这些是我制作的映射
cfg.CreateMap<DepartmentEntity, Departments>();
cfg.CreateMap<Departments, DepartmentEntity>();
cfg.CreateMap<EmployeeEntity, DepartmentEmployee>();
cfg.CreateMap<DepartmentEmployee, EmployeeEntity>();
cfg.CreateMap<DepartmentEntity, DepartmentEmployee>();
我有3个类(T1和T2数据来自SQLite文件)T1(EmployeeEntity-> ID,FirstName,LastName,DepartmentFK)<< DepartmentKey是T2.Id T2的外键(DepartmentEntity-> ...
愚蠢的我,在我的映射中不得不忽略“ Id”