2011-11-23 20 views
10

Từ đầu, tôi đã thực hiện một giải pháp mới với hai dự án: một là MVC 3 và 4,2 dự án EF hỗ trợ khác. Toàn bộ điều xây dựng thành công. Từ dự án MVC tôi mở "Thêm điều khiển" đối thoại và có nó tạo ra mã dựa trên bối cảnh và mô hình tôi chọn từ các dự án hỗ trợ EF. Hộp thoại "thêm bộ điều khiển" không thành công với thông báo:MVC "Thêm điều khiển" là "Unable to Lấy Metadata ... Config hệ thống không thể khởi"

Không thể truy xuất siêu dữ liệu cho 'MyModelClass'. Không thể khởi chạy hệ thống cấu hình.

Tôi nhận thấy rằng hộp thoại "thêm bộ điều khiển" thực sự đang cố tìm nạp chuỗi kết nối cơ sở dữ liệu từ tệp web.config của nó. Đầu tiên, điều này đập vào mắt tôi là ngốc nghếch-ish, kể từ khi dự án EF hỗ trợ đã có một app.config với chuỗi kết nối. Nhưng không bao giờ nhớ rằng, tốt nhất tôi có thể hình là chuỗi kết nối trong web.config là xấu bằng cách nào đó. Đây là hình thức của nó:

<add name="Monsters2Entities" 

    connectionString=" 
     metadata=res://*/Monsters.csdl| 
       res://*/Monsters.ssdl| 
       res://*/Monsters.msl; 
     provider=System.Data.SqlClient; 
     provider connection string=&quot; 
     data source=.; 
     initial catalog=Monsters2; 
     integrated security=True; 
     pooling=False; 
     multipleactiveresultsets=True; 
     App=EntityFramework 
     &quot;" 
     providerName="System.Data.EntityClient" 
/> 

Chuỗi kết nối không thực sự có tất cả các ngắt dòng và thụt lề vô lý - Tôi chỉ đang cố gắng đọc dễ dàng hơn. Dù sao, chuỗi kết nối đó về cơ bản giống với chuỗi kết nối được sử dụng trong dự án EF hỗ trợ mà nó được mô hình hóa. Làm thế nào để sửa tình hình, để làm cho "thêm bộ điều khiển" dialgoue hạnh phúc?

+0

Tôi đã có tệp web.config cho một trong các dự án của mình và được chia thành nhiều phần. Khi tôi cố gắng thêm bộ điều khiển như bạn đã làm, tôi đã nhận được lỗi tương tự. Tôi làm cho nó một tập tin và nó làm việc kỳ diệu. đã không đào sâu vào nó nhiều. – tugberk

+0

Nhìn vào đây http://stackoverflow.com/questions/6508516/asp-net-mvc-3-unable-to-find-the-requested-net-framework-data-provider – Baidaly

+0

Dự án thứ hai của bạn là một dự án thư viện lớp học? – Misi

Trả lời

1

Hãy thử điều này:

<add name="Monsters2Entities" 

    connectionString=" 
     metadata=res://*/Monsters.csdl| 
       res://*/Monsters.ssdl| 
       res://*/Monsters.msl; 
     provider=System.Data.SqlClient; 
     provider connection string=' 
     data source=.; 
     initial catalog=Monsters2; 
     integrated security=True; 
     pooling=False; 
     multipleactiveresultsets=True; 
     App=EntityFramework 
     '" 
     providerName="System.Data.EntityClient" 
/> 

tôi đã thay thế &quot; với '

+0

Thay đổi các dấu tích được mã hóa cho bọ cạp không khắc phục được sự cố. Tôi tin rằng vấn đề là với ngữ nghĩa hơn là cú pháp. –

+0

Tôi nhận được 'Không thể tải tài nguyên siêu dữ liệu được chỉ định.' – Maslow

-1

đầu tiên cần phải cài đặt khuôn khổ gói thực thể

đi đến công cụ> Libray quản lý gói> Quản lý pakage console>: cài đặt thực thể khuôn khổ

+1

Anh ấy sẽ gặp sự cố khi có Thực thể nếu anh ấy chưa cài đặt EF. –

2

Chỉ cần sao chép các thông tin chuỗi kết nối từ bạn dự án mô hình r EF App.Config vào (phần entityFramework ví dụ) của bạn và xem mà bạn không lặp lại bất kỳ phần

+0

Điều này làm việc cho tôi. Dự án web MVC5 của tôi đang phàn nàn về siêu dữ liệu cho chuỗi kết nối. Chỉ cần sao chép chuỗi kết nối từ ứng dụng của dự án EF6.config vào web.config. Sau đó, tôi có thể thêm điều khiển và xem scafolded. – bob

0

tôi thấy thjis giúp khi tôi đã có này vấn đề:

Gỡ cài đặt phiên bản tiền phát hành của EF và cài đặt EF5 Đã đi tới Sql Server Object Explorer và xóa db. Xây dựng lại giải pháp PM đã sử dụng> Cập nhật-Cơ sở dữ liệu -Xác lý

Có lẽ vấn đề là với bản phát hành trước EF hoặc chỉ làm sạch khẩu vị là tất cả những gì cần thiết.

Tôi khá mới đối với tất cả những điều này nhưng điều này đã cho phép tôi sử dụng công cụ giàn giáo Thêm Bộ điều khiển với bộ điều khiển "MVC có đọc/ghi hành động và đánh giá, sử dụng Khuôn mẫu thực thể".

+0

Chào mừng bạn đến với So. có thể là một câu hỏi được hỏi trong khối trả lời câu trả lời. Vui lòng viết một câu hỏi mới cho các loại truy vấn như vậy. – Luv

+0

Cảm ơn bạn. Tôi đã không hỏi một câu hỏi. Đang cố gắng hỗ trợ giải pháp mà tôi tìm thấy khi đối mặt với cùng một vấn đề. – ajw1970

0

Trước hết bạn nên kiểm tra chuỗi kết nối của bạn phải trong file Web.Config của bạn trong ROOT! của dự án của bạn sau đó kiểm tra nếu có một chuỗi kết nối hay không nếu có một chuỗi kết nối thay thế nó bằng chuỗi kết nối của bạn .... này giải quyết vấn đề của tôi mà là tương tự như của bạn ....

8

Tôi đã cài đặt EF 6 mà nói thêm:

<providers> 
    <provider invariantName="System.Data.SqlClient" 
     type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
</providers> 

Trong tập tin cấu hình của tôi. Tôi đã có các vấn đề về giàn giáo khác và quyết định quay trở lại Ef 5. Sau khi gỡ cài đặt EF 6 và cài đặt lại EF 5, tôi đã xóa cấu hình và sau đó tôi có thể tạo bộ điều khiển mới của mình. Tôi phát hiện ra điều này bằng cách sử dụng

PM> Update-Database –Verbose 
0

tôi quản lý để giải quyết vấn đề của tôi bằng cách thay đổi chiến lược thế hệ mã của edmx để T4, thêm một Context EF5 Db và thay thế% edmxInputFile% trong cả * .tt và * .Context. tệp tt.

0

Đổi tên lớp mẫu - làm việc cho tôi

0

Bạn có chắc chắn để có một ConnectionString trong file Web.Config của bạn trước để tạo ra một bộ điều khiển? Đôi khi chúng ta tạo một dự án khác có chứa Entity DB Context và chúng ta quên thêm cùng một connectionString này trong Web.Config bên trong một dự án khác.

<connectionStrings> 
    <add name="Monsters2Entities" ... /> 
</connectionStrings> 
1

Tôi đã thêm tệp này vào tệp Global.Asax để a) cơ sở dữ liệu được bắt đầu ngay lập tức và b) định nghĩa bảng đã được thêm. cho phép Bộ điều khiển tìm định nghĩa bảng:

System.Data.Entity.Database.SetInitializer<ProjectName.DAL.DBConnectContextName>(new CreateDatabaseIfNotExists<ProjectName.DAL.DBConnectContextName>()); 
0

Tôi gặp vấn đề này "Không thể truy xuất siêu dữ liệu ..." khi tôi đang điều khiển Bộ điều khiển. Giải pháp cho việc này là như sau.

  1. Trong kết nối Nhà cung cấp thay đổi chuỗi thành "system.data.sqlclient" 2.hoặc xóa chuỗi kết nối khỏi Web.config và Thêm bộ điều khiển và sau khi thêm bộ điều khiển, hãy thêm chuỗi kết nối.

Dường như đây là lỗi trong MVC. Tôi hy vọng với điều này bạn có thể tiếp tục.

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