Using SPMetal for retrieving Sharepoint list

SPMetal merupakan sebuah utility yang bisa dimanfaatkan oleh Linq for sharepoint untuk mengambil sebuah item di Sharepoint list.

Skenario :

Tampilan di dalam announcements ketika di klik link-nya akan berwujud tampilan standard, kita ingin membuat tampilan news di dalam sharepoint announcements menjadi bagian dari sebuah application page di dalam sharepoint. Di dalam sample ini saya akan menggunakan sebuah sharepoint site yang sudah ada yaitu http://sony-pc/test

  1. Buat project baru dengan menggunakan template Empty Sharepoint Project. Kemudian pilih farm solution.
    image
  2. Tambahan new item Application page di dalam project.
    image
  3. Di dalam application page yang baru sisipkan di dalam placeHolderMain content place holder yang sebuah literal object.
    image
  4. Masuk ke visual studio command prompt , jalankan perintah SPMetal dengan menggunakan command seperti ini :
    SPMetal /web:http://sony-pc/test  /code:entities.cs
  5. Tambahkan library references Microsoft.Sharepoint.Linq dari “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI” hingga muncul seperti ini :
    image
    image
  6. Di dalam page load event page yang baru sisipkan code seperti ini :string id = Request.QueryString[“id”];

    using (EntitiesDataContext dc = new EntitiesDataContext(“http://sony-pc/test”))
    {
    var q = from Announcement in dc.Announcements
    where Announcement.Id == int.Parse(id)
    select new { Announcement.Title, Announcement.Body };

    foreach(var a in q)
    {
    Literal1.Text = a.Body;
    }
    }

     

  7. Build serta deploy page
  8. Kemudian akses dari browser ke page yang baru dengan lokasi :http://sony-pc/Test/_layouts/feature_sp/newspage.aspx?id=3601
  9. ID 3601 merupakan id dari item announcements yang mau di akses.
  10. Maka akan muncul sebuah page dari news yang kita tambahkan seperti ini :
    image
  11. Ketika berubah-ubah master page, tetap tidak akan berubah tampilan dari application page-nya.

Leave a Reply