【问题标题】:IDictionary<string, object> to an npgsqlParmeterCollection?IDictionary<string, object> 到 npgsqlParmeterCollection?
【发布时间】:2020-09-29 06:50:56
【问题描述】:

我目前有一个 Idictionary 包含需要解析为 npgsql 命令的参数。

字典包含参数及其值,但是有没有一种简单的方法可以将字典转换为带有 IDictionary 参数的 npgsqlcollection 集合?

【问题讨论】:

    标签: c# postgresql npgsql


    【解决方案1】:

    假设您想从对象推断数据库类型:

    var parameters = dictionary.Select(kvp => new NpgsqlParameter(kvp.Key, kvp.Value)).ToArray();
    command.Parameters.AddRange(parameters);
    

    【讨论】:

    • 如果 IEnumerable> 的键相同,多极语句会怎样?
    • 不确定我是否关注。每个字典都应该创建一个单独的参数集合?
    • 所以在我的情况下,这将是这样的var parameters = entry.Select(x=&gt;x.dictionary.Select(kvp =&gt; new NpgsqlParameter(kvp.Key, kvp.Value)).ToArray()); command.Parameters.AddRange(parameters); 每个条目的键集是相同的,但值是相同的。所以我认为你的方法不适用于这个或者?
    • 您需要遍历entry 并在每次迭代时创建一个新的NpgsqlCommand。类似foreach (var dictionary in entry) { /* create command */ command.Parameters.AddRange(dictionary.Select(kvp =&gt; new NpgsqlParameter(kvp.Key, kvp.Value)).ToArray()); }
    • 是的,但我似乎遇到了投射问题 => 我想没有办法解决它......然后手动将它们放入列表中,然后投射整个列表
    猜你喜欢
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 2011-01-29
    • 1970-01-01
    相关资源
    最近更新 更多