在使用graphDiff创建记录时,在调用saveChanges()之后,新的id不会重新填充到实体中。它已经登录到github repo这里- https://github.com/refactorthis/GraphDiff/issues/144,但是repo似乎不再那么活跃了,所以我希望这里的一些人能有一些关于如何让它工作的见解。
然而,对于create,qualification.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;
}
}谢谢
发布于 2015-07-16 18:39:49
所以我找到了解决方案-- 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;
}
}https://stackoverflow.com/questions/31450495
复制相似问题