2012-10-05 3 views
1

Azure 테이블 저장소에 저장하는 "주석"유형이 있습니다. 주석은 다른 유형의 수에 제한이 없기 때문에 모든 유형의 구현 인터페이스를 작성한 다음 ICommentable 유형의 특성을 주석에 추가했습니다. 따라서 Comment에는 ICommentable 유형의 About이라는 속성이 있습니다.Azure 테이블 저장소는 값이 인터페이스 인 속성이있는 엔티티를 거부합니다.

Azure 테이블 저장소에 설명을 저장하려고 할 때 Comment.About 속성에 값이 있으면 무효 입력 오류가 발생합니다. 그러나 Comment.About에 대한 가치가 없다면 아무런 문제가 없습니다. 왜 이럴 수 있니?

의견. 참고 사항은 참조 유형 인 유일한 속성이 아닙니다. 예를 들어, Comment.From은 참조 유형이지만 Comment.About은 인터페이스 유형의 유일한 등록 정보입니다.

실패 :

var comment = new Comment(); 
     comment.CommentText = "It fails!"; 
     comment.PartitionKey = "TEST"; 
     comment.RowKey = "TEST123"; 
     comment.About = sow1; 
     comment.From = person1; 

작품 :

var comment = new Comment(); 
     comment.CommentText = "It works!"; 
     comment.PartitionKey = "TEST"; 
     comment.RowKey = "TEST123"; 
     //comment.About = sow1; 
     comment.From = person1; 

감사합니다!

답변

2

Windows Azure 테이블 저장소에는 소수 유형 만 저장할 수 있으며 그 중 어떤 것도 작성한 ICommentable 유형은 없습니다. http://msdn.microsoft.com/en-us/library/windowsazure/dd179338.aspx.

+0

감사합니다. smarx - 그건 의미가 있으며, 실제로 알았습니다. 저를 괴롭히는 것은 모든 참조 유형이 자동으로 무시된다는 것입니다. 그래서 왜 오류입니까? 이 속성을 저장하려고하지는 않았지만 오류가 발생하기 때문에 저장하기 전에이 속성을 제거하는 추가 작업으로 이동해야합니다. –

+0

참조 유형이 무시되었다는 것을 알지 못했습니다. 그러나 'string'이 참조 형이 아닌가? – smarx

+0

Uuuhhh, 당신은 저를 거기 있습니다. 나는 용어 ​​참조 유형을 오용했다 - 나는 다른 클래스를 참조하는 속성을 의미했다. 따라서 위 예제에서 About 및 From 속성은 다른 유형에 대한 참조입니다. From 속성은 항상 Person 유형입니다. 그러나이 속성은 Azure 테이블 서비스에서 무시됩니다. 오류는 없지만 어떤 방식 으로든 저장되지는 ​​않습니다. 그러나 ICommentable 유형의 속성 인 From은 값이 있으면 오류를 발생시킵니다. –

1

Azure 테이블 스토리지 클라이언트는 지속 가능한 속성을 제어하는 ​​세부적인 방법을 지원하지 않습니다.

CodePlex에서 내 오픈 소스 프로젝트를 체크 아웃하면 어떤 필드/속성을 테이블 스토리지에 유지할 것인지, 그리고이를 일련 화하는 방법을 결정할 수 있습니다. (http://lucifurestash.codeplex.com/)

편집 : 오타 + 설명이 수정되었습니다.

+0

고마워, 나는 그것을 체크 아웃합니다. –

관련 문제