新聞中心
要了解ADO代碼你必須要學(xué)一下這個基礎(chǔ)課程,需要指定SetModifiedProperty()來指確定修改的字段名。我想,對于外部傳遞進來的對象,要知道哪個字段修改了是不現(xiàn)實的。所以此方法被拋棄。

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、成都做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出浉河免費做網(wǎng)站回饋大家。
寫一個更新類,把待更新的對象傳進來,這個對象可能是客戶端對象,比如ExtJs中的JSON對象,或者是FLEX中的自定義的ActionScript對象,這些對象通過傳入后,進行轉(zhuǎn)換后就成了服務(wù)器端的AEF實體對象。
那就需要把對象進行更新,償試了很多方式,ADO代碼EF的數(shù)據(jù)模型還是比較麻煩的,必須要對EntityState等狀態(tài)控制有所了解,參見文頭的推薦地址。
要把一個“分離對象”更新到EF,然后更新到DB,一般是采用ApplyPropertyChanges()方法,此方法可以把對象進行全部覆蓋,ADO代碼但有一個很重要的問題,在執(zhí)行此方法前,ObjectContext中必須要有此實列引用,如果沒有的話,就會報“ObjectStateManager 不包含具有對“ServiceLibrary.Department”類型的對象的引用的 ObjectStateEntry”的錯。那么有兩種方法,#t#
一:通過主鍵,把數(shù)據(jù)從DB中取到ObjectContext中來。這樣的話,是最簡單的,只是感覺在更新前,還要執(zhí)行一次“獲取”,ADO代碼在性能上很不爽。不過,畢竟是Key獲取,相信幾百萬的數(shù)量級也不會有大問題的。此方法還是我推薦的:如下
具體的ADO代碼如下:
- public string UpdateDepartment(Department dept)
- {
- using (var db = new FlexDbEntities())
- {
- //這句語句千萬要有?。。?!。
- Department o1 = db.Department.First(p => p.Id == dept.Id);
- db.ApplyPropertyChanges("Department",dept);
- db.SaveChanges();
- }
- }
新聞名稱:解讀ADO代碼具體學(xué)習(xí)研究課程
URL分享:http://fisionsoft.com.cn/article/dpjoigp.html


咨詢
建站咨詢
