2008-10-09 35 views
4

也許還有其他的東西? 我已經在使用nHibernate,但偶爾會遇到一個懶惰的初始化代理對象實際上不會初始化的問題。我正在考慮嘗試其他的東西。該網站擁有用戶帳戶,用戶帖子和照片,並將這些內容過濾爲特定位置名稱和標題/說明匹配。更不用說投票,評級和標記作爲最愛。所有這些都會導致不同數量的數據庫負載。你會選擇什麼ASP.NET Web應用程序; nHibernate,Linq或SubSonic

+0

我真的鼓勵試圖發現爲什麼你間歇的延遲加載問題與NHibernate。這在正常情況下不會發生。 – 2008-10-09 20:39:26

+0

這可能是由於沒有使用最新版本,因爲我們在NHibernate上構建的訪問層最常用的方法不再受支持。看重寫它可能與選擇新解決方案一樣困難。 – dlamblin 2008-10-21 01:19:24

回答

1

我喜歡SubSonic,因爲它很容易配置和生成DAL。這個實現不是一個完整的ORM,因爲它只爲每個表創建一個類。能夠使用存儲過程可以補償何時需要編寫作爲連接結果的對象。同樣,SubSonic旨在實現功能性,因此它可以幫助您快速實現項目目標。

也就是說,您無法使用SubSonic來「編寫對象」 - 沒有描述類之間關係的配置文件。數據庫仍然決定你如何塑造你的解決方案。

2

我們在一個相當活躍的站點上使用ADO.NET實體框架(每天10,000次訪問)。這對我們來說是堅實的。缺乏延遲加載很煩人,但它會讓你考慮去數據庫。

0

LINQ是一個不錯的選擇。它在Stackoverflow中使用,在我目前的項目中,我們使用LINQ來訪問數據。

5

SubSonic目前用於我們所有的webform應用程序,並取得了巨大成功。在幾分鐘內,整個數據庫就可以從頭開始生成,隨時準備在您的應用程序中使用。 SubSonic創作者Rob Conery提供了一些精彩的網絡廣播,詳細介紹了在Web應用程序中設置SubSonic位的過程以及一些很酷的演示,以幫助您開始。檢查出SubSonic Project

4

我一直在使用LLBLGen Pro作爲我的ORM大約一年,它的工作得很好。雖然我沒有使用SubSonic,但我被告知它們是相似的。從頭開始,它可以從數據庫創建一個數據訪問層,並且只需幾分鐘即可使用。有一個輕微的學習曲線,至少對我來說是這樣,但幫助文件提供了足夠的信息來幫助你完成幾乎任何你遇到的問題。該應用程序可以按照沒有問題安裝的方式使用,但也支持大量定製(可能太多?)。

+1

LLBLGen臨巖!延遲加載,預取路徑(以最少的查詢獲取整個圖),支持無限的嵌套謂詞,連接等。另外,擴展生成的代碼非常容易;自助服務模式使用繼承策略來允許擴展而不中斷生成。 – 2008-10-16 05:16:34

0

Hibernate for Java項目,但毫無疑問,LINQ for .Net。爲什麼在內置LINQ時添加外部依賴關係?

0

我也會去LINQ,但我必須承認LINQ to SQL有分層問題。我已經閱讀了很多關於LINQ to SQL的文章,並且他們都建議它基本上是爲RAD應用程序創建的。

2

如果你的數據庫中的繼承模型與Linq的非常有限的繼承支持一起工作,那麼我說去Linq。如果你需要更復雜的繼承場景,那麼我會說,你應該堅持使用NHibernate,並努力解決你遇到的任何痛苦。

1

如果您對懶惰的初始化代理有特定的麻煩,爲什麼你沒有這樣做呢?或只有懶裝袋。我認爲這是值得一試,然後重寫你的應用程序的框架沒有延遲加載。

1

我在微軟生態系統的經驗:

我使用LINQ2SQL上幾個項目,我已經運行到該azamsharp提到的「分層」的問題。

不是說如果你將POCO發送回你的邏輯或UI層,它會有很大的幫助,但是Repository模式的實現對這個令人討厭的分層和關注問題的分離有點幫助。

A good basic Repository Impl

對於使用像投票或統計數據(基本上任何域對象需要顯示或不同操作上比它在數據庫的代表)的ADO.Net實體框架爲您提供了一定的優勢複雜的語義什麼。它可以通過包含複雜的數據檢索來簡化您的業務邏輯/數據訪問層。

ADO.Net Entity Framework Overview

希望幫助!

3

我會使用NHibernate。持久性無知是我的主要銷售字體之一,而不是綁定到數據庫是另一個。實體框架有着深刻的缺陷,不僅僅是缺乏延遲加載。 EF和LINQ2SQL都是新技術,而NHibernate非常成熟並且看到了更多的操作。

NHibernate的另一個好處是無需編輯您的數據就可以切換數據庫。我將它用於本地運行的集成測試,running them against SQLite and then SQL Server on the CI server

相關問題