Skip to content

Creating and updating models

misonou edited this page Sep 14, 2016 · 3 revisions

Creation, update and deletion of list items through model classes are also done with the manager.

Creating new item

New model instance can be created from SPModelManager.Create():

var manager = new MyItemManager(SPContext.Current.Web);

// create a new model from the manager
var newItem = manager.Create<MyItem>();

// set values to the model
newItem.Title = "Sample";

// persist the newly created model as list item to SharePoint
manager.CommitChanges();

Note that if the model class represents a file on SharePoint (i.e. content type derived from 0x0101), a filename is required for creating a new item. That is to use the Create(string) overload.

Model can only be created on manager that refers to a single list.

var manager1 = new SPModelManager<OneListPerWeb>(SPContext.Current.Web);
manager1.Create<OneListPerWeb>(); // OK

var manager2 = new SPModelManager<OneListPerWeb>(SPContext.Current.Site.RootWeb); // has many sub-sites
manager2.Create<OneListPerWeb>(); // Not OK

Updating existing item

Updates to existing item is also done by calling SPModelManager.CommitChanges(). You can also update specifically one item by calling its overload.

var manager = new MyItemManager(SPContext.Current.Web);
var items = manager.GetItems();

items[0].Title = "New Title";
items[1].Title = "New Title";
manager.CommitChanges(); // update both two items

items[2].Title = "New Title";
items[3].Title = "New Title";
manager.CommitChanges(items[2]); // update only the item at index 2

Deleting existing item

Existing item can be deleted by SPModelManager.Delete().

var manager = new MyItemManager(SPContext.Current.Web);
var items = manager.GetItems();
manager.Delete(items[0]);