2012-07-22 2 views
0

Azure Table Storage에 저장되는 TableServiceObject에서 파생 된 .NET 유형 ("Person"이라고 함)이 다른 엔터티 ("events")의 모음을 가지고있는 응용 프로그램과 함께 작업하고 있습니다. 물론 컬렉션 속성은 Azure 테이블 저장소에 저장되지 않습니다.Azure 테이블 저장소에 저장된 엔티티에 새 속성을 추가하는 방법은 무엇입니까?

개인 저장소 엔티티에 다양한 수의 속성을 갖고 필요하면 언제든지 새 속성을 만들려고합니다. 예를 들어, Person1이 이전에 1 개의 이벤트에 참석하고 새 이벤트에 참석하는 경우 내 코드는 Person1 엔터티에 대한 "Event2"속성을 만들고 해당 속성의 Event2 저장 위치에 포인터를 저장해야합니다. 그런 다음 Person1에는 2 개의 "이벤트"등록 정보가 있지만 해당 테이블의 다른 엔티티에는 10 (event1, event2, event3 ... event10)이있을 수 있습니다.

Person 클래스가 클래스의 모든 공용 속성에 대한 속성을 자동으로 만드는 Azure 테이블에 직접 매핑되기 때문에 영구 저장을 만들지 않고 저장된이 엔터티에 Event2 속성을 동적으로 추가하는 방법을 찾을 수 없습니다 내 수업 시간에 내가하고 싶지 않은 재산. 방법이 있습니까?

이 "들쭉날쭉 한"속성 집합을 저장하려는 목적은 이벤트가 저장된 파티션에서 전체 검사를 수행하지 않고도 내가했던 모든 이벤트를 가져올 수있게하는 것입니다.

감사합니다.

업데이트 : Smarx은 정확했다 - 나는, 푸른 표 서비스에 ReadingEntity 및 WritingEntity 이벤트를 사용하는 방법이 설명을 쉽게 찾을 수 있었다 찾기 위해 무엇을 알고 나면 : 나는 믿고있어 http://convective.wordpress.com/2009/12/30/entities-in-azure-tables/

답변

1

을 테이블에있는 엔티티에 클래스 매핑을 언급했기 때문에 .NET을 사용하고 있습니다. 테이블 스토리지 자체에는 스키마가 없으므로 이는 전혀 문제가되지 않습니다.

스키마가없는 WCF Data Services 클라이언트 라이브러리 (Microsoft.WindowsAzure.Storage의 하위 항목)를 사용하는 것은 약간 까다 롭습니다. 테이블 스토리지와 관련하여 ReadingEntityWritingEntity을 검색하면 필요한 것을 찾을 수 있습니다. 기본적으로 이러한 이벤트를 연결하고 원하는 추가 속성을 구문 분석 (또는 삽입)해야합니다. 일반적으로 사람들은 이러한 "추가"속성을 처리 할 사전 속성을 만든 다음 해당 이벤트가 발생하면 읽고 쓸 수 있습니다.

경험이없는 대체 클라이언트 라이브러리 인 http://www.lucifure.com/을 확인할 수도 있습니다. 나는이 한계를 극복한다고도 믿는다. "사전을 통해 역동적으로 숨어서 모든 테이블 속성을 클래스 멤버에 매핑 할 필요가 없다."

+0

감사합니다. Smarx! 그것은 유망한 것으로 들린다. 당신이 맞습니다 - .NET을 사용하고 있습니다. 당신이 말한 것을 확인하고 시험해 볼게요. 다시 한 번 감사드립니다! –

+0

그게 답이었습니다. Smarx에게 감사드립니다! 사전을 추가하는 방법을 알지 못했지만 게시 한 링크는 속성을 추가하기 위해 XML을 어떻게 조작 할 수 있는지 보여줍니다. 그것은 .NET 엔터티를 수정 한 후에는 저장 작업을 계속하기 위해 호출 할 메서드가 없었기 때문에 이벤트의 인수에 전달 된 실제 .NET 엔터티에 아무 것도 추가하는 것이 어려울 것으로 보입니다. –

+1

큰 사항! Neil의 게시물은 제가 염두에 두었던 것입니다. 내가 사전에 대해 말한 것은 사람들이 종종 .NET 객체 (예 : "ExtraProperties")에 사전 등록 정보를 포함하고 ReadingEntity 및 WritingEntity에 사전에 값을 넣거나 사전을 사용하여 각각 XML을 수정하십시오. 이러한 속성을 코드에서 액세스 할 수 있도록 유지하는 편리한 장소 일뿐입니다. – smarx

관련 문제