EntityFramework正在插入一个新的寄存器,而是为关系

时间:2015-07-02 19:24:43

标签: c# asp.net-mvc entity-framework

我正在开发一个允许用户发布帖子的网站。

我有3张桌子:

  • 后;
    • 帖子ID;
    • 用户ID;
  • 市;
    • CityId;
    • CITYNAME;
  • PostService(复合表);
    • PostId(与邮政有关);
    • CityId(与城市相关);
    • 其他领域;

当我保存Post时,系统会插入一个新帖子,在PostService和Post之间建立关系(通过PostId),但是,它应该将CityId设置为PostService,而是创建一个新的City,与PostService建立关系。

在这里,我们将所选城市设置为PostService:

orcamento.Cidades = db.Cidades.Where(c => c.CidNome.Trim().ToLower() == orcamento.Cidades.CidNome.Trim().ToLower()).FirstOrDefault();

在这里,我们坚持使用帖子:

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?

1 个答案:

答案 0 :(得分:0)

要解决此问题,请使用相同的上下文事务。

以下代码位于另一个上下文

orcamento.Cidades = db.Cidades.Where(c => c.CidNome.Trim().ToLower() == orcamento.Cidades.CidNome.Trim().ToLower()).FirstOrDefault();