【发布时间】:2019-11-03 14:44:44
【问题描述】:
我有 3 个类(T1 和 T2 数据来自 SQLite 文件)
T1 (EmployeeEntity --> Id, FirstName, LastName, DepartmentFK)
T2 (DepartmentEntity --> Id, Department)
T3 (DepartmentEmployee --> Id, FirstName, LastName, DepartmentFK, Department)
在我的视图模型中,我创建了一个新的 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>();
【问题讨论】:
标签: c# linq observablecollection