Shmapper is a lightweight mapper for Sharepoint lists (2010 and 2013) for CSOM.
Maps ListItem fields to strongly typed entities and provides handy interface to work with them.
Wiki: Mapping How-to / Comparison with alternatives / CSOM Info
- Attribute-based mapper for POCO entities
- All basic CRUD operations for collections and single entities
- Supports LINQ-filters for entities
- Loads only mapped fields
- LINQ queries converted to CAML (by Camlex.Net)
- ExecuteQuery() called few times as possible
var SharepointClient = new SharepointClient("sharepoint-url", new NetworkCredential("user", "password"));
var CustomersByQuery = SharepointClient.Query<SpCustomer>(c => c.Title == "Cisco");
// Mapping:
[SharepointList("CustomersListName")]
public class SpCustomer : ISharepointItem
{
[SharepointField("IdInternalName")]
public int Id { get; set; }
[SharepointField("TitleInternalName")]
public string Title { get; set; }
}
All requests will be translated to CAML query.
For example, expression SharepointClient.Query(c => c.Title == "Cisco") will be translated to:
<!-- Produced CAML query -->
<View>
<Query>
<Where>
<Eq>
<FieldRef Name="TitleInternalName" />
<Value Type="Text">Cisco</Value>
</Eq>
</Where>
</Query>
<ViewFields>
<FieldRef Name="IdInternalName" />
<FieldRef Name="TitleInternalName" />
</ViewFields>
</View>
There are 2 ways to use this library:
- Install-Package Sharepoint.Shmapper (via Nuget)
- Download source code and compile
- Check exotic fields (system, non writable, etc)
- Support more field types
- More documentation
- Test with Sharepoint 2016
- Check mapping method (?)
- Exception handling (?)