首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导致在saveChanges()之后无法填充实体id的GraphDiff

导致在saveChanges()之后无法填充实体id的GraphDiff
EN

Stack Overflow用户
提问于 2015-07-16 17:33:15
回答 1查看 495关注 0票数 1

在使用graphDiff创建记录时,在调用saveChanges()之后,新的id不会重新填充到实体中。它已经登录到github repo这里- https://github.com/refactorthis/GraphDiff/issues/144,但是repo似乎不再那么活跃了,所以我希望这里的一些人能有一些关于如何让它工作的见解。

然而,对于create,qualification.Id总是为0。对于更新,它是正确的Id。

代码语言:javascript
复制
    public int CreateUpdate(Qualification qualification)
    {
        using (var db = new DataContext())
        {
            db.UpdateGraph(qualification);

            db.SaveChanges();

            return qualification.Id;
        }
    }

我目前的工作是不使用graph diff来创建,但这并不理想。

代码语言:javascript
复制
    public int CreateUpdate(Qualification qualification)
    {
        using (var db = new DataContext())
        {
            if (qualification.Id == 0)
            {
                db.Entry(qualification).State = EntityState.Added;
            }
            else
            {
                db.UpdateGraph(qualification);
            }

            db.SaveChanges();

            return qualification.Id;
        }
    }

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-07-16 18:39:49

所以我找到了解决方案-- https://github.com/refactorthis/GraphDiff/issues/32#issuecomment-34420859

重要的是"GraphDiff给你一个新的实例“,所以你需要设置实体的返回值。

代码语言:javascript
复制
    public int CreateUpdate(Qualification qualification)
    {
        using (var db = new DataContext())
        {
            qualification = db.UpdateGraph(qualification);
            db.SaveChanges(qualification.AuditUserId);

            return qualification.Id;
        }
    }
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31450495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档