0
我打電話EF從EF中調用存儲過程返回錯誤的SqlParameter已被另一SqlParameterCollection
var paramSortColumn = new SqlParameter("@SortColumn", SqlDbType.NVarChar, 200) { Value = SortColumn };
var paramSortOrder = new SqlParameter("@SortOrder", SqlDbType.NVarChar, 10) { Value = SortOrder };
var paramStartIndex = new SqlParameter("@StartIndex", SqlDbType.Int) { Value = filter.StartIndex - 1 };
var paramItemsPerPage = new SqlParameter("@ItemsPerPage", SqlDbType.Int) { Value = filter.ItemsPerPage };
var paramDealerBranchID = new SqlParameter("@DealerBranchIDs", SqlDbType.NVarChar){Value = selectedIds };
var paramBypassDealerBranchIDs = new SqlParameter("@BypassDealerBranchIDs", SqlDbType.TinyInt) { Value = Convert.ToInt32(filter.ByPassDealerBranchIDs) };
var result =
_dbContext.Database.SqlQuery<DealerMappingDetailsReportModel>(
"usp_DealerMappingDetail @DealerBranchIDs,@BypassDealerBranchIDs,@SortColumn,@SortOrder,@StartIndex,@ItemsPerPage",
paramDealerBranchID, paramBypassDealerBranchIDs, paramSortColumn, paramSortOrder, paramStartIndex, paramItemsPerPage
);
return result.ToList();
SQL存儲過程包含但它返回
SqlParameter有已經被載另一個 SqlParameterCollection
復位(新的)你的DbContext – ErikEJ
嘗試使用'ToList()'直接查詢執行後:'VAR的結果= _dbContext.Database.SqlQuery(「usp_DealerMappingDetail @ DealerBranchIDs,@ BypassDealerBranchIDs,...)ToList( );'然後'返回結果;' –
問題解決了。 我剛剛聲明瞭一個新變量並將Convert.ToInt32(filter.ByPassDealerBranchIDs)的值傳遞給它。 –