2016-10-04 11 views
7

Tôi đã có một giải pháp Visual Studio mà tôi đã từng chơi với vài dự án C# liên quan đến mã hóa khung Entity Framework.Visual Studio đang cố gắng kết nối cơ sở dữ liệu SQL trong khi tải một giải pháp. Cung cấp lỗi: Không thể mở cơ sở dữ liệu được yêu cầu bởi thông tin đăng nhập

Tôi đã tạo một số cơ sở dữ liệu thử nghiệm để kết nối và tìm hiểu cách tiếp cận đầu tiên và mã db đầu tiên. Vấn đề là bây giờ mỗi khi tôi cố gắng để mở các giải pháp có chứa những dự án, cho một số lý do kỳ lạ Visual Studio, hoặc các giải pháp hoặc một số dự án trong nó cố gắng để kết nối với những cơ sở dữ liệu. Nó cung cấp cho một lỗi như tôi đã xóa những cơ sở dữ liệu:

Cannot open database "Company" requested by the login. The login failed. Login failed for user "administrator".

Dưới đây là ảnh chụp thông báo lỗi:

enter image description here

tôi nhận được lỗi này từng người một trong vài cơ sở dữ liệu. Nhưng tôi tự hỏi tại sao VS sẽ cố gắng để kết nối với một số cơ sở dữ liệu chỉ trong khi tải các giải pháp? Trong trường hợp bất cứ ai khác đã phải đối mặt với tình huống này hoặc biết lý do đằng sau nó thì điều đó sẽ thực sự tuyệt vời.

Lưu ý: Các thẻ trong câu hỏi tôi đã đặt chỉ là do môi trường tôi đang làm việc. Tôi đang cố gắng đạt đến một điểm để tìm hiểu xem vấn đề của tôi có liên quan cụ thể đến những lĩnh vực đó hay không.

+1

Bạn có kết nối với chúng hoạt động trong cửa sổ VS Sql Server Object Explorer hoặc có thể trong cửa sổ VS Server Explorer không? – stuartd

+0

Trước khi đặt câu hỏi vs, trước hết tôi sẽ kiểm tra chủ sở hữu của db khách hàng để đảm bảo rằng người dùng dự định có quyền mở nó, cũng như bất kỳ thư mục nào được dự án của bạn sử dụng.Mã đầu tiên với di chuyển sẽ tạo ra một db cho bạn nhưng đôi khi messes lên chủ sở hữu dbo. (thông thường, người dùng máy tính đã đăng nhập so với chủ sở hữu trang web) – nocturns2

+0

Ohh. Vâng. @stuartd. Bạn đúng rồi. Bây giờ tôi nhận ra rằng mỗi khi tôi đã thêm một tệp 'ADO.Net Entity Data Model' cho Entity Framework vào dự án của tôi, nó đã thêm một kết nối trong cửa sổ Server Explorer. Kết nối tương ứng với DB mà tôi đã chọn trong trình hướng dẫn mô hình dữ liệu thực thể. Tôi thấy rằng có chữ thập đỏ chống lại vài người trong số họ kể từ khi tôi đã xóa cơ sở dữ liệu. Tôi đã xóa các kết nối đó để loại bỏ vấn đề. Nhưng tôi cảm thấy VS không nên thử kết nối chúng trong khi tải các giải pháp. Giữ cho các kết nối đó không hoạt động có thể là một lựa chọn tốt hơn. Có thể là VS làm như vậy vì một lý do. – RBT

Trả lời

4

Được đề xuất một cách chính xác bởi stuartd, Trình khám phá máy chủ trong Visual Studio đang rối tung lên. Đăng câu trả lời trong trường hợp nó cũng giúp bất kỳ ai khác.

Tôi nhận ra rằng mỗi lần tôi thêm tệp Mô hình dữ liệu thực thể ADO.Net cho Entity Framework vào dự án của tôi như được hiển thị bên dưới, nó đã thêm kết nối trong cửa sổ Máy chủ Explorer.

enter image description here

Kết nối được tương ứng với DB tôi đã chọn trong wizard mô hình dữ liệu Ngoài ADO.NET thực thể. Tôi thấy rằng có chữ thập đỏ chống lại vài người trong số họ kể từ khi tôi đã xóa cơ sở dữ liệu từ trường hợp SQL Server. Bất cứ khi nào bạn tải một giải pháp Visual Studio sẽ luôn luôn cố gắng làm mới kết nối của tất cả các cơ sở dữ liệu hiện đang tìm thấy trong Server Explorer. Trong thực tế trong trường hợp của DB có một dấu đỏ chống lại chúng (khi chúng bị xóa) Tôi chắc chắn VS phải sử dụng logic thử lại cũng như trong khi cố gắng tạo kết nối với cơ sở dữ liệu. Tất cả điều này mất và lãng phí thời gian cho đến khi thời gian tải của một giải pháp là có liên quan.

enter image description here

tôi đã xóa những kết nối được đánh dấu bằng một chữ thập đỏ để thoát khỏi vấn đề này. Nó sẽ là tuyệt vời nếu ai đó biết cách đánh dấu các kết nối là không hoạt động tức là các kết nối trực tiếp trong Server Explorer nhưng VS không nên thử kết nối chúng mỗi lần cho đến khi tôi yêu cầu nó làm mới hoặc có thể làm mới khi mở rộng nút của nó .

Tôi cũng quan sát thấy rằng Visual Studio bằng cách nào đó duy trì các kết nối máy chủ thám hiểm này trên cơ sở từng tệp giải pháp, có thể có trong tệp * .suo. Tôi đã phải xóa những kết nối cũ sau khi mở mọi giải pháp mà phải đối mặt với lỗi này liên quan đến vấn đề kết nối DB trong khi nhận được tải trong Visual Studio. Tất cả các giải pháp phải đối mặt với vấn đề này bằng cách nào đó có ít nhất một dự án liên quan đến khung thực thể :)

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