2013-05-07 43 views
0

所以我想更新/替換一個完整的行與我有的數據。 而不是做 entityA.Name = entityB.NameLinq更新一個完整的行

我想說一些像entityA = entityB,其中entitiyB與entityA相同,但具有新的值。

請讓我知道。

謝謝..

+0

映射我們應該讓你知道? – Hogan 2013-05-07 19:02:55

+0

所以我試圖做這個entityA = entityB,但那不適合我。我也在做db.SaveChanges(),但我的數據庫沒有顯示新的值? – Prashant 2013-05-07 19:04:21

+0

你可以添加'entityB'並刪除'entityA'嗎? – ajakblackgoat 2013-05-08 05:06:48

回答

0

簡單地做entity1 = entity2將改變使用實體引用,因此上下文不會跟蹤新的參考AY更多。因此改變的值不會被更新。

你應該使用對象映射器。我個人使用,可以使用包管理器控制檯命令Install-Package Glue安裝膠 還有其他的太像AutoMapper

,如果你用膠水去然後就做出這樣

var mapping = new Mapping<entity1, entity2>(); 
mapping.AutoRelateEqualNames(); 
//or define a mapping using .Relate() 
//then call map 
mapping.Map(entity1)//this will return entity2 
or if you already have an object tracked by a context class call 
entity2 = mapping.Map(entity1, entity2); 
+0

我現在正在使用Automapper,但即使這樣也沒有更新我的數據庫。這是我的代碼 - RecordtoUpdate = AutoMapper.Mapper.Map(datafromForm,RecordtoUpdate) dbContext.SaveChanges() – Prashant 2013-05-07 19:55:10

+0

您的代碼丟失 – 2013-05-07 19:56:01

+0

我現在使用Automapper,但即使這不是更新我的數據庫。這是我的代碼 - RecordtoUpdate = AutoMapper.Mapper.Map(datafromForm,RecordtoUpdate)dbContext.SaveChanges() – Prashant 2013-05-07 19:57:43