Работа с Windows Azure Table
В качестве примера рассмотрим простое приложение - справочник контактов, с поддержкой функции добавления, изменения и удаления.
Прежде всего создадим проект "AzureTableExample", необходимый для данной лабораторной работы.
Для демонстраци возможностей приложения, использующего в качестве хранилища данных WindowsAzure Table нам понадобится только веб - роль, добавьте ее решению.
В свойствах веб - роли определим строку подключения к эмулятору хранилища Azure.
Создание классов будущего приложения
Класс - Контакт.
Добавим следующие ссылки:
using Microsoft.WindowsAzure.StorageClient;
Контакт будет содержать следующую информацию:
- Имя
- Фамилию
- Контактный телефон
- Адрес электронной почты
Добавим C# класс нашей рабочей роли - Contact.cs и зададим необходимые свойства, унаследовав его от Microsoft.WindowsAzure.StorageClient.TableServiceEntity :
class Contact : Microsoft.WindowsAzure.StorageClient.TableServiceEntity { }
Определим требуемые свойства для класса контактов. И в конечном итоге, наш класс будет выглядеть следующим образом:
class Contact : Microsoft.WindowsAzure.StorageClient.TableServiceEntity { public String FirstName { get; set; } public String LastName { get; set; } public String TelNumber { get; set; } public String Email { get; set; } }
Класс - контекст для доступа ContactContext.cs
Нам понадобятся следующие ссылки:
using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.StorageClient; using System.Data.Services.Client;
Создадим соответствующий C# - класс, унаследуем его от TableServiceContext и определим конструктор:
class ContactContext : TableServiceContext { public ContactContext (Uri baseAddress, StorageCredentials credentials): base(baseAddress.AbsoluteUri, credentials) {} }
Добавим свойство для возвращения data service - запроса для таблицы Contacts.
public IQueryable<Contact> ContactData { get { return this.CreateQuery<Contact>("Contacts"); } }
Последним шагом по созданию класса - контекста является создание метода для добавления строки в таблицу. В итоге, класс должен выглядеть следующим образом 5.1:
class ContactContext : TableServiceContext { public IQueryable<Contact> ContactData { get { return this.CreateQuery<Contact>("Contacts"); } } public ContactContext (Uri baseAddress, StorageCredentials credentials): base(baseAddress.AbsoluteUri, credentials) {} public void Add(Contact cntct) { this.AddObject("Contacts", cntct); this.SaveChanges(); } }Листинг 17.1.