1

レコードの作成に graphDiff を使用すると、saveChanges() が呼び出された後、新しい ID がエンティティに戻されません。ここのgithubレポに記録されています-https ://github.com/refactorthis/GraphDiff/issues/144しかし、レポはそれほどアクティブではないようです。これを機能させます。

ただし、どのように機能する必要があるかについては、作成の場合、qualification.Id は常に 0 です。更新の場合、それは正しい ID です。

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

            db.SaveChanges();

            return qualification.Id;
        }
    }

私の現在の回避策は、作成にグラフ差分を使用しないことですが、これは理想的ではありません。

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

ありがとう

4

1 に答える 1