ADO.NET 學習指南

2021-04-11

筆記深入 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#