簡體   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