2013-01-19 44 views
11

我想知道什麼是Microsoft.Practices.EnterpriseLibrary.Data以及爲什麼我們使用這個DLL。 這個DLL有什麼好處。什麼是Microsoft.Practices.EnterpriseLibrary.Data

我想在3層架構上創建一個項目什麼是sql查詢的最佳方式。

天氣我使用這個DLL或去簡單的sqlcommand和dataadapter。 目前我這樣我的工作: 我在DAL文件代碼是:

public void Insert(long id) 
{ 
    connection.Open(); 
    SqlCommand dCmd = new SqlCommand("test_procedure", connection); 
    dCmd.CommandType = CommandType.StoredProcedure; 
    try 
    { 
     dCmd.Parameters.AddWithValue("@id", id);   
     dCmd.ExecuteNonQuery(); 
    } 
    catch 
    { 
     throw; 
    } 
    finally 
    { 
     dCmd.Dispose(); 
     connection.Close(); 
     connection.Dispose(); 
    } 
} 

我感到困惑的天氣我在正確的方式工作或我應該使用Microsoft.Practices.EnterpriseLibrary.Data然後我創建DatabaseFactory

+0

我一直在你身邊,所以我很同情。我不知道使用SqlCommand和SqlConnection對象有什麼問題。像企業庫這樣的東西是更高級別的包裝,可以讓你編寫代碼,這些代碼可以配置爲與更廣泛的數據庫(不僅僅是SQL Server)一起工作。但是,如果你只是在學習,我會堅持你所擁有的。 –

+0

實體框架是微軟當前的ORM日期 –

+1

@AaronAnodide:我知道沒有任何錯誤,但我想知道最新的差異以及'Microsoft.Practices.EnterpriseLibrary.Data'的真正好處是什麼, –

回答

13

Microsoft.Practices.EnterpriseLibrary.Data庫的主要優點是它可以更輕鬆地生成與數據庫無關的代碼。開發人員主要與更通用的數據庫vs SqlConnection和DbCommand vs SqlCommand對象交互,理論上講,將底層數據庫從MSSQL切換到Oracle的機制變得更容易一些。即使在我的發展經驗中,我從來沒有見過這種情況發生。

Microsoft.Practices.EnterpriseLibrary.Data還指導開發人員使用DbParameter查詢參數,這可以降低SQL注入攻擊的風險。

Microsoft.Practices.EnterpriseLibrary.Data是核心ADO.Net構造的更高抽象,使開發人員能夠以最少量的代碼完成相同的任務。

如果您的學習數據訪問策略我建議繼續使用ADO.Net,您越瞭解基礎知識就越有用Microsoft.Practices.EnterpriseLibrary.Data或Entity Framework或NHibernate將使用,因爲您瞭解基礎知識,因爲技術是建立在ADO.Net之上。

相關問題