レコードの作成に 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;
}
}
ありがとう