gpt4 book ai didi

升级后 ServiceStack ORMLite 编码问题

转载 作者:行者123 更新时间:2023-12-05 04:07:03 24 4
gpt4 key购买 nike

我们刚刚将一些软件从 ServiceStack 4.0.62 升级到 ServiceStack 5.0.0.0。

出于某种原因,ormlite 的编码管理似乎发生了变化。

在 4.0.62 中使用的简单保存带有包含特殊字符的字符串字段(例如 Ø ← ↑ → ↓ ↔ ↕~ Σ ∂ φ)的 DTO 的代码现在保存 ?在数据库中。

是否发生了任何可能导致重大变化的变化。我们没有更改保存代码,保存之前的断点清楚地显示了正确的字符。

这基本上是我们正在执行的代码:

DB.Save<DTOType>(dtoInstance)

最佳答案

我正在查看 ServiceStack ORMlite 代码并发现了这一点:

OrmLiteConfig.DialectProvider.GetStringConverter().UseUnicode;

所以我尝试调用

OrmLiteConfig.DialectProvider.GetStringConverter(); 

就在 DB.Save 调用返回 false 之前,这可以解释问题,因为这会将 dbCmd 设置为使用 VARCHAR 而不是 NVARCHAR

我设置

 var stringConverter = OrmLiteConfig.DialectProvider.GetStringConverter();
stringConverter.UseUnicode = true;

在 AppHost 初始配置中解决了问题。

显然我无法正确阅读此处描述的文档

https://github.com/ServiceStack/ServiceStack.OrmLite/wiki/OrmLite-Type-Converters

关于升级后 ServiceStack ORMLite 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49040649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com