Oto mój problem. Klasa, która definiuje kolejność ma właściwość o nazwie PaymentStatus
, który jest enum
zdefiniowane tak:Przechowywanie tabel Azure, usługa WCF i Enum
public enum PaymentStatuses : int
{
OnDelivery = 1,
Paid = 2,
Processed = 3,
Cleared = 4
}
a później, w samej klasie, definicja Obiekt jest bardzo prosta:
public PaymentStatuses? PaymentStatus { get; set; }
jednak, gdy próbuję zapisać rozkaz do Azure Storage Table, pojawia się następujący wyjątek:
System.InvalidOperationException: The type Order+PaymentStatuses' has no settable properties.
w tym momencie myślałem USI ng enum
nie jest możliwe, ale szybkie wyszukiwanie Google wrócił to: http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/7eb1a2ca-6c1b-4440-b40e-012db98ccb0a
Strona ta wymienia dwie odpowiedzi, z których jeden wydaje się ignorować problemy i sugeruje, że stosując enum
w Azure Storage jest w porządku.
Teraz, nie muszę przechowywać enum
w pamięci podręcznej Azure Table jako takiej, mógłbym równie dobrze przechowywać odpowiadający int
, jednak potrzebuję tej właściwości, aby być odsłoniętym w usłudze WCF.
Próbowałem dzięki czemu korzystanie własności get
i set
zwrócić enum
od zapisanego integer
i usunąć tę właściwość z Azure za pomocą zdarzenia WritingEntity
na moim DataContext
, ale pojawia się ten wyjątek przed wydarzeniem dla tego podmiotu jest zwolniony.
W tym momencie jestem na stracie, nie wiem, co jeszcze mogę zrobić, aby ta właściwość w WCF jako enum
, ale mieć sklep Azure tylko int
.
To nie działa. Nie mam problemów z WCF jako takie. Jeśli utworzę DataContract i zdefiniuję w nim wyliczenie, działa dobrze. Potrzebuję, aby wyliczenie w jakiś sposób działało z Tabelami pamięci Azure. – Shaamaan