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 (?)