我已经后它保存它刚刚得到了保存到数据库如何找出实体框架对象是否已更改?
var konsultant = uczestnik.Konsultanci;
uczestnik.Konsultanci = null; // null attached object and reuse it's ID later on for SAVE purposes
uczestnik.KonsultantNazwa = konsultant.KonsultantNazwa;
uczestnik.Szkolenie = null; // null attached object and reuse it's ID later on for SAVE purposes
uczestnik.SzkolenieID = szkolenie.SzkolenieID;
context.SzkolenieUczestnicies.AddObject(uczestnik);
context.SaveChanges();
context.Detach(uczestnik); // detatch to prevent Context problems
uczestnik.Szkolenie = szkolenie;// reassign for use in ObjectListView
uczestnik.Konsultanci = konsultant; // reassign for use in ObjectListView
被称为Uczestnik
对象的回ObjectListView其中用户决定改变一些值和值从多个改变(一个值是精确)。如果我检查值的实体状态它处于Unchanged状态,所以调用.Attach和.SaveChanges()将不会执行任何操作。我可以使用ChangeObjectState
,但如果没有任何变化,那么没有意义。
context.SzkolenieUczestnicies.Attach(uczestnik);
//context.ObjectStateManager.ChangeObjectState(uczestnik, EntityState.Modified);
context.SaveChanges();
我怎么能探测到这一变化,并防止不必要的流量(我能想象在那里没有在保存文件5MB大物体被改变的情况),所以resaving
它没有任何意义。除非实体足够聪明,才能检测到只有一个字段从15更改并仅更改该字段?
你看过ObjectContext.DetectChanges吗? – 2012-02-01 22:53:23
不,不知道吗?我将如何使用它?同样考虑到在'using'中包含上下文,当它在新的上下文中执行时,DetectChanges不会显示任何内容吗? – MadBoy 2012-02-01 22:55:10