Я бы хотел использовать для хранения таблиц сущность, подобную этой:
public class MyEntity
{
public String Text { get; private set; }
public Int32 SomeValue { get; private set; }
public MyEntity(String text, Int32 someValue)
{
Text = text;
SomeValue = someValue;
}
}
Но это невозможно, потому что ATS нуждается в
- Конструктор без параметров
- Все объекты общественного и
чтение / запись.
- Наследовать от TableServiceEntity;
Первые два, это две вещи, которые я не хочу делать. Зачем мне хотеть, чтобы кто-нибудь мог изменить некоторые данные, которые должны быть только для чтения? или создавать объекты такого рода непоследовательным образом (для чего нужны .ctor?), или, что еще хуже, изменить PartitionKey или RowKey. Почему мы все еще ограничены этими требованиями десериализации?
Мне не нравится разрабатывать программное обеспечение таким образом, как я могу использовать библиотеку хранения таблиц таким образом, чтобы я мог сериализовать и десериализовать себя объекты? Я думаю, что пока объекты наследуются от TableServiceEntity, это не должно быть проблемой.
Пока мне нужно сохранить объект, но я не знаю, как его восстановить:
Message m = new Message("message XXXXXXXXXXXXX");
CloudTableClient tableClient = account.CreateCloudTableClient();
tableClient.CreateTableIfNotExist("Messages");
TableServiceContext tcontext = new TableServiceContext(account.TableEndpoint.AbsoluteUri, account.Credentials);
var list = tableClient.ListTables().ToArray();
tcontext.AddObject("Messages", m);
tcontext.SaveChanges();
Есть ли способ избежать этих требований десериализации или получить необработанный объект?
Приветствие.