繁体   English   中英

GraphDiff导致实体的id在saveChanges()之后不会被填充

[英]GraphDiff causing id of entity to not get populated after saveChanges()

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

它应该如何工作但是qual.Id对于创建总是0。 对于更新,这是正确的ID。

    public int CreateUpdate(Qualification qualification)
    {
        using (var db = new DataContext())
        {
            db.UpdateGraph(qualification);

            db.SaveChanges();

            return qualification.Id;
        }
    }

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

    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;
        }
    }

谢谢

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

重要的是“GraphDiff将您的新实例发回给您”,因此您需要设置实体的回报。

    public int CreateUpdate(Qualification qualification)
    {
        using (var db = new DataContext())
        {
            qualification = db.UpdateGraph(qualification);
            db.SaveChanges(qualification.AuditUserId);

            return qualification.Id;
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM