EntityFramework正在插入一个新的寄存器,而不是设置关系的id
本文关键字:寄存器 id 关系 设置 插入 一个 EntityFramework | 更新日期: 2023-09-27 18:01:00
我正在开发一个允许用户发布问题的网站。
我有3张桌子:
- 岗位;
- PostId
- 用户ID
- 城市;
- 城市Id
- 城市名称
- PostService(一个综合表格(;
- PostId(与Post相关(
- CityId(与城市相关(
- 其他领域
当我保存Post时,系统会插入一个新的Post,处理PostService和Post之间的关系(通过PostId(,但它应该将CityId设置为PostService,但相反,它会创建一个新城市,并处理与PostService的关系。
在这里,我们将选定的城市设置为邮政服务:
orcamento.Cidades = db.Cidades.Where(c => c.CidNome.Trim().ToLower() == orcamento.Cidades.CidNome.Trim().ToLower()).FirstOrDefault();
在这里,我们坚持Post:
Post post = new Post();
post.PosData = DateTime.Now;
post.Usuarios = db.Usuarios.Where(u => u.UsuEmail == User.Identity.Name).FirstOrDefault();
post.PostOrcamentoServico.Add(orcamento);
db.Post.Add(post);
db.SaveChanges();
为什么要创建一个新的城市,而不是将CityID设置为PostService?
要解决此问题,请使用相同的上下文事务。
以下代码在另一个上下文中
orcamento.Cidades = db.Cidades.Where(c => c.CidNome.Trim().ToLower() == orcamento.Cidades.CidNome.Trim().ToLower()).FirstOrDefault();