Interface IMapper<T>
Maps rows to objects of type T and vice versa.
public interface IMapper<T>
Type Parameters
TMapped object type.
Methods
Read(ref RowReader, IMapperSchema)
Reads an object of type T from an Ignite row.
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
rowReaderRowReaderRow reader.
schemaIMapperSchemaRow 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
objTObject.
rowWriterRowWriterRow writer.
schemaIMapperSchemaRow schema.