我有以下代码段。 我希望在将相关实体作为单个事务映射后保存我的用户实体。即实体框架将使用生成的UserId按预期更新UserBranchSpecialism表。 我找不到一种方法来指定UserBranchSpecialism的User属性作为我的映射配置的一部分。
// ENTITIES
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public BranchProfile BranchProfile { get;set; }
}
public class BranchProfile
{
public int Id { get; set; }
public string Name { get; set; }
public List<UserBranchSpecialism> Specialisms { get; set; }
}
public class BranchSpecialism
{
public int Id { get; set; }
public string Name { get; set; }
}
public class UserBranchSpecialism
{
public User User { get; set; }
public BranchSpecialism BranchSpecialism { get;set; }
public int BranchSpecialismId { get;set; }
public int UserId { get; set; }
}
// DTOS
public class UserCreateDto
{
public string Name { get;set; }
}
public class BranchProfileDto
{
public string Name { get;set; }
public List<int> BranchSpecialismIds { get;set; }
}
// MAPPING CONFIG
CreateMap<UserCreateDto, User>();
CreateMap<BranchProfileDto, BranchProfile>()
.ForMember(dest => dest.Specialisms,
opt => opt.MapFrom(src => src.BranchSpecialismIds
.Select(id => new UserBranchSpecialism() { BranchSpecialismId = id }).ToList()));
理想情况下, 我想做这样的事情:
// MAPPING CONFIG
CreateMap<UserCreateDto, User>();
CreateMap<BranchProfileDto, BranchProfile>()
.ForMember(dest => dest.Specialisms,
opt => opt.MapFrom(src => src.BranchSpecialismIds
.Select(id => new UserBranchSpecialism() { BranchSpecialismId = id, User = ???? }).ToList()));
如何使用上面拆分的映射或使用任何其他替代方法实现此目的? 提前谢谢。