Настройка хранилища разработки в Visual Studio 2010
Нам необходим класс, который будет описывать структуру сущности для нашей таблицы. Класс должен быть наследником Microsoft.WindowsAzure.StorageClient.TableServiceEntity
class Address : TableServiceEntity
{
public String address { get; set; }
public String firm { get; set; }
public String telephone { get; set; }
}Для создания таблиц необходимо определить класс - контекст, при чем:
класс должен быть наследником TableServiceContext
Для каждой таблицы необходимо определить свойство типа IQueryable, где значение параметра DataItemType - тип сущностей, хранимых в таблице, в нашем случае - Address.
class AddressConext: TableServiceContext
{
public IQueryable<Address> ContactData
{
get
{
return this.CreateQuery<Address>("Address");
}
}
public AddressConext(Uri baseAddress, StorageCredentials credentials) : base(baseAddress.AbsoluteUri, credentials) { }
}Теперь обратим внимание на методы Run и OnStart. Первый содержит код выполняемый в ходе работы роли, второй - при ее запуске.
Для того, чтобы добавить данные в таблицу нам необходимо в методе Run:
- создать экземпляр класса - учетной записи
- создать экземпляр класс - контекста
- создать экземпляр класса - сущности и задать его параметры
- создать таблицу Address, если она не существует
- добавить сущность в таблицу
Добавим следующий код:
CloudStorageAccount.SetConfigurationSettingPublisher(
(configName, configSettingPublisher) =>
{
var connectionString =
RoleEnvironment.GetConfigurationSettingValue(configName);
configSettingPublisher(connectionString);
}
);
//определение учетной записи
CloudStorageAccount account = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
//создание таблицы Windows Azure Table
CloudTableClient _tc = null;
_tc = account.CreateCloudTableClient();
_tc.CreateTableIfNotExist("Address");
/*определение сущности, в том числе свойств ключ строки и ключ секции, унаследованных от родительского TableServiceEntity*/
Address adrs = new Address();
adrs.PartitionKey = "Firm";
adrs.RowKey = "Test entity";
adrs.telephone = "xxx-xx-xx";
adrs.address = "Evergreen Terrace 247";
adrs.firm = "My new firm";
//определение контекста
AddressConext context = new AddressConext(account.TableEndpoint, account.Credentials);
//добавление сущности таблице Address
context.AddObject("Address", adrs);
//сохранение изменений
context.SaveChanges();Запустите приложение, убедитесь в том, что оно выполнилось без ошибок и остановите его.
В диспетчере серверов, во вкладке "Хранилище Windows Azure" обновите вкладку "Таблицы", вы увидите созданную нашим приложением таблицу Address.
Щелкните на таблице правой кнопкой мыши и выберите "Просмотреть данные". Вы увидите, что определенная нами сущность добавлена в таблицу.
Более подробно работа с Хранилищем Windows Azure будет рассмотрена в последующих практических работах.
В случае, если выполнение задания вызвало сложности и затруднения, в приложениях к данной практической работе вы найдете итоговый программный код.

