Introduction
Azure has provided 4 kinds of data storages blobs, tables, queues and SQL azure. In this section we will see how to insert a simple customer record with code and name property in Azure tables.
In case you are complete fresher and like me you can download my two azure basic videos which explain what azure is all about Azure FAQ Part 1 :- Video1 Azure FAQ Part 2 :- Video2.
Please feel free to download my free 500 question and answer eBook which covers .NET , ASP.NET , SQL Server , WCF , WPF , WWF , Silver light , Azure @ http://tinyurl.com/4nvp9t .
What will we do in this article?
We will create a simple customer entity with customer code and customer name and add the same to Azure tables and display the same on a web role application.
Step 2:- Create a web role project
The next step is to select the cloud service template, add the web role project and create your solution.
Step 3:- Specify the connection string
The 3rd step is to specify the connection string where your table source is currently. So expand the roles folder , right click on webroletable and select properties as shown in the below figure.
You will be then popped up with a setting tab. Select the settings section, add a new setting, give a name to your connection string and select type as 'connectionstring'.
We also need to specify where the storage location is , so select the value and select 'Use development storage' as shown in the below figure. Development storage means your local PC currently where you Azure fabric is installed.
If you open the 'ServiceConfiguration.cscfg' file you can see the setting added to the file.
Step 4:- Reference namespaces and create classes
In order to do Azure storage operation we need to add reference to 'System.Data.Services.Client' dll.
Once the dlls are referred, let's refer the namespaces in our code as shown below. Currently we will store a customer record with customer code and customer name in tables. So for that we need to define a simple customer class with 'clsCustomer'. This class needs to inherit from 'TableServiceEntity' class as shown in the below figure.
The second class which we need to create is the data context class. The data context class will take the entity class and enter the same in tables. You can see in the below figure we have created one more class 'clsCustomerDataContext'.
Step 5:- Define partition and row key
The next step is to define the properties of the customer class. In the below figure we have defined two properties in the customer class customer code and customer name.
Every row in the table needs to be defined with a partition key and a unique row key. In the constructor we have initialized the partition key with a text "Customers" and the unique key is set to the current date time tick count.
Step 6:- Create your 'datacontext' class
The next step is to create your data context class which will insert the customer entity in to azure table storage. Below is the code snippet of the data context class.
The first noticeable thing is the constructor which takes in location of the credentials. The second is the 'Iqueryable' interface which is used by the cloud service to create tables in azure cloud service.
In the same data context we have created an 'AddCustomer' method which takes in the customer entity object and call's the 'AddObject' method of the data context to insert the customer entity data in to Azure tables.
Step 7:- Create the table structure on the 'onstart'
The next step is to create the table on the 'onstart' of the web role.
So open 'webrole.cs' file and put the below code on the 'onstart' event. The last code enclosed in curly brackets gets the configuration and creates table's structure.
Step 8:- Code your client
The final thing is to code the client. So below is the UI / ASPX file which we have created to insert the table entity values.
On the button click we need to consume the data context and the entity class.
So the first step is to get the configuration setting of the data connection.
// Gets the connection string
var customer = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
The next step is to pass these credentials to the data context class and create a object of the same.
// Create the customer datacontext object
var customerContext = new clsCustomerDataContext(customer.TableEndpoint.ToString(), customer.Credentials);
Flourish the entity object with data and pass it to the data context class to add the same in to tables.
// Create the entity object
clsCustomer objCustomer = new clsCustomer();
objCustomer.CustomerCode = txtCustomerCode.Text;
objCustomer.CustomerName = txtCustomerName.Text;
// Pass the entity object to the datacontext
customerContext.AddCustomer(objCustomer);
Finally we loop through the context customer entity collection to see if the customer is added in to the table.
//Loop through the records to see if the customer entity is inserted in the tabless
foreach (clsCustomer obj in customerContext.Customers)
{
Response.Write(obj.CustomerCode + " " + obj.CustomerName + "<br>");
}
Step 9:- Run your application
It's time to enjoy your hard work, so run the application and enjoy your success.
Source code
You can get the source code of the above sample from top of this article.