The example in this topic show how to use CSOM to Add Site Column To List Content Type in SharePoint
- Please follow the steps below to execute the code in Visual Studio using
Console Application. You can customize the solution according to your requirements.
- Check the article to
Connect to SharePoint context using CSOM. This is very helpful
if you are doing any programming in CSOM.
- Don't forget to use the assemblies as mentioned in the code.
How to run CSOM code in SharePoint?
- Open your Visual Studio.
- From the template, select Console Application as shown in the screenshot
- Select the .Net Framework version from the top drop-down as well.
You can also change the .Net Framework after creating the solution.
- Enter Project Name, Location and Solution
Name and click on OK.
- Now your program.cs file will open. Copy the code in main function.
- Once you are done with your code, just hit F5 or Run the application.
- using Microsoft.SharePoint.Client;
- using System.Linq;
-
- using (ClientContext
clientContext = new ClientContext("http://MyServer/sites/MySiteCollection"))
- {
-
// This method may not work for Calculated column
-
-
// clientcontext.Web.Lists.GetById - This option also can be used to get the list
using List GUID
-
// This value is NOT List internal name
-
List targetList = clientContext.Web.Lists.GetByTitle("a b");
-
- clientContext.Load(targetList.ContentTypes);
- clientContext.ExecuteQuery();
-
ContentTypeCollection contentTypeCollection
= targetList.ContentTypes;
-
-
// Mention Target Content Tye Name here
-
ContentType targetContentType
= (from contentType in
contentTypeCollection where contentType.Name ==
"Event" select
contentType).FirstOrDefault();
-
-
// Code to add site column to list content type
-
if (targetContentType !=
null)
- {
- clientContext.Load(targetContentType);
-
Field field = clientContext.Web.AvailableFields.GetByInternalNameOrTitle("ColumnName");
- clientContext.Load(field);
- clientContext.ExecuteQuery();
-
FieldLinkCreationInformation
fieldCreationInfo = new
FieldLinkCreationInformation();
-
- fieldCreationInfo.Field
= field;
- targetContentType.FieldLinks.Add(fieldCreationInfo);
-
-
// UpdateChildren - bool, this value indicates whether the children content type(inheriting
from this Content Type) needs to be updated
- targetContentType.Update(false);
- clientContext.ExecuteQuery();
- }
- }
Thank you for reading this article. This code was tested in SharePoint 2013