小编kvu*_*ong的帖子

如何防止返回的Json被拆分?

我正在使用Dapper从SQL Server读取数据。我有一条返回长Json结果的SQL语句,但问题是该结果被分成3行,每行最多2033个字符,因此Dapper无法解析返回的结果,因为它是无效的Json。

如何防止这种分裂或如何使Dapper处理呢?

这是我的代码:

SqlMapper.ResetTypeHandlers();
SqlMapper.AddTypeHandler(new JsonTypeHandler<List<Product>>());

const string sql = @"SELECT 
                         *,
                         (SELECT * FROM Balance b
                          WHERE p.SKU = b.SKU 
                          FOR JSON PATH) AS [Balances]
                     FROM Product p
                     WHERE SKU IN @SKUs
                     FOR JSON PATH";
var connection = new SqlConnection("myconnection");
return connection.QuerySingleAsync<List<Product>>(sql, new{SKUs = new[] {"foo", "bar"}} });
Run Code Online (Sandbox Code Playgroud)

和TypeHandler的代码:

public class JsonTypeHandler<T> : SqlMapper.TypeHandler<T>
    {
        public override T Parse(object value)
        {
            return JsonConvert.DeserializeObject<T>(value.ToString());
        }

        public override void SetValue(IDbDataParameter parameter, T value)
        {
            parameter.Value = JsonConvert.SerializeObject(value);
        }
    }
Run Code Online (Sandbox Code Playgroud)

这就是我如何在DataGrip中运行此SQL …

c# sql-server dapper

5
推荐指数
1
解决办法
177
查看次数

自定义反序列化

我有数千个文档的集合,在文档中有一个名为Rate的字段,问题是当前它的类型是字符串,所以当它不可用时,老开发人员将其设置为“N/A”。现在我想在 C# 中将此字段的类型更改为数字(当 n/a 时将其设置为 0),但如果这样做,我将无法加载过去的数据。我们可以自定义反序列化以便将 N/A 转换为 0 吗?

mongodb mongodb-.net-driver

4
推荐指数
1
解决办法
3630
查看次数

如何检查数组或 Ocelot 网关中的任何声明值?

假设我有 2 个这样的端点

  1. 创建订单:需要声明order_perm,其值在数组["order_create", "order_edit"]中
  2. 订单搜索:只需要声明order_perm存在

在情况 1 中,我将上面的数组传递给RouteClaimsRequirement,如下所示

"RouteClaimsRequirement": {
        "order_perm": ["order_create", "order_edit"]
      }
Run Code Online (Sandbox Code Playgroud)

但当应用程序启动时它会崩溃,并且在情况 2 中。我这样设置

"RouteClaimsRequirement": {
            "order_perm": ""
          }
Run Code Online (Sandbox Code Playgroud)

但用户声称“order_perm”:“create_order”授权失败。

RouteClaimsRequirement是否支持这些用例?如果是这样我该怎么做?

asp.net-core api-gateway ocelot

4
推荐指数
1
解决办法
2565
查看次数