2010-07-21 34 views
0

我ENTITY1與性能如何更新實體但在SaveChanges上插入新行?

Entity1.id= 1; 
Entity1.a = 10; 
Entity1.b = 123; 
Entity1.c = 231; 

我wan't改變性質,但對context.SaveChanges插入新行()不爲現有ID做更新。 我試圖設置Entity1.entityKey = null但它失敗。

任何想法?

謝謝。

+0

你想要一種'複製實體'嗎? – 2010-07-21 14:14:18

+0

是的,但是也改變了一些屬性。 – 100r 2010-07-22 06:51:13

回答

2

設置EntityStateAddedObjectStateManager

var Entity1 = context.YourEntities.Where(e => e.Id == 1).FirstOrDefault(); 

ObjectStateEntry osmEntry = context.ObjectStateManager.GetObjectStateEntry(Entity1); 
osmEntry.ChangeState(EntityState.Added); 

context.SaveChanges(); 

也就是說,如果你的實體已經被附加到上下文(例如,如果你之前獲取它)。

除非您對屬性進行任何更改,否則將使用Id = 1「複製」該實體。

相關問題