2012-02-27 33 views

Trả lời

6

, bạn có thể đăng ký một thực hiện các lớp DbProviderFactory bằng cách thêm following section trong tập tin cấu hình của bạn:

<system.data> 
    <DbProviderFactories> 
     <add name="My Custom Data Provider" 
      invariant="MyCustomDataProvider" 
      description="Data Provider for My Custom Store" 
      type="MyNamespace.MyCustomProviderFactory, MyCustomDataProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=" /> 
    </DbProviderFactories> 
</system.data> 

Việc lắp ráp MyCustomDataProvider không nhất thiết phải được đăng ký trong GAC nhưng có thể được triển khai cùng với đơn đăng ký là private assembly.

Bạn có thể tham khảo nhà cung cấp dữ liệu đã đăng ký theo chương trình bằng cách sử dụng giá trị được chỉ định trong thuộc tính invariant. Ví dụ, bạn có thể nói với ADO.NET để sử dụng MyNamespace.MyCustomProviderFactory bằng cách xác định MyCustomProvider như providerName trong chuỗi kết nối:

<connectionStrings> 
    <add name="ConnString" 
     providerName="MyCustomProvider" 
     connectionString="MyCustomConnectionString" /> 
</connectionStrings> 

Trong mã bạn có thể sử dụng tên nhà cung cấp cùng với DbProviderFactories.GetFactory phương pháp:

DbProviderFactory factory = DbProviderFactories.GetFactory("MyCustomDataProvider"); 

nơi factory sẽ là một phiên bản của lớp MyNamespace.MyCustomProviderFactory.

+0

Đó chính xác là những gì tôi đang làm. Tôi không hiểu tôi đang đi đâu sai? – Mackolicious

+0

Bạn đã cố gắng xác định [tên hội đủ điều kiện] (http://msdn.microsoft.com/en-us/library/k8xx4k69.aspx) trong thuộc tính 'type' chưa? –

+0

Tôi quên đưa DLL vào dự án khởi động của mình. – Mackolicious

Các vấn đề liên quan