2012-04-02 4 views
0

불법 문자를 사용하여 객체를 저장하려고 할 때 (예를 들어 '/') 윈도우 Azure TableServiceContext UndoChanges

_tableServiceContext.AddObject(tableName, myEntity); 

를 호출 할 때 예외가 내가 System.Data.Services.Client를 얻을 throw되는 RowKey에. DataServiceRequestException - "범위를 벗어난"정보로, 쉽게 방지 할 수 있습니다 (불법 문자를 방지하거나 검사하여).

내 질문은 지금 상태에서 어떻게 복구합니까? 이러한 오류 후에 "손상된 개체"가 여전히 컨텍스트에 속하기 때문에 모든 후속 AddObject 호출이 실패합니다.

따라서 "UndoChanges"가능성을 찾고 있습니다.

힌트를 보내 주시면 감사하겠습니다. 나는 문맥을 던져하거나 컨텍스트에서 개체를 삭제하는 것보다 더 나은 방법을 찾고 있어요

P.S : ...

답변

1

가장 좋은 방법은 컨텍스트에서 개체를 분리 아마. 어떤 이유로 든 옵션이 아닌 경우 SaveChangesOption.ContinueOnErrors으로 저장을 다시 시도 할 수 있습니다. 예 :

기본적으로 모든 업데이트가 일괄 적으로 적용되는 것이 아니라 한 번에 하나씩 적용됩니다. 불법적 인 개체의 오류뿐만 아니라 발생하는 모든 오류는 무시합니다.

+0

컨텍스트에서 엔티티를 분리하면 필요한 것을 얻을 수 있습니다. 빠른 도움을 주셔서 감사합니다. – FrankE

+0

오, 그럼. 나는 당신이 "컨텍스트에서 객체를 삭제"하고 싶지 않았기 때문에 그것이 옵션이 아니라고 생각했습니다. –

관련 문제