日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

MVC-07 案例1

發布時間:2025/4/16 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MVC-07 案例1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

>>>>>ContosoUniversity網站

-------------------------------------------

一、并發沖突

1. 為什么會并發沖突?

l并發沖突的例子 ?假設你想在網上訂機票。查詢你的航班,發現還有座位,但是當你單擊預訂按鈕時,系統提示機票已售罄。如果再次查詢該航班,發現已經沒有座位了。這是怎么回事呢?原來是在你查詢到結果和預訂之間,其他人預訂了最后一張票。系統對最后一張票進行了并發查詢,如果沒有并發檢查,該航班的機票就會超額預訂。 從技術上來說,程序中的每個可編輯的實體都存在爭用的情況。但是在現實世界中,有非常少的數據受到爭用,常常不是太重要而不值得并發檢查。 ?例如,

訂單?

客戶和供應商?

產品的價格和庫存量?

l并發更新、并發刪除 l數據庫是共享式的。 l對同一資源的訪問,造成并發沖突,數據意外丟失。

2. 并發沖突的類型?

(1)悲觀并發控制(Pessimistic Concurrency) ??? 以獨占方式物理鎖定數據庫中的數據,當數據被鎖定,其他用戶就不能再訪問它了,讀取或更新都不行,直到數據被更新或者解除鎖定。 ü好處是它允許單個用戶以獨占方式訪問信息,消除了任何可能的爭用。 ü但從性能和使用上來說以獨占方式鎖定會產生很多并發癥狀。

—影響他人效率

—如果程序奔潰

悲觀并發背后的理念是因為數據可能存在爭用,數據由第一個讀取者鎖定。解決并發問題的另一個技術是反其道而行之:因為數據并不頻繁爭用,鎖定數據是沒有意義的,我們讓爭用檢查只在更新階段執行。

(2)樂觀并發控制(Optimistic Concurrency) ?允許沖突發生,設置相應的處理機制或通知用戶。 ?當更新數據庫時,必須檢查自從檢索了數據起它就沒有發生變化。 ?對系部信息的編輯,如果預算原來為3500,John修改為0;在John按保存之前,Jane更改了系建立日期從2007年9月1日到2013年8月8日。沖突產生。。。 ü處理方法:

—跟蹤用戶已修改的屬性,只更新數據庫中的相應的列。兩個人的修改都保存到數據庫。

—客戶端贏或最后一個贏。Jane的更改覆蓋John的更改。不需要編碼,自動發生。

—存儲區贏。John的更改覆蓋Jane的更改。我們即將講解如何實現。

樂觀并發提升了系統的可擴展性和可使用性,因為數據總是可讀取的。主要的缺點是除非你寫一些復雜的代碼,否則得到并發異常的用戶必須重新讀取更新數據,然后應用修改。通常浪費的時間是可接受的,有時不是。

檢測并發沖突

l通過引發OptimisticConcurrencyException異常處理來解決沖突。 ?為每一行的修改添加一個版本控制列。在并發修改的情況下,第一個保存的數據成功,其他的就不能更新數據,因為自從讀取了數據,版本已經發生了變化。 ?在Update和Delete命令的Where子句中,檢查版本。 二、Lazy、 Eager,和Explicit加載的相關數據

(1)Lazy loading

  • 實體讀取時,并不加載數據,使用時加載數據。掌握代碼。熟記樣例代碼。

(2)Eager Loading

  • 實體讀取時,獲取相關數據。熟記樣例代碼。

(3)Explicit Loading

l實體讀取時,獲取相關數據。熟記樣例代碼。 ?三、請為ContosoUniversity網站設計類圖,并編寫教師類、學生類、課程類、選課類的代碼。

轉載于:https://www.cnblogs.com/meetyy/p/3483106.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的MVC-07 案例1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。