我使用EF Core和Automapper来更新我的实体。我有一个名为" Aluno"的实体,它与" Endereco"有关系。这是代码:
data.frame(ID = unlist(l_stacked))
# ID
#1 bbb-5p
#2 bbb-5p-mi-98
#3 bbb-5p-6134
#4 abb-4p
#5 bbb-5p
#6 bbb-5p-mi-98
自动播放器配置:
public class Aluno : ApplicationUser{
...
public Endereco Endereco { get; set; }
...
}
public class AlunoViewModel : UserViewModel
{
public int Id { get; set; }
public EnderecoViewModel Endereco { get; set; }
}
public class Endereco{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get;set; }
...
}
public class EnderecoViewModel {
public int Id { get;set; }
...
}
AlunosController:
config.CreateMap<Aluno, AlunoViewModel>().ReverseMap();
config.CreateMap<Endereco, EnderecoViewModel>().ReverseMap();
当我尝试更新&#34; Aluno&#34;实体,我在context.SaveChanges():
上得到一个例外无法为表格中的标识列插入显式值&#39; Enderecos&#39; 当IDENTITY_INSERT设置为OFF时。
但我并没有尝试插入新的&#34; Endereco&#34;,只是更新实体&#34; Aluno&#34;,并且可能更新&#34; Endereco&#34;,在var aluno中正确加载。
我做错了吗?
答案 0 :(得分:2)
请尝试以下语法:
Mapper
.CreateMap<Aluno, AlunoViewModel>()
.ForMember(
dest => dest.Endereco,
opt => opt.MapFrom(src => src.EnderecoViewModel)
);