Я делаю несколько вызовов ObjectContext.ExecuteStoreCommand с разными командами и разными параметрами, хотя я использую один и тот же список параметров (объект) для нескольких команд.Я получаю следующее исключение:
System.ArgumentException: The SqlParameter is already contained by another SqlParameterCollection.
Есть ли способ очистить параметры между вызовами, как я сделал бы с прямой ADO.NET?
Обновлено с примером кода:
string sqlDeleteWebUserGreen = "delete WebUserGreen where WebUserId = @WebUserId";
string sqlDeleteWebUserBlue = "delete WebUserBlue where WebUserId = @WebUserId";
var argsDeleteWebUserXref = new DbParameter[] {
new SqlParameter { ParameterName = "WebUserId", Value = user.WebUserId }
rowsAffectedDeleteWebUserXref += base.context.ExecuteStoreCommand(sqlDeleteWebUserGreen, argsDeleteWebUserXref);
rowsAffectedDeleteWebUserXref += base.context.ExecuteStoreCommand(sqlDeleteWebUserBlue, argsDeleteWebUserXref);
ОБНОВЛЕНИЕ
В основном я не могу найти лучшего способа сделать это, поэтому я в конечном итоге принялответ ниже.Единственное отличие состоит в том, что я просто помещаю создание параметра в отдельный метод, поэтому мои вызовы выглядят как base.context.ExecuteStoreCommand(sqlDeleteWebUserBlue, MethodThatWillGiveMeTheParameterArray());