ADO.NET 學習指南


  1. 說明
    1. 為什麼需要知道 ADO.NET
    2. ORM 所帶來的優點與缺點
  2. ADO.NET
    1. Connected Classes
    2. Disconnected Classes
    3. Builder Classes
    4. Providers
  3. 參考資料

筆記深入 ADO.NET 以更熟悉 .NET 開發生態系以及瞭解 ORM 與 ADO.NET 互動個關係。

logo

說明

為什麼需要知道 ADO.NET

  1. ADO.NET 是 EntityFramework、NHibernate 及 Dapper 等 ORM 框架的資料存取底層
  2. 相較於 ORM,ADO.NET 的資料存取速度最快
  3. 可以存取多種的資料來源

ORM 所帶來的優點與缺點

⭕️ 物件對照關係,利於物件導向開發
⭕️ 資料存取的方式簡便,所需撰寫的程式碼較少,並且不需要寫 SQL 語法
⭕️ 將資料庫進行抽象化,讓開發專注在物件使用上

❌ 存取速度較慢、可能會產生效能不佳的查詢語法
❌ 對於預存程式的使用可能會發生問題
❌ ORM 改版可能會使原本使用的存取技術發生問題

ADO.NET

ADO.NET 物件類別與關鍵字。

Connected Classes

Connection, Transation, Command, DataAdaper, DataReader

Disconnected Classes

DataSet, DataTable, DataView, DataRow

Builder Classes

ConnectionString Builder, CommandBuilder

Providers

{
  'SQL Server': {
    'namespace': 'System.Data.SqlClient',
    'provider': ['SqlConnection', 'SqlCommand', 'SqlAdapter']
  },
  'OLE DB': {
    'namespace': 'System.Data.OleDb',
    'provider': ['OleDbConnection', 'OleDbCommand', 'OleDbAdapter'],
  },
  'ODBC': {
    'namespace': 'System.Data.Odbc',
    'provider': ['OdbcConnection', 'OdbcCommand', 'OdbcAdapter'],
  },
  'ORACLE': {
    'namespace': 'System.Data.OracleClient',
    'provider': ['OracleConnection', 'OracleCommand', 'OracleAdapter']
  }
}

參考資料

Implementing ADO.NET with C#