2012-03-06 53 views
0

我被要求在幾個小時內實現必須訪問SQL Server數據庫的新ASP.NET應用程序。針對SQL Server和.NET的數據庫通信層的最佳實踐

我想知道什麼是最好的(和最快的)方法來訪問數據庫,一個很好的做法是創建一個數據訪問層,但你會如何創建呢?

  1. 使用ADO.NET和每個查詢創建方法runQuery(query,parameters)和多單的方法,如:

    getRowByID(id){ 
        runQuery("SELECT..",id); 
    } 
    
    getRowsByDate(date){ 
        runQuery("SELECT..",date); 
    } 
    
  2. 使用內置在Visual Studio嚮導? (可怕的解決方案,但很快)

  3. 使用像NHibernate的,LINQ的還是...?

我個人認爲第一種方法不是太複雜,我不喜歡自動生成的代碼,所以我會放棄第二個,也許第三個?

讓我知道你的想法,如果你有任何有效的例子。

謝謝

+2

EF應該是非常快速和容易的 – 2012-03-06 10:54:36

+0

海事組織歸結爲你有3個選項中的每一個有多少經驗。 – Firo 2012-03-06 10:56:50

+0

我只會使用選項#3 - 在您的代碼中爲您提供了一個不錯的基於對象的編程接口,並將所有血淋淋的細節留給了ORM。 #1是**非常糟糕的**(*一種方法的一切*),我不知道你是什麼意思#2 .... – 2012-03-06 10:57:04

回答

1

getRowByID(ID){ getRowsByDate(日期){

兩行解僱你。使用ORM。使用支持LINQ的東西。如果你想快速輕量級地使用BLToolkit。

2.使用內置的嚮導在Visual Studio

再次發射。

3.使用類似nHibernate,Linq或...?

沒錯。

+0

感謝您的幫助。我同意#3是最好的方法,但是我不明白爲什麼#1是錯誤的......?謝謝 – Lince81 2012-03-06 11:25:20

+0

因爲你最終會遇到可能需要編寫osmoene的每個可能查詢的mre和mor emethods。是反模式 - 隨着時間的推移,這成爲一個不可維護的野獸。 – TomTom 2012-03-06 11:41:10

1

我總是喜歡存儲過程。它們測試速度快,易於測試,參數化的數據很容易插入,萬一出現問題,通過直接執行SP測試真的很容易。以後也很容易做出更改,以及使用默認的空參數等。你大部分/只做SELECT查詢嗎?

0

如果我需要快速敲出使用數據庫的應用程序 - 我使用Linq to Sql。它只是簡單而乾淨。

0

因此,正如@TomTom所說,使用像實體框架和LINQ這樣的ORM是訪問數據庫的一種非常快速的方式,它可以讓您的應用程序非常靈活,因爲您可以輕鬆更改後臺數據庫而無需更改在數據訪問層(您只需將提供者更改爲正確的那一行)。

使用奧姆斯將意味着你會得到某種方式自動生成的代碼,它肯定不會是一樣快,如果你手工編寫代碼當然。但是,這仍然是迄今爲止微軟提供的有關數據訪問的最快解決方案。

0

我更喜歡使用EF或Linq到SQL。快速和第一。而且我不需要在代碼中編寫SQL語句。因爲它是Language Integrated Query(LINQ)的一個對象。我也喜歡在Visual Studio中顯示錶名,列名的Intelliense,它也減少了我的調試時間。

1

DO選3,只是使用BLToolkit,這裏是一個鏈接 - >http://www.bltoolkit.net/Doc.Linq.ashx 只是檢查出的演示項目

如果你想有一個簡單的抽象選擇BLToolkit,肯定不是EF