Sharepoint 2010 ile birlikte gelen yeniliklerden birisi olan LinqToSharepoint ile birlikte artık Caml sorgusu yerine Linq sorguları ile verilerimizi çekebileceğiz.
SP2010 öncesinde CodePlex’de proje bulunmaktaydı.
Sorgularımız oluşturmak için 14 klasörü içerisinde bulunan BIN klasöründeki SPMetal.exe den yararlanmaktayız. SPMetal ile oluşturulan kodu projemize ekledikten sonra listelerimize, resim kütüphanelerimize, sayfalarımıza ulaşıp sorgulayabiliriz.
Gelin sade bir örnekle bunu inceleyelim.
Öncelikle haberlerimizin tutulacağı custom list oluşturalım adına “Haberler” diyelim.


Haberlerin kolonları aşağıdaki gibi olsun



Projemizi oluşturduktan sonra SPMetal ile Entities kodumuzu oluşturalım.
Bunun için .bat dosyası oluşturmamız gerekmekte ve gerekli parametreleri girmeliyiz.
Set SPMETAL="C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN\SPMETAL.EXE"
%SPMETAL% /web:YOURWEBSITE /namespace:Entities /code:Entities.cs
Yukarıdaki komutları not defterine yazıp “SPMetal.bat” olarak kaydedip çalıştırdığımızda Entities.cs olarak kodları oluşturmakta. YOURWEBSITE kısmını siz kendi sitenize göre değiştirmeyi unutmayınız.
Projemizi oluşturup ve Entities.cs’yi ekledikten sonra

ISAPI klasörü altındaki Microsoft.Sharepoint.Linq dllini referans olarak projemize ekliyoruz.

using Microsoft.SharePoint.Linq;
namespacelerini ekliyoruz ve ardından linq sorgumuzu yazmaya geçelim.




Deploy dedikten sonra ilgili sayfayı düzenleyip webpartımızı ekliyoruz. Haberler WebPartımız “Custom” altında web partlar içerisinde yerini almaktadır.

LinqToSharepoint de karşılaştığım sıkıntı senkron olmaması. Sharepoint portalımızda değişiklik yaptığımızda örneğin seçeneklere yeni bir seçenek eklediğimizde. Bunu Enitities.cs kodumuza da yansıtmamız gerekir isterseniz kendiniz yazarak ekleyebilirsiniz ama daha sağlıklı olması açısından tekrar SPMetal uygulamasını çalıştırıp kodu güncel hale getirmeliyiz.
Channel9'daki videoyu tavsiye ederim.
Hiç yorum yok:
Yorum Gönder