对ServiceStack 4和MySQL使用Guid ID

对ServiceStack 4和MySQL使用Guid ID,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,如何更改ServiceStack 4的OrmLite.MySql中GUID的序列化方法 MySQL版本3将GUI存储为不带破折号的文本,同样也不使用破折号进行比较 升级ServiceStack 4后,我的所有查找均不返回任何数据。在MySQL日志中,OrmLite发送的查询现在包含破折号,这就是为什么没有匹配项。我需要把它恢复到以前的行为 我自定义了如下序列化设置。他们现在是否也申请OrmLite和DTO void CustomSerializationSettings() {

如何更改ServiceStack 4的OrmLite.MySql中GUID的序列化方法

MySQL版本3将GUI存储为不带破折号的文本,同样也不使用破折号进行比较

升级ServiceStack 4后,我的所有查找均不返回任何数据。在MySQL日志中,OrmLite发送的查询现在包含破折号,这就是为什么没有匹配项。我需要把它恢复到以前的行为

我自定义了如下序列化设置。他们现在是否也申请OrmLite和DTO

    void CustomSerializationSettings()
    {
        ServiceStack.Text.JsConfig<Guid>.SerializeFn = guid => guid.ToString();
        ServiceStack.Text.JsConfig<Guid?>.SerializeFn = guid => guid.HasValue ? guid.ToString() : string.Empty;
        ServiceStack.Text.JsConfig.IncludeNullValues = true;
        ServiceStack.Text.JsConfig.DateHandler = ServiceStack.Text.DateHandler.ISO8601;
        ServiceStack.Text.JsConfig<DateTime>.SerializeFn = DateTimeSerialising.SerialiseDate; 
        ServiceStack.Text.JsConfig<DateTime>.DeSerializeFn = DateTimeSerialising.DeserialiseDate; 
        ServiceStack.Text.JsConfig<DateTime?>.SerializeFn = DateTimeSerialising.SerialiseDateN; 
        ServiceStack.Text.JsConfig<DateTime?>.DeSerializeFn = DateTimeSerialising.DeserialiseDateN; 
    }
void CustomSerializationSettings()
{
ServiceStack.Text.JsConfig.SerializeFn=guid=>guid.ToString();
ServiceStack.Text.JsConfig.SerializeFn=guid=>guid.HasValue?guid.ToString():string.Empty;
ServiceStack.Text.JsConfig.IncludeNullValues=true;
ServiceStack.Text.JsConfig.DateHandler=ServiceStack.Text.DateHandler.ISO8601;
ServiceStack.Text.JsConfig.SerializeFn=DateTimeSerialising.SerialiseDate;
ServiceStack.Text.JsConfig.DeSerializeFn=DateTimeSerialising.Deserialize;
ServiceStack.Text.JsConfig.SerializeFn=DateTimeSerialising.SerialiseDateN;
ServiceStack.Text.JsConfig.DeSerializeFn=DateTimeSerialising.Deserializen;
}
这是MySql和Sqlite现在将GUI视为CHAR(36)的地方,在这里,相同的SQL LINQ表达式可以在所有提供者之间工作


从名称空间
ServiceStack.Text.JsConfig
推断,该配置仅适用于文本序列化,而不适用于OrmLite。除了使用自定义的mysqldiallentprovider覆盖OrmLite的mysqldiallentprovider以重新添加特殊的大小写之外,没有其他简单的覆盖方法。但是,建议升级数据以使用新的(自然)
Guid.ToString()
格式

啊!这种数据变化进一步增加了V4切换的风险。。。我们可能不得不再次推迟。