2014-06-27 15 views
21

Tôi có 2 dự án DLL lớp dữ liệu. Một là nhấn bảng Oracle và SQL Server khác. Mỗi người đều tự làm việc khi được sử dụng trong các dự án riêng biệt.Entity Framework 5 trộn Oracle & SQL Server

Khi tôi thực hiện một dự án bao gồm cả DLL của tôi nhận được lỗi sau khi một bảng Oracle được truy vấn:

Schema định là không hợp lệ. Lỗi: Model.ssdl (2,48): lỗi 0172:
Tất cả các tạo phẩm SSDL phải nhắm mục tiêu cùng một nhà cung cấp. Nhà cung cấp 'Oracle.ManagedDataAccess.Client' khác với 'Oracle.ManagedDataAccess.Client' đã gặp phải trước đó. Model.ssdl (2,81): lỗi 0169: Tất cả các đồ tạo tác SSDL phải nhắm mục tiêu cùng một nhà cung cấp . ProviderManifestToken '2008' khác với '11 .2 ' đã gặp phải trước đó.

Điều điên, trong 1 dự án của tôi bao gồm 2 lớp dữ liệu dự án nếu tôi nhận xét ra một hàm có sử dụng các lớp dữ liệu SQL Server (mặc dù nó không bao giờ thực sự được gọi là vào thời điểm này) sau đó nó công trinh. Bằng cách nào đó sự hiện diện của mã của nó gây ra lỗi này ở trên. Làm thế nào tôi có thể kết hợp SQL Server và khung thực thể Oracle?

+0

Phiên bản nào của ef bạn đang sử dụng? – mr100

+0

Entity Framework 5 – user441521

+1

Có thể [thay đổi này trong chuỗi kết nối] (http://stackoverflow.com/q/1061409/861716) sẽ giúp ích. –

Trả lời

4

Mã của tôi bắt đầu hoạt động khi tôi chuyển kết nối Oracle DB và truy vấn vào một phương pháp riêng biệt.

Tôi đã ấn tượng rằng tôi nên giữ kết nối Oracle mở cho tất cả các truy vấn vì nó sẽ không hiệu quả nếu không, nhưng apparently điều này thực sự được thực hiện tự động dưới mui xe. Bây giờ phạm vi của hai kết nối là hoàn toàn riêng biệt nó đang làm việc.

Tại sao? Không có ý tưởng ...

+0

Tôi đã làm điều này trong quá khứ. Tôi đã làm một lớp cơ sở và cả hai người bạn của tôi sẽ kế thừa nó. Họ thực hiện kết nối db của riêng họ, nhưng đã sử dụng IConnection đối tượng từ lớp cơ sở. Tất nhiên, bạn phải đóng kết nối càng sớm càng tốt và chỉ có một kết nối vào thời điểm đó. – Fjodr

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