Получите DateTime как UTC с Dapper

Я использую Dapper для сопоставления моих сущностей с SQL Server CE. Если я сохранюDateTime сKind=Utcкогда я читаю обратно, я получаюDateTime сKind=Unspecified, что приводит ко всем видам проблем.

Пример:

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("select * from Foo where Id = @Id", f).Single();
Console.WriteLine("{0} ({1})", f2.ModificationDate, f2.ModificationDate.Kind);

Этот код дает следующий вывод:

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

Я знаю, что я должен использоватьDateTimeOffset, но, к сожалению, SQL CE не поддерживает этот тип.

Есть ли обходной путь? Могу ли я сказать Дапперу, что все даты имеютDateTimeKind.Utc? И в целом, каковы мои варианты настройки отображения?

РЕДАКТИРОВАТЬ: мой текущий обходной путь заключается в исправлении дат после того, как Даппер материализовал результат, но это вроде пахнет ...

var results = _connection.Query(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;
}

Ответы на вопрос(4)

Ваш ответ на вопрос