当使用graphDiff创建记录时,在调用saveChanges()之后,新的id不会被填充回实体。它已经在这里登录了github repo - https://github.com/refactorthis/GraphDiff/issues/144但是回购似乎不再那么活跃了,所以希望这里的某个人能够对如何使这个工作有一些见解。
如果qualtion.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;
}
}
由于
答案 0 :(得分:3)
所以我找到了解决方案 - 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;
}
}