Using LINQ in SharePoint 2010: Part 2


Here is Part 1

In this article we will be seeing how to use LINQ in SharePoint 2010 to add, update and delete the list item.

In SharePoint 2010 you have the ability to use LINQ syntax to query the list instead of using CAML query. In order to work with LINQ we need a command line tool called SPMetal.exe.

This tool is used to generate the entity classes that is required to perform object oriented queries towards SharePoint server. It is also required to get the intellisense when we are working in Visual Studio 2010.This tool resides in 14\bin folder.

Creating the entity classes:

  • Open Command Prompt as an administrator.
  • Change the path to C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN.
  • Run the following command to generate the entity classes.

    Spmetal.exe /web:http://servername:2010/sites/test/ /code:C:\MyEntities.cs

    image1.gif

Inserting a new list item using LINQ:

  • Open Visual Studio 2010.
  • Go to File => New => Project.
  • Select Console Application from the installed templates.
  • Right click on the solution, select "Add an existing item".
  • Add the MyEntities.cs class to the solution.
  • Replace the code with the following.

    class Program
        {
            static void Main(string[] args)
            {
                // Create an instance
                MyEntitiesDataContext myEntitiesDataContext = new MyEntitiesDataContext("http://serverName:2010/sites/test/");

                // Get the list from the site
                EntityList<Item> listItems = myEntitiesDataContext.GetList<Item>("CustomList");

                //Create a new item
                Item newItem=new Item ()
                {
                  Title="Test3"
                };
     
                // Insert the new list item to the list
                listItems.InsertOnSubmit(newItem);

                //Submit the changes
                myEntitiesDataContext.SubmitChanges();  
            }
        }


  • Build the solution.
  • Hit F5.

    image2.gif

Updating a list item:

  • Replace the code with the following.

    class Program
        {
            static void Main(string[] args)
            {
                // Create an instance
                MyEntitiesDataContext myEntitiesDataContext = new MyEntitiesDataContext("http://serverName:2010/sites/test/");

                // Querying the list item that has to be updated
                var updateItem=(from item in myEntitiesDataContext.CustomList
                                where item.Title=="Test1"
                                select item).First();
                updateItem.Title = "UpdatedItem";

                // Submit the changes
                myEntitiesDataContext.SubmitChanges();                    
            }
        }

  • Build the solution.
  • Hit F5.

Deleting the list item:

  • Replace the code with the following.

    class Program
        {
            static void Main(string[] args)
            {
                // Create an instance
                MyEntitiesDataContext myEntitiesDataContext = new MyEntitiesDataContext("http://serverName:2010/sites/test/");

                // Get the list from the site
                EntityList<Item> listItems = myEntitiesDataContext.GetList<Item>("CustomList");      

                // Querying the list item that has to be deleted
                var updateItem=(from item in myEntitiesDataContext.CustomList
                                where item.Title=="Test3"
                                select item).First();

                // Deleting the list item
                listItems.DeleteOnSubmit(updateItem);

                // Submit the changes           
                myEntitiesDataContext.SubmitChanges();   
            }
        }


  • Build the solution.
  • Hit F5.

    image3.gif