这个组合有点奇葩,但后台就想快速,用了winform(不高兴调页面效果了,直接拖拽控件绑定数据解决),然后 .net core 和 .net framework 共用类库的时候扯了, 查了半天版本表,只能用standard 2.0 可以同时满足两方面的要求
说几个踩的坑:
-
Mysql数据库连接器踩的坑
1.1 安装Mysql官方for visual studio插件 (无效,用起来各种奇葩问题);
1.2 安装使用Mysql 官方的 .net connnector (基本无效,开始在类库和winform项目中还马虎,做.net core WEBAPI的时候各种奇葩问题)
1.3 使用Nuget里的Mysql包(可以,但同时要清除掉1.2残余); -
Mysql数据库检索数据的坑
遇到一个奇葩问题,就是在对一个数据表select的时候一直报 ArgumentOutofRangeExcepition, 长度必须为非负值,空表也这样,把MYSQL的文档都翻了一遍,看到有人抱怨这个很类似的,基本无解状态
仔细排查了表结果,发现一个字段 用的是 char 36 (在Mysql实操中一般用这个存储guid,它会自动转换)的可null字段。 这个字段里如果是null,就会弹这个Exception,果断设置了默认值全0,过关。 -
System.Text.Json 的坑
微软再三推荐用这个代替Newtonjson,信了他的鬼用上了, 然后发现他会把中文转义成 \u48FA 这种存储到数据库里,虽然服务端取出来正常和存了中文的是一样的,但这种JSON字串发给客户端,前端想死了,查了半天资料:最后加了两段
var options = new JsonSerializerOptions
{
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All),
WriteIndented = true
};
return JsonSerializer.Serialize(ts, options);
好歹解决了。 -
其他的想起来了再修改吧。。