Obtenga DateTime como UTC con Dapper

Estoy usando Dapper para asignar mis entidades a SQL Server CE. Si guardo unDateTime conKind=Utc, cuando lo leo me sale unDateTime conKind=Unspecified, lo que lleva a todo tipo de problemas.

Ejemplo:

var f = new Foo { Id = 42, ModificationDate = DateTime.UtcNow };
Console.WriteLine("{0} ({1})", f.ModificationDate, f.ModificationDate.Kind);
connection.Execute("insert into Foo(Id, ModificationDate) values(@Id, @ModificationDate)", f);
var f2 = connection.Query<Foo>("select * from Foo where Id = @Id", f).Single();
Console.WriteLine("{0} ({1})", f2.ModificationDate, f2.ModificationDate.Kind);

Este código da la siguiente salida:

20/09/2012 10:04:16 (Utc)
20/09/2012 10:04:16 (Unspecified)

Sé que debería estar usando unDateTimeOffset, pero lamentablemente SQL CE no tiene soporte para este tipo.

¿Hay una solución? ¿Puedo decirle a Dapper que asuma que todas las fechas tienenDateTimeKind.Utc? Y, de manera más general, ¿cuáles son mis opciones para personalizar el mapeo?

EDITAR: Mi solución actual es parchear las fechas después de que Dapper haya materializado el resultado, pero huele un poco ...

var results = _connection.Query<Foo>(sql, param).Select(PatchDate);

...

static Foo PatchDate(Foo f)
{
    if (f.ModificationDate.Kind == DateTimeKind.Unspecified)
        f.ModificationDate = DateTime.SpecifyKind(f.ModificationDate, DateTimeKind.Utc);
    return f;
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta