2011-02-04 37 views
14

Tôi muốn làm việc với nhà cung cấp DB tùy chỉnh trong Visual Studio. Tôi cần nó để sử dụng Entity Framework.Cách thêm nhà cung cấp DB tùy chỉnh để có thể truy cập trong Visual Studio?

Ví dụ, tôi đã tải về NpgSQL, đăng ký chúng trong GAC:

gacutil -i c:\temp\npgsql.dll 
gacutil -i c:\temp\mono.security.dll 

và thêm vào Machine.config file:

<add name="Npgsql Data Provider" 
invariant="Npgsql" support="FF" 
description=".Net Framework Data Provider for Postgresql Server" 
type="Npgsql.NpgsqlFactory, Npgsql, Version=2.0.6.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" /> 

Nhưng Npgsql đã không xuất hiện trong danh sách Datasource trong Visual Studio :

Data source in VS

Cách thêm nhà cung cấp DB tùy chỉnh vào danh sách này?

UPD: Nếu tôi sử dụng chuỗi lệnh edmgen.exe tôi đã nhận lỗi:

error 7001: Failed to find or load the registered .Net Framework Data Provider.

Trả lời

3

Cũ (từ ngày 7 tháng 7 năm 2013): Không thể thêm nhà cung cấp Npgsql vào trong Visual Studio, vì NpgSql hiện không hỗ trợ DDEX.

Cập nhật vào ngày 29 tháng 12 năm 2013: Dường như hỗ trợ DDEX là added.

+3

Chúng tôi đang nỗ lực hỗ trợ. Chúng tôi hy vọng sẽ sớm được thêm vào. –

+0

Chỉ cần theo dõi: Chúng tôi đã thêm hỗ trợ cho điều đó trong 2.2 beta1 của chúng tôi. Bạn có thể lấy thêm thông tin về cách biên dịch, cấu hình và cài đặt nó tại đây: https://github.com/npgsql/Npgsql/wiki/Visual-Studio-Design-Time-Support---DDEX-Provider Tôi hy vọng nó sẽ giúp –

3

Bạn cần phải khai báo DbFactoryProvider trong một tập tin cấu hình (Web.config, Machine.config, vv). Đây là mẫu tôi lấy từ dự án sử dụng MySQL:

 
<system.data> 
    <DbProviderFactories> 
    <remove invariant="MySql.Data.MySqlClient"/> 
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/> 
    </DbProviderFactories> 
</system.data> 

Tôi cũng thích khai báo các tệp cấu hình ở cấp ứng dụng này và để ứng dụng của tôi sử dụng bản sao lắp ráp cục bộ. Điều này giúp với tính di động vì chúng tôi không thể đảm bảo rằng nhà cung cấp bên thứ ba có sẵn trong GAC.

+0

Tôi đã thêm vào tệp machine.config Nhà cung cấp Npgsql, nhưng lưu ý đã xảy ra. – Anton

+1

Bạn phải chọn đúng machine.config để chỉnh sửa. Trong trường hợp hệ thống 64 bit, hãy chỉnh sửa c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0. * \ Config \ machine.config, nếu không, hãy sử dụng thư mục "Khung" thay vì "Framework64" để định vị tệp cấu hình phù hợp . –

2

Nếu bạn muốn liệt kê lên Npgsql trong danh sách Datasource trong Visual Studio, article này có thể là một chút hữu ích.

Dù sao, vì Visual Studio được Microsoft phân phối, rõ ràng bạn cần làm việc trên bảng đăng ký.

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