第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

實(shí)體框架4 - AddObject與Attach

實(shí)體框架4 - AddObject與Attach

C#
開心每一天1111 2019-07-31 18:09:44
實(shí)體框架4 - AddObject與Attach我最近一直在使用Entity Framework 4,并且稍微混淆了何時(shí)使用ObjectSet.Attach和ObjectSet.AddObject。根據(jù)我的理解:當(dāng)實(shí)體已存在于系統(tǒng)中時(shí)使用“附加”創(chuàng)建全新實(shí)體時(shí)使用“AddObject”所以,如果我正在創(chuàng)建一個(gè)新人,我會(huì)這樣做。var ctx = new MyEntities();var newPerson = new Person { Name = "Joe Bloggs" };ctx.Persons.AddObject(newPerson);ctx.SaveChanges();如果我正在修改現(xiàn)有的人,我這樣做:var ctx = new MyEntities();var existingPerson = ctx.Persons.SingleOrDefault(p => p.Name = "Joe Bloggs" };existingPerson.Name = "Joe Briggs";ctx.SaveChanges();請記住,這是一個(gè)非常簡單的例子。實(shí)際上我使用的是Pure POCO(無代碼生成),Repository模式(不處理ctx.Persons)和Unit of Work(不處理ctx.SaveChanges)。但是“在幕后”,以上是我的實(shí)施中發(fā)生的事情?,F(xiàn)在,我的問題 - 我還沒有找到一個(gè)我不得不使用Attach的場景。我在這里失蹤了什么?我們什么時(shí)候需要使用Attach?編輯只是為了澄清,我正在尋找何時(shí)使用Attach over AddObject(或反之亦然)的示例。編輯2下面的答案是正確的(我接受了),但我認(rèn)為我會(huì)添加另一個(gè)例子,其中Attach將是有用的。在我上面修改現(xiàn)有Person的示例中,實(shí)際上正在執(zhí)行兩個(gè)查詢。一個(gè)用于檢索Person(.SingleOrDefault),另一個(gè)用于執(zhí)行UPDATE(.SaveChanges)。如果(出于某種原因),我已經(jīng)知道系統(tǒng)中存在“Joe Bloggs”,為什么還需要額外的查詢才能獲得他的第一個(gè)?我能做到這一點(diǎn):var ctx = new MyEntities();var existingPerson = new Person { Name = "Joe Bloggs" };ctx.Persons.Attach(existingPerson);ctx.SaveChanges();這將導(dǎo)致只執(zhí)行UPDATE語句。
查看完整描述

3 回答

?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊


這是一個(gè)遲到的回應(yīng),但它可能會(huì)幫助其他人找到這個(gè)。


基本上,當(dāng)您操作“使用”范圍之外的實(shí)體時(shí),可能會(huì)發(fā)生“斷開連接”的實(shí)體。


Employee e = null;


using (var ctx = new MyModelContainer())

{

     e = ctx.Employees.SingleOrDefault(emp => emp .....);

}


using (var ctx2 = new MyModelContainer())

{

     e; // This entity instance is disconnected from ctx2

}

如果您輸入另一個(gè)“使用”范圍,那么“e”變量將被斷開,因?yàn)樗鼘儆谥暗摹笆褂谩狈秶?,并且由于先前的“使用”范圍被破壞,因此“e”被斷開。


這就是我理解它的方式。


查看完整回答
反對 回復(fù) 2019-07-31
  • 3 回答
  • 0 關(guān)注
  • 376 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號