여러 명령에 대해 동일한 매개 변수 목록 (개체)을 사용하지만 다른 명령과 다른 매개 변수로 ObjectContext.ExecuteStoreCommand를 여러 번 호출합니다.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);
UPDATE는
기본적으로 나는이 일을 더 나은 방법을 찾을 수없는 나는, 그래서 아래의 대답을 받아들이는 끝났다. 유일한 차이점은 매개 변수를 별도의 메서드에 넣기 만하면 호출이 비슷해집니다. base.context.ExecuteStoreCommand(sqlDeleteWebUserBlue, MethodThatWillGiveMeTheParameterArray());
당신은 당신의 코드를 게시 할 수 시도? 당신이 매번 사용 후 폐기해야하는 물체를 재사용하는 것처럼 들립니다. –
@Shiraz Bhaiji, 예외를 발생시키는 영역을 업데이트했습니다. 실제로 나는 무엇이든 처리하고 싶지 않습니다.이 모든 것은 10 개의 호출을 호출하는 트랜잭션의 일부입니다 .ExecuteStoreCommand() – e36M3