Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Giữ một cơ sở dữ liệu ứng dụng là bất khả tri (ADO.NET so với đóng gói logic DB)

Lưu ý: Câu trả lời này có liên quan nếu bạn quyết định sử dụng chức năng ADO.NET 2 cơ bản thay vì ORM (chẳng hạn như Entity Framework hoặc NHibernate) hoặc LINQ to SQL.

Giả sử bạn đã xác định một chuỗi kết nối trong app.config của mình :

<connectionStrings>
    <add name="SomeConnection"
         providerName="System.Data.SqlClient"
         connectionString="..." />
</connectionStrings>

Lưu ý sự hiện diện của providerName thuộc tính và giá trị của nó. Bạn cũng có thể đặt một giá trị cho nhà cung cấp DB khác, ví dụ:System.Data.SQLite .

(Lưu ý rằng các nhà cung cấp không chuẩn, tức là những nhà cung cấp không có trong .NET Framework theo mặc định, cần phải được đăng ký trước, trong app.config hoặc trong machine.config của máy khách .)

Bây giờ, bạn có thể làm việc với cơ sở dữ liệu được chỉ định theo kiểu nhà cung cấp hoàn toàn bất khả tri như sau:

using System.Configuration;  // for ConfigurationManager
using System.Data;           // for all interface types
using System.Data.Common;    // for DbProviderFactories

var cs = ConfigurationManager.ConnectionStrings["SomeConnection"];
//                                              ^^^^^^^^^^^^^^^^

var factory = DbProviderFactories.GetFactory(cs.ProviderName);
//                                           ^^^^^^^^^^^^^^^

using (IDbConnection connection = factory.CreateConnection())
{
    connection.ConnectionString = cs.ConnectionString;
    //                            ^^^^^^^^^^^^^^^^^^^
    connection.Open();
    try
    {
        using (IDbCommand command = connection.CreateCommand())
        {
            ...  // do something with the database
        }
    }
    finally
    {
        connection.Close();
    }
}

Lưu ý cách mã này chỉ hoạt động với các loại giao diện. Nơi duy nhất mà bạn chỉ ra một nhà cung cấp DB cụ thể là thông qua providerName giá trị thuộc tính trong app.config tập tin. (Tôi đã đánh dấu tất cả những nơi có cài đặt từ app.config được lấy bằng ^^^ s.)

Đọc thêm:

  • Mã hóa chung với các lớp cơ sở và dữ liệu ADO.NET 2.0:
    tương tự như câu trả lời của tôi, nhưng đi vào chi tiết hơn.

  • Nhà cung cấp được quản lý ADO.NET và Trung tâm nhà phát triển DataSet:
    bao gồm, trong số những thứ khác, chỉ mục các nhà cung cấp cơ sở dữ liệu ADO.NET có sẵn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xây dựng danh sách giá trị được phân tách bằng dấu phẩy trong câu lệnh Oracle SQL

  2. Toán tử Oracle (+)

  3. Các mô hình định dạng được hỗ trợ cho các hàm ngày ROUND () và TRUNC () trong Oracle

  4. Tìm nạp loại bảng Oracle từ thủ tục được lưu trữ bằng JDBC

  5. Oracle RAC trên đám mây của bên thứ ba