我們已經建議在我們的項目中使用NHibernate。但關鍵是我們的應用程序只會從數據庫中檢索數據,所以在這種情況下使用NHibernate會有什麼好處?僅在數據檢索場景中,NHibernate的好處是什麼?
還有一件事,NHIbernate中的查詢執行計劃是什麼樣的呢?它支持類似預準備語句還是所謂的預編譯語句。
我們已經建議在我們的項目中使用NHibernate。但關鍵是我們的應用程序只會從數據庫中檢索數據,所以在這種情況下使用NHibernate會有什麼好處?僅在數據檢索場景中,NHibernate的好處是什麼?
還有一件事,NHIbernate中的查詢執行計劃是什麼樣的呢?它支持類似預準備語句還是所謂的預編譯語句。
我同意上面的答案,但還有一個使用nhibernate的理由:您完全獨立的數據庫系統。你可以從mysql切換到oracle,你唯一需要做的就是改變設置。對數據庫的訪問保持完全一樣。
NHibernate很有用,您需要將數據庫中的數據映射到.NET類中。即使您只是在執行選擇查詢,如果您需要將數據對象傳遞到客戶端層(網頁,桌面應用程序等)以供顯示,它仍然可能非常有用。使用純對象比在表示層中使用DataSet或其他ADO.NET數據類更容易。
如果您將NHibernate映射到映射文件中,NHibernate確實能夠解析/預編譯查詢。
在只讀場景中使用NHibernate的好處是,您不需要將查詢結果映射回.net對象,因爲運行時會爲您執行此操作。此外,它提供了更多面向對象的查詢語法(您也可以使用LINQ),並且可以利用延遲加載。
我不相信NHibernate可以使用準備好的語句,除非你有它調用存儲過程。