Mellivora
1.0.0
事先聲明:該類庫僅供學習和參考。文檔地址
由於在學習中接觸到了Dapper等優秀的ORM,因此激發了興趣,想自己也嘗試寫一下類似的ORM。
本庫同樣是對IDbConnection進行了擴展,在起初寫Mellivora的時候,動態緩存也是由純Emit來實現的,代碼量大,不容易調試。一個緩存方法寫下來有小1000行。因此2017年,發布了Natasha2016版,這一版初次對IL編程進行了簡化優化操作,使用Natasha對之前的Mellivora進行了緩存方法重構,代碼量減少了二分之一左右,另外保證了性能。
在細節優化的時候,Mellivora參照了大量的Dapper代碼,而在緩存的設計上,Mellivora更為直觀。 並且配備了實體類分析庫Vasily,對實體類進行分析以及Sql自動生成,從而直接支持Add、Delete、Modify、Get方法,其中Vasily中增加了對String類的擴展,讓字符串拼接更佳快速(優於StringBuilder,join)
以下是Mellivora與Dapper預熱完成之後的性能對比:
以上庫可以拿來修改,研究,發布。
經過編寫Mellivora發現,Dapper在穩定性以及性能的平衡上做的非常好,細緻入微。
開源地址:Mellivora Github
文檔參考:Mellivora API