2010-05-12 10 views
5

Çok basit bir web bölümüm var. Ben tek bir ızgara görünümü var, ben linq kullanarak varlıklara dolduruyorum (veya en azından yapmak istediğim şey). Varlık Veri Modeli .edmx dosyası, web bölümü ile aynı projede yer alır ve her şey çalışma düzeninde görünür. Projeyi hata ayıklama, hata mesajı ile varlık modeli yapıcı patlarsa:Entity Framework'ü Sharepoint 2010'da Web Bölümü'nün Veri Kaynağı Olarak Kullanma

Belirtilen adlandırılan bağlantı ya yapılandırmasında bulunmayan olduğunu

, , EntityClient sağlayıcısı ile kullanılmak üzere tasarlanmamıştır veya geçerli değil.

aşağıdaki

app.config Benim bağlantı dizesi gibi:

<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" /> 

yapıcı:

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

Yani, başka bir yerde okudum kadarıyla benim problemim SharePoint olduğunu bağlantı dizgimi göremiyorum. Bu, projemdeki App.Config öğesinin, projeyi çalıştırdığımda/hata ayıkladığında SharePoint'e yüklenmediği anlamına gelir. Bu durumda, SharePoint'in ana SharePoint yapılandırma dosyasına ek olarak App.Config öğesini seçmesini sağlamak için projemi Visual Studio 2010'da nasıl ayarlıyorum. Bağlantı dizesini el ile kopyalamam gerekirse, bunu yapmak için "en iyi yöntem" prosedürü var mı? SharePoint Web Bölümleri Entity Framework ile birleştirildiyse, prime time için hazır değil mi?

cevap

6

Visual Studio 2010 için SharePoint Tools, yol boyunca geldi ve otomatik olarak web.config içine gerekli girişlerin çoğunu yapacak. Ne yazık ki, Entity Framework girişlerini sizin için yapmayacaklar. Bunu yapmak için, web bağlantı projeniz için EF bağlantı dizesini ekleyen bir özellik alıcısı yazmanız gerekir.

SharePoint API'sında SPWebConfigModification adlı bir nesne vardır. Web.config üzerinde yaptığınız değişiklikleri ve ardından değişikliği kaldıran bir FeatureDeactivating olayını yapmak için bu sınıfı kullanan bir FeatureActivated olayı yazmalısınız.

-Greg

+0

, sen EF dışına malzeme taşıyarak kurtardı \ web.config – anpatel

1

Ben SharePoint 2010 WebPart bir aynı hariç güreşiyordum ve nihayet o çalışma var ettik, ama burada yol boyunca öğrenilen iki önemli şeylerdir.

  1. Sandbox çözümü yerine bir çiftlik çözümü kullanmalısınız. Bunun nedeni, sanal alan çözümleri, site koleksiyonu dışındaki verilere erişemez. Daha anlamlı bir istisna, bunu çabucak çözmek için yardımcı olabilirdi, ancak yukarıdaki gibi bir istisna alıyordum.

  2. Bağlantı dizginiz, Web Uygulamanızı yüklediğiniz Web Uygulamasının web.config dosyasında olmalıdır. WebPart'ınızı yüklediğinizde otomatik olarak eklenmez, bu yüzden web.config dosyasını Greg'in yukarıda listelediği şekilde güncellemeniz veya el ile düzenlemeniz gerekir. Bu C oturur: \ inetpub \ wwwroot \ wss \ VirtualDirectories {WebApplicationName} Çok teşekkür ederim :)

İlgili konular