2012-12-17 31 views
7

Điều này đã được hỏi một vài lần nhưng tôi đã không thể thực hiện bất kỳ đề xuất nào phù hợp với tôi.Windows Azure, khung thực thể. Từ khóa không được hỗ trợ: 'siêu dữ liệu'.

Tôi có trang web và cơ sở dữ liệu SQL mà tôi đã tạo cục bộ và hiện được triển khai vào Azure. Cơ sở dữ liệu là tài nguyên được liên kết với trang web. Tôi có thể duyệt trang web và thậm chí tôi có thể kết nối và chạy các truy vấn đối với cơ sở dữ liệu bằng cách sử dụng ADO.Net và một chuỗi kết nối tiêu chuẩn.

Vấn đề là khi tôi cố gắng kết nối bằng cách sử dụng Khung thực thể, tôi tiếp tục nhận được Từ khóa không được hỗ trợ: 'siêu dữ liệu'. Tôi đã xóa nhiều bộ bản ghi đang hoạt động và đã thử thay thế " bằng 'nhưng nó không hoạt động. Tôi hoàn toàn bị mắc kẹt vì những ý tưởng.

+0

Bạn có thể đăng chuỗi kết nối đầy đủ của mình (bỏ qua tên máy chủ và mật khẩu) và phiên bản EF bạn đang sử dụng hay không và cách tiếp cận bạn đang sử dụng (tức là CodeFirst, ModelFirst, DatabaseFirst). Sau đó, theo dõi stack chính xác lỗi.MARS không phải là vấn đề với SQL Azure kể từ ít nhất 2 năm. – astaykov

+0

Xin lỗi. Tôi có xu hướng quên mọi thứ lúc 3 giờ sáng. Tôi cũng đã sẵn sàng để dán vào. Tôi đã có thể sửa lỗi này bằng cách thay thế " bằng 'và cũng bằng cách thay đổi loại kết nối thành tùy chỉnh như được đề cập bên dưới. –

Trả lời

18

Đây là chuỗi kết nối của tôi được xác định trong cổng Azure, cho một cách tiếp cận DatabaseFirst:

metadata=res://*/mySuperModel.csdl|res://*/mySuperModelModel.ssdl|res://*/mySuperModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=tcp:myServerName.database.windows.net,1433;Initial Catalog=myDatabaseName;User [email protected];Password=myPasswordHere;" 

Hãy so sánh với bạn và lưu ý rằng các loại kết nối là "tùy chỉnh" trong cổng xanh.

+0

Xin lưu ý rằng tôi không kích hoạt MARS trong chuỗi kết nối của mình, nhưng đó là vì tôi sử dụng SQL Azure Federation (không hỗ trợ MARS). Với kết nối SQL Azure thông thường, bạn có thể kích hoạt nó một cách an toàn. – JYL

+0

Cảm ơn. Vấn đề của tôi là kiểu kết nối không được thay đổi. Thiết lập này để tùy chỉnh sắp xếp nó ra. –

+0

Tác phẩm này - cảm ơn bạn !! Xin lưu ý tất cả mọi người - đi tới Azure> Máy chủ ứng dụng, Cài đặt ứng dụng ... Tôi phải xóa phần bắt đầu "và kết thúc" khỏi chuỗi kết nối được liệt kê! Vì vậy, dễ dàng bỏ lỡ chi tiết rất nhỏ. Bạn không nhìn thấy nó trong ví dụ trên, bởi vì nó không nên ở đó. cảm ơn một lần nữa! – Neville

2

Tôi gặp vấn đề tương tự như OP, nhưng giải pháp của anh ấy không hiệu quả đối với tôi.

Đó là vấn đề về chuỗi kết nối, nhưng không phải là dấu ngoặc kép.

Kể từ khi nó đã cho tôi hai ngày để giải quyết, có lẽ điều này sẽ giúp người khác:

Các chuỗi kết nối mà làm việc [cho ASP.NET MVC 4.5 Entity Framework 5.0 application/của tôi khi được lưu trữ trên Azure (Tôi phát triển chống lại SQL Server 2012 cục bộ, nhưng di chuyển cơ sở dữ liệu sang Cơ sở dữ liệu SQL Azure (sử dụng SQL Database Migration Wizard)). Tôi đang sử dụng cơ sở dữ liệu đầu tiên để tạo ra tập tin .edmx của tôi (tôi tạo ra) mô hình dữ liệu (từ cơ sở dữ liệu)] là:

<add name="MYPROJECTENTITIES" connectionString="**metadata=**res://*/MODELS.MYPROJECTMODEL.csdl|res://*/MODELS.MYPROJECTMODEL.ssdl|res://*/MODELS.MYPROJECTMODEL.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=tcp:B6JD5K5EP4.database.windows.net,1433;Initial Catalog=MYPROJECT_DB;Integrated Security=False;User [email protected];Password=MYPASSWORDABC123;**MultipleActiveResultSets=True**;Encrypt=True;TrustServerCertificate=False&quot;" providerName="System.Data.EntityClient"/> 

Các văn bản trong chữ hoa là thông tin Azure của tôi. Rõ ràng, bạn sẽ cần phải sử dụng của riêng bạn để thay thế.

này là một phần của chuỗi kết nối đã cho tôi những cơn ác mộng, và nó có thể gây ra vấn đề của bạn cũng như:

res://*/Models.MyProjectModel.csdl|res://*/Models.MyProjectModel.ssdl|res://*/Models.MyProjectModel.msl 

Những tài liệu tham khảo phải được chính xác đúng. Hãy để tôi lặp lại: Các tham chiếu đó phải chính xác ngay !!

Sau khi đọc this article from 2008 ("Khắc phục sự cố khung kết nối khung thực thể"), tôi đã sử dụng .NET Reflector để xem bên trong MyProjectModel.dll (tên của .dll của tôi (có thể khác trong dự án của bạn) như ông gợi ý và chắc chắn đủ, chuỗi kết nối (được tạo ra tự động cho tôi bởi Entity Framework!) đã sai, nó không bao gồm tiền tố. Ngay khi tôi thêm vào các mô hình , tiền tố (đó là cách .csdl/.msl/.ssdl được đặt tên bên trong của tôi .dll (có thể khác nhau trong của bạn)), tất cả mọi thứ làm việc tuyệt vời.Có một cái nhìn bên trong .dll của bạn và xem nếu các tên phù hợp.Nếu không, thay đổi chúng để phù hợp với những gì xuất hiện trong. Đọc bài viết ở trên nếu những gì tôi nói không đủ rõ ràng.)

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