NHibernate 的輕量級替代品
由於所有的依賴關係,NHibernate 並不適合我們的環境。(城堡、log4net 等)
有沒有好的輕量級替代品?
支持簡單的基於文件的數據庫,如 Access/SQLite/VistaDB 是必不可少的。
理想情況下,包含在僅引用 .NET 程序集的單個程序集中的內容。如果它只需要 .NET 框架 2.0 或 3.0,那將是一個獎勵。
大規模 - <https://github.com/robconery/massive>
要麼
PetaPoco - <https://github.com/toptensoftware/petapoco>
兩者都是單個 .cs 文件,除了 GAC 中的內容外,沒有依賴項。
(完全披露,PetaPoco 是我寫的)
對於一個性能良好且只需要一個組件的輕量級 ORM,為什麼不試試 Mindscape 的Lightspeed。它不是開源的,但是原始碼可用並且價格合理 - 大多數 ORM 沒有被很好採用的風險當然是質量和支持水平,並且在 .目前淨空間。
由於您不喜歡 NHibernate 的依賴項,聽起來您不需要日誌框架或任何城堡項目方面,即 IoC、Monorail 等。您是否考慮過可能只需要最低限度的 NHibernate 要求(log4net 和我相信 Iesi 集合,以及來自城堡項目的動態代理?)並在它們上執行 ILMerge 以將它們整合到一個程序集中 - 可能需要一些擺弄,但它並不太難 - 或者你可以只提取原始碼這些項目中的每一個都是您為您的組織維護的 NHibernate 的自定義建構,它刪除了您的項目/組織不需要的功能 - 它並不像聽起來那麼難/難,我已經為一個項目做了一些類似的事情我們想從 ORM 中受益,但需要減少分佈式文件/安裝程序的大小。
另外 - 您是否能夠解釋您對基於 Nhibernate 的解決方案的感覺過於“沉重”……以我的經驗,與某些框架相比,它是一個相當輕量級的 ORM 框架。