对ServiceStack 4和MySQL使用Guid ID
如何更改ServiceStack 4的OrmLite.MySql中GUID的序列化方法 MySQL版本3将GUI存储为不带破折号的文本,同样也不使用破折号进行比较 升级ServiceStack 4后,我的所有查找均不返回任何数据。在MySQL日志中,OrmLite发送的查询现在包含破折号,这就是为什么没有匹配项。我需要把它恢复到以前的行为 我自定义了如下序列化设置。他们现在是否也申请OrmLite和DTO对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() {
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切换的风险。。。我们可能不得不再次推迟。