Asp.net core Automapper-POST/PUT实体嵌套层次结构
我想使用DTOs和AutoMapper发布并放置一个实体,该实体包含嵌套实体的列表,具有层次结构 样本: 公司有一份员工名单。在此员工列表中,可以有一位经理,他也是同一公司的员工Asp.net core Automapper-POST/PUT实体嵌套层次结构,asp.net-core,.net-core,entity-framework-core,automapper,Asp.net Core,.net Core,Entity Framework Core,Automapper,我想使用DTOs和AutoMapper发布并放置一个实体,该实体包含嵌套实体的列表,具有层次结构 样本: 公司有一份员工名单。在此员工列表中,可以有一位经理,他也是同一公司的员工 public class Company { public int Id { get; set; } public List<Employee> Employees { get; set; } } public class Employee { public int Id { ge
public class Company {
public int Id { get; set; }
public List<Employee> Employees { get; set; }
}
public class Employee {
public int Id { get; set; }
public Company Company { get; set; }
public int CompanyId { get; set; }
public Employee Manager { get; set; }
public int? ManagerId { get; set; }
}
上市公司{
公共int Id{get;set;}
公共列表雇员{get;set;}
}
公营雇员{
公共int Id{get;set;}
上市公司{get;set;}
public int CompanyId{get;set;}
公共员工经理{get;set;}
公共int?ManagerId{get;set;}
}
我想创建一个DTO,它能够发布和更新公司创建/更新/删除和更改员工之间的关系
如果知道一些员工可能还没有Id,因为他们是新创建的,但是是其他员工的父母,您会怎么做
提前谢谢你的帮助
精度:我使用dot net core 2.2、Entity Framework core和AutoMapper。您可以按如下方式执行此操作
public class CompanyDto {
public int Id { get; set; }
//Below line cannot exist here, otherwise it will create circular references
//public List<Employee> Employees { get; set; }
}
public class EmployeeDto {
public int Id { get; set; }
public Company Company { get; set; }
public int CompanyId { get; set; }
public Employee Manager { get; set; }
public int? ManagerId { get; set; }
}
公共类CompanyDto{
公共int Id{get;set;}
//下面的行在此不存在,否则将创建循环引用
//公共列表雇员{get;set;}
}
公共类雇员{
公共int Id{get;set;}
上市公司{get;set;}
public int CompanyId{get;set;}
公共员工经理{get;set;}
公共int?ManagerId{get;set;}
}
之后,您可以在automapper配置中为Company->CompanyTo(和反向映射)和Employee-to-EmployeeDto(和反向映射)创建映射
现在,为了处理新经理和现有员工的情况,您可以在存储库中执行以下操作之一(使用实体对象,而不是DTO)
谢谢你的回答。所以这就是我想的,我必须手动操作我找不到一种方法让automapper自动操作:(