關於ORM的一些體會

2021-07-28 04:15:31 字數 455 閱讀 3624

最近專案用到sqlite資料庫,嫌麻煩做了個根據資料庫表結構生成c# **的工具,把錶結構和entity類進行一一對應,也算是乙個小的orm框架。本想再做的徹底一點,在entity上再封一層model類,把外來鍵關係(當然表上沒有 體現)也關聯起來,並通過乙個context類把model的操作託管起來,使其能夠記錄哪些實體被增刪改查,從而,從而實現自動增量持久化。

但總體設計下來感覺想把整套orm應用起來不是容易的事,最大的問題在於效能。

關係的建立有兩種方式,一種是載入資料庫的全量模型,好處是能保證資料的完整性,壞處自然不必說,一旦遇到資料量大些的場景就是效能災難;

另一種是延遲載入,對於沒有使用上的資料先置為null,當有訪問觸發的時候再從資料庫裡面讀出來,好處當然是提高了效能,壞處就是管理過程複雜,需要乙個類似於gc的**機制,難於實現。

最後專案只採用了類與各個表的對映,而沒有在模型上體現表的關係,只能算是om吧。

關於快取機制的一些體會

最近的乙個android專案已經公升級了第二個大版本,以前出現的一些問題都有效的得到了解決。今天早晨在使用者使用時,又發現了乙個新的問題。雖然在經過一段時間的載入之後就能夠有效展示出資訊,但是這樣也是使用者不可接受的。假設如果我是使用者,看到這樣的情況也會產生各種不信任 有了思路後,實現的過程還是比...

關於python裝飾器的一些體會總結。

首先說下裝飾器的目的,在不改變原函式的情況下給函式新增功能。裝飾器的三個要求 不能修改被裝飾的函式的源 不能修改被裝飾的函式的呼叫方式 滿足1 2的情況下給程式增添功能 假設給下列函式新增個計算執行時間的功能,原函式 然後 看似實現了功能,可是有個問題,此時只能用time count test 無法...

關於MAC裝雙系統的一些體會

蘋果一向以使用者體驗為上,所以雙系統的安裝其實很簡單。需求背景是因為要在windows上跑遊戲和pps,maci下沒有。一 虛擬機器方案 但是緊接著問題來了,客戶需要玩冒險島這類網遊,經過測試無法在虛擬機器下執行,只有採用雙系統的解決方法。二 實體雙系統 採用bootcamp安裝,要注意bc的說明寫...