Neo4jMapper renamed

Neo4jMapper is now known as Neo4j.Mapper.

What is Neo4j.Mapper?

Formally known as Neo4jMapper, Neo4j.Mapper is a .NET6.0 library to simplify mapping of cypher values onto your models.

Features

  • Simple Map API which extends Neo4j Driver's IRecord to greatly simplify the extraction and projection of cypher values onto your entity models.
  • Works asynchronously via IStatementResultCursor methods.
  • Automatic mapping of node Ids to your entity models, and GetNode & SetNode helper methods to simplify writing CRUD methods.
  • Custom converters to facilitate conversion between Neo4j Driver's temporal data types such as ZonedDateTime and .NET CLR types such as DateTimeOffset.
  • Neo4jParameters wrapper and Dictionary extension methods to assist in creating parameter maps when performing cypher updates.
  • Superior performance due to the use of best-in-class mapper ServiceStack.Text.
  • Targets .NET6.0.
  • Supports Neo4j.Driver v4.x.

Minimum Viable Snippet

var cursor = await Session.RunAsync(@"
  MATCH (person:Person {name: 'Cuba Gooding Jr.'})-[:ACTED_IN]->(movie:Movie)
  RETURN person, COLLECT(movie) AS movies");

var actor = await cursor
  .MapSingleAsync((Person person, IEnumerable<Movie> movies) =>
  {
    person.MoviesActedIn = movies;
    return person;
  });

Assert.AreEqual("Cuba Gooding Jr.", actor.name);
Assert.AreEqual(1968, actor.born);
Assert.AreEqual(4, actor.MoviesActedIn.Count());

Install Package

Install-Package Neo4j.Mapper

For further information see the Neo4j.Mapper readme and documentation.