LINQ to SharePoint: SPLinq in SharePoint2010


In this article, we will see how to work with LINQ to SharePoint. I have tried to address all the common errors we encounter when first time we start using LINQ against SharePoint.


We have a custom list

1. Name of the list is Test_Product.

2. Columns of the list is as below ,


3. There are two items in the list


4. URL of the SharePoint site is


Now we need to fetch the list items in a managed console application using Linq to Sharepoint or SPLinq.

Follow the below steps,


Open the command prompt and change directory to

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN

Type command CD C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN



Now we need to create the class for corresponding list definitions.

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN> spme

tal.exe /web:http://dhananjay-pc/my/personal/Test1 /namespace:nwind /code:Product.cs

In above command we are passing few parameters to spmetal.exe, they are as below

1. /web:Url

Here we need to provide URL of SharePoint site

/web:http://dhananjay-pc/my/personal/Test1 /

://dhananjay-pc/my/personal/Test1 / is URL of SharePoint site, I created for myself. You need to provide your SharePoint site URL here.

2. /namespace:nwind

This would be the namespace under which class of the list will get created. In my case name of the namespace would be nwind.

3. /code:Product.cs

This is the file name of the generated class. Since we are giving name Product for the file then class generated will be ProductDataContext


Open visual studio and create a new project of type console. Right click on the Project and select Properties


Click on the Build tab and change Platform Target to Any CPU.


Click on the Application tab and change the Target framework type to .Net Framework 3.5



The class we created in Step2 will by default get saved in the same folder with SPMetal.exe. So to see where the class got created we need to navigate to folder

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN

Add created class to the Project

Now add this class to the project. To do this, right click on the project and select Add existing item. Then browse to above path and select Product.cs

Add references to the Project



Right click on Reference and select Add Reference. To locate Microsoft.SharePoint and Microsoft.SharePoint.Linq dll browse to C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI. All the SharePoint dll are here in this location.


Add the namespace


Nwind is the name of the namespace of the class we created in Step2.


Now we will write the code to access the SharePoint list using Linq to SharePoint.

a. First we need to create instance of ProductContext class


Here we need to provide URL of the SharePoint site as parameter to constructor.

b. Now we can apply simple LINQ to access the list, like below.


c. There is one more way to access the list



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Linq;
using Microsoft.SharePoint;
using nwind;

namespace SPLinqTest1
    class Program
        static void Main(string[] args)
            ProductDataContext context = new ProductDataContext("http://dhananjay-pc/my/personal/Test1");
            //EntityList<Test1_ProductItem> products = context.GetList<Test1_ProductItem>("Test1_Product");
            var res = from r in context.Test1_Product   select r;
            foreach (var r in res)
                Console.WriteLine(r.ProductId + ":" + r.ProductName + ":" + r.ProductPrice);



2 responses to “LINQ to SharePoint: SPLinq in SharePoint2010”

  1. I really liked and appreciated your content. Thanks.

  2. Not sure why a URI is required since it cannot be altered. Adding the service reference points to a specific site which cannot be changed. This is great if you can develop against production sites. We cannot however. Setting site at runtime is not permitted using the SharePoint REST services.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create a website or blog at