2010-05-12 22 views
5

Tôi có một phần web rất đơn giản. Tôi có một cái nhìn lưới duy nhất, mà tôi đang điền bằng cách sử dụng LINQ để thực thể (hoặc ít nhất đó là những gì tôi muốn làm). Tệp .edmx mô hình thực thể nằm trong cùng một dự án như phần web và mọi thứ có vẻ như đang hoạt động. Khi tôi gỡ lỗi dự án, nó thổi lên trên các nhà xây dựng mô hình tổ chức với thông báo lỗi:Sử dụng khung pháp nhân làm nguồn dữ liệu của phần Web trong Sharepoint 2010

Các tên kết nối quy định là hoặc không tìm thấy trong cấu hình, không nhằm phản ánh được sử dụng với các nhà cung cấp EntityClient, hoặc không hợp lệ.

chuỗi kết nối của tôi trong App.Config được như sau:

<add name="MyDBEntities" connectionString="metadata=res://*/MyDBEntityModel.csdl|res://*/MyDBEntityModel.ssdl|res://*/MyDBEntityModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MyServer;Initial Catalog=MyDB;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> 

Các constructor:

public MyDBEntities() : base("name=MyDBEntities", "MyDBEntities") 

Vì vậy, từ những gì tôi đã đọc ở đâu đó, vấn đề của tôi là SharePoint mà không thể thấy chuỗi kết nối của tôi. Có nghĩa là, App.Config từ dự án của tôi không thực sự được tải vào SharePoint khi tôi chạy/gỡ lỗi dự án. Nếu đó là trường hợp, sau đó làm thế nào tôi làm thiết lập dự án của tôi lên trong Visual Studio 2010 để đảm bảo SharePoint chọn App.Config ngoài tệp cấu hình SharePoint chính. Nếu tôi phải sao chép chuỗi kết nối theo cách thủ công, có quy trình "thực hành tốt nhất" để làm như vậy không? Các phần Web SharePoint được kết hợp với Khung thực thể chưa sẵn sàng cho thời gian chính không?

Trả lời

6

Công cụ SharePoint cho Visual Studio 2010 đã đi cùng và sẽ tự động tạo nhiều mục nhập cần thiết vào web.config. Thật không may, họ sẽ không làm cho Entity Framework cho bạn. Để làm điều này, bạn sẽ cần phải viết một bộ thu tính năng cho dự án phần web của bạn để thêm chuỗi kết nối EF.

API SharePoint có đối tượng có tên SPWebConfigModification. Bạn nên viết một sự kiện FeatureActivated sử dụng lớp này để thực hiện sửa đổi của bạn với web.config và sau đó một sự kiện FeatureDeactivating loại bỏ sửa đổi.

-Greg

+0

:) Cảm ơn bạn rất nhiều, bạn đã cứu tôi khỏi việc di chuyển nội dung ra khỏi EF – anpatel

1

Tôi đã vật lộn với một ngoại lệ tương tự trong một SharePoint 2010 WebPart, và cuối cùng tôi đã nhận nó làm việc, nhưng đây là hai điều quan trọng mà tôi học được trên đường đi.

  1. Bạn phải sử dụng giải pháp trang trại thay vì giải pháp hộp cát. Lý do cho điều này là, các giải pháp hộp cát không có quyền truy cập vào dữ liệu bên ngoài tuyển tập trang. Một ngoại lệ có ý nghĩa hơn sẽ hữu ích để giải quyết vấn đề này một cách nhanh chóng, nhưng tôi đã nhận được ngoại lệ như trên.

  2. Chuỗi kết nối của bạn phải nằm trong web.config của Ứng dụng web mà bạn cài đặt WebPart. Nó không được thêm tự động khi bạn cài đặt WebPart của bạn, vì vậy bạn phải cập nhật web.config theo cách Greg liệt kê ở trên hoặc chỉnh sửa thủ công. Nó nằm trong C: \ inetpub \ wwwroot \ wss \ VirtualDirectories {WebApplicationName} \ web.config

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