DateTime 的 ServiceStack ORMLite SqlList 问题

ServiceStack ORMLite SqlList issue with DateTime

我正在从 v4.0.36 升级到 v4.0.46,我遇到了问题,其中通过 API 生成的 SQL 没有转换 DateTime 值正确:

public static List<T> SqlList<T> (this IDbConnection dbConn, string sql, object anonType = null);

DateTime 将是一个属性,作为传递给方法的对象的一部分。

在 v4.0.36 上,DateTime 值将导致字符串 "yyyy-MM-dd HH:mm:ss"

但是在升级到 v4.0.46 之后,日期时间值现在是 "dd/MM/yyyy HH:mm:ss AM"

并且由于此依赖于日期的查询现在不会返回任何记录,因为 MySQL 无法识别此格式。

我缺少配置吗?或者关于我需要进行哪些更改才能获得与 4.0.36 相同的行为的任何指示?

现在应该解决这个问题 from this commit, available from v4.0.47 that's now available on MyGet 它支持以下每种调用方式:

class DateTest
{
    public DateTime Test { get; set; }
    public DateTime? TestNullable { get; set; }
}

using (var db = OpenDbConnection())
{
    db.DropAndCreateTable<DateTest>();

    var dateTime = new DateTime(2001, 1, 1, 1, 1, 1);
    db.Insert(new DateTest{ Test = dateTime, TestNullable = dateTime });

    var row = db.SqlList<DateTest>(
        "SELECT * FROM DateTest WHERE Test = @dateTime"), new { dateTime });

    row = db.SqlList<DateTest>(
        "SELECT * FROM DateTest WHERE TestNullable = @dateTime"), new { dateTime });

    DateTime? nullDate = dateTime;
    row = db.SqlList<DateTest>(
        "SELECT * FROM DateTest WHERE TestNullable = @nullDate"), new { nullDate });
}

根据我使用 4.0.52 的经验,这仍然会因 DateTime 的空值而中断?。出行方便;

 SqlServerDialect.Provider.RegisterConverter<DateTime?>(new SqlServerDateTimeConverter());