2010-04-05 49 views
1

我正在尋找ado.net的數據訪問層。我對linq,EF,NHibernate或任何其他ORM不感興趣。目前,我正在使用umbraco的數據訪問層。 DAL非常好,但他們停止開發它,所以我正在尋找一個不同的。有誰知道我可以在哪裏找到我可以測試的DAL列表?尋找.NET數據訪問層

回答

0

我發現了一個更好的方法來做到這一點。我將使用微軟數據訪問應用程序塊。這樣我就不需要每次關閉連接或閱讀器。

+1

你爲什麼會經常擔心「關閉連接」? SQL Server使用連接池,所以你沒有真正的關閉和打開連接的開銷。 –

9

如果你想要一個DAL,但不是一個ORM,爲什麼不直接使用ADO.NET呢?

有沒有真正的理由在ADO.NET的頂部添加額外的一層,除非你想擁有的靈活性和易於開發利用的ORM囊括的...

+1

......或者,如果你想爲實現ADO.NET的接口數據庫之間的未來變化的抽象。 +1在閱讀問題後明確表達了我的想法。 –

+0

我不想直接使用ado.net的原因是因爲我必須手動關閉所有資源。使用umbraco DAL時,連接和數據讀取器會自動關閉 – Luke101

+0

當您執行讀取器時,只需在您的DAL中調用CommandBehavior.CloseConnection – VoltaicShock

2

我知道你說你沒不想使用LINQ to SQL,因爲它是一個ORM,但您不必像使用ORM一樣使用它。您也可以通過ExecuteQuery執行原始SQL,並讓它自動將結果填充到對象的屬性中。您可以將結果對象的所需類型指定爲類型參數。它不是全面的ORM - 它可以讓你控制你發送的SQL,但是它不必重複讀取數據。

+0

哇......好主意......如何查詢executequery命令 – Luke101

+0

以我的經驗來看,速度很快。當自動生成的LINQ to SQL查詢太慢時,我通常只將它用作回退。雖然我沒有任何基準數字。 –

+1

雖然這仍然使用ORM。大多數ORM可以選擇將它們配置爲使用存儲過程或手寫查詢,而不是自動生成的查詢,儘管在這種情況下經常會失去很多靈活性,因爲您不能使用'IQueryable '... –