gpt4 book ai didi

c# - 参数集合中已存在名为 'p__linq__0' 的参数。参数名称在参数集合中必须是唯一的

转载 作者:行者123 更新时间:2023-11-30 17:17:41 24 4
gpt4 key购买 nike

这是我从 Entity Framework 收到的一个奇怪错误:“参数集合中已存在名为 'p_linq_0' 的参数。参数名称在参数集合中必须是唯一的。”我没有做任何自定义参数或任何花哨的事情,只是直接的 LINQ 查询或存储过程执行,没有什么花哨的,没有什么不寻常的,没有 Entity SQL...那么为什么会发生这个错误?

谢谢。

最佳答案

我遇到了同样的问题 - 我在各自的 Task.Run 中并行运行多个查询。

我的每个查询都使用了我用来填充的 ID 列表var ids = _someList.Select(x => x.Thing.Id).Distinct()

构造多个查询的参数,我在其中几个中执行了 string.Join(",", ids)

答案最终变得显而易见:延迟执行。

每个查询,在它执行 string.Join(",", ids) 时,最终执行了对 ids 的查询(同时)导致重复参数 (p_linq_0 ).

简单地添加 .ToList() 以在该行上执行意味着查询有一个具体的 ID 列表供使用,而不是全部尝试自己同时执行。

var ids = _someList.Select(x => x.Thing.Id).Distinct().ToList();

关于c# - 参数集合中已存在名为 'p__linq__0' 的参数。参数名称在参数集合中必须是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6295591/

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