gpt4 book ai didi

c# - SqlParameter 已包含在另一个 SqlParameterCollection 中,但我不知道如何

转载 作者:太空狗 更新时间:2023-10-29 20:04:18 25 4
gpt4 key购买 nike

我有以下代码。

// Get total row count and build Pagination object
var countQuery = ArticleServerContext.Database.SqlQuery<int>("GetFullTextSearchCount @SearchTerm",
new SqlParameter("@SearchTerm", fullTextQuery));
Pagination pagination = new Pagination(countQuery.Single(), page ?? 1);
// Get search results for current page
var resultsQuery = ArticleServerContext.Database.SqlQuery<ArticleSummary>("GetFullTextSearchResults @SearchTerm, @SkipRows, @TakeRows",
new SqlParameter("@SearchTerm", fullTextQuery),
new SqlParameter("@SkipRows", pagination.SkippedRows),
new SqlParameter("@TakeRows", pagination.RowsPerPage));
// Build model
SearchResultsModel model = new SearchResultsModel
{
SearchTerm = searchTerm.Trim(),
Pagination = pagination,
Results = resultsQuery.ToList() // <=== Here's where the error happens
};

当我尝试枚举 resultsQuery 时,我收到以下错误消息。

The SqlParameter is already contained by another SqlParameterCollection.

此错误消息似乎很清楚,但我看不到我在哪里将 SqlParameter 添加到多个 anything。我唯一能想到的是两个调用的第一个参数是相同的。 C# 能否以某种方式组合它们?无论哪种方式,我都需要它们包含相同的数据。

谁能看到这里发生了什么?

编辑:

抱歉,这是一个调试问题。我有另一个问题阻止了我预期的结果。但是当我进入调试器并单步执行我的代码时,我得到了上面提到的错误。

似乎代码是使用有问题的 SqlParameter 执行的,然后我尝试检查查询的内容,查询再次使用相同的 SqlParameter 运行, 就是导致错误的原因。

不幸的是,现在我有赏金,我不能删除这个问题。

最佳答案

当我发布这个问题时,我并没有很好地理解发生了什么。进一步研究后发现:

  1. 另一个问题导致我的程序无法显示我预期的(任何)结果。

  2. 使用 Visual Studio 调试器,我在此代码中设置了一个断点。当我逐步执行时,正在执行查询。但是当我试图检查数据时,这导致再次执行查询。正是这种双重执行导致了我报告的错误。事实上,代码正常运行时并没有出现这个错误。

感谢所有花时间看这个问题的人。

关于c# - SqlParameter 已包含在另一个 SqlParameterCollection 中,但我不知道如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37912006/

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