Table of Contents

Interface IMapper<T>

Namespace
Apache.Ignite.Table.Mapper
Assembly
Apache.Ignite.dll

Maps rows to objects of type T and vice versa.

This API is performance-oriented and mostly intended for use by source generators, but can also enable advanced mapping scenarios.
public interface IMapper<T>

Type Parameters

T

Mapped object type.

Methods

Read(ref RowReader, IMapperSchema)

Reads an object of type T from an Ignite row.

The columns must be read in the order defined by the schema. A typical implementation looks like this:
var obj = new MyObject();
foreach (var column in schema.Columns)
{
    switch (column.Name)
    {
        case "ID":
            obj.Id = rowReader.ReadInt()!.Value;
            break;
        case "NAME":
            obj.Name = rowReader.ReadString();
            break;
        default:
            rowReader.Skip(); // Unmapped column.
            break;
    }
}
return obj;
Alternatively, if we know the exact schema at compile time, we can read directly:
return new MyObject
{
    Id = rowReader.ReadInt()!.Value,
    Name = rowReader.ReadString()
};
T Read(ref RowReader rowReader, IMapperSchema schema)

Parameters

rowReader RowReader

Row reader.

schema IMapperSchema

Row schema.

Returns

T

Object.

Write(T, ref RowWriter, IMapperSchema)

Writes the specified object to an Ignite row.

The columns must be written in the order defined by the schema. A typical implementation looks like this:
foreach (var column in schema.Columns)
{
    switch (column.Name)
    {
        case "ID":
            rowWriter.WriteInt(obj.Id);
            break;
        case "NAME":
            rowWriter.WriteString(obj.Name);
            break;
        default:
            rowWriter.Skip(); // Unmapped column.
            break;
    }
}
Alternatively, if we know the exact schema at compile time, we can write directly:
rowWriter.WriteInt(obj.Id);
rowWriter.WriteString(obj.Name);
void Write(T obj, ref RowWriter rowWriter, IMapperSchema schema)

Parameters

obj T

Object.

rowWriter RowWriter

Row writer.

schema IMapperSchema

Row schema.