private static void ApplicationStartUponFirstRequest(HttpContext context) { // This is where you put initialization logic for the site. // RoleManager is properly initialized at this point. // Create the tables on first request initialization as there is a performance impact // if you call CreateTablesFromModel() when the tables already exist. This limits the exposure of // creating tables multiple times. // Get the settings from the Service Configuration file StorageAccountInfo account = StorageAccountInfo.GetDefaultTableStorageAccountFromConfiguration(); // Create the tables // In this case, just a single table. // This will create tables for all public properties that are IQueryable (collections) TableStorage.CreateTablesFromModel(typeof(zlnkDC), account); }
// this method shows an alternative way of accessing/creating DataServiceContext objects // this approach is closer to what tools generate for normal ADO.NET Data Services projects internal static void RunSamples1() { StorageAccountInfo account = null; try { Console.WriteLine("Show how to create tables and queries using the SampleDataServiceContext class..."); account = StorageAccountInfo.GetDefaultTableStorageAccountFromConfiguration(); SampleDataServiceContext svc = new SampleDataServiceContext(account); svc.RetryPolicy = RetryPolicies.RetryN(3, TimeSpan.FromSeconds(1)); // Create 'SampleTable' // this uses the SampleDataServiceContext class TableStorage.CreateTablesFromModel(typeof(SampleDataServiceContext), account); string sampleTableName = SampleDataServiceContext.SampleTableName; DeleteAllEntriesFromSampleTable(svc, sampleTableName); svc.AddObject(SampleDataServiceContext.SampleTableName, new SampleEntity("sample", "entity")); svc.SaveChangesWithRetries(); var qResult = from c in svc.SampleTable where c.PartitionKey == "samplepartitionkey" && c.RowKey == "samplerowkey1" select c; TableStorageDataServiceQuery <SampleEntity> q = new TableStorageDataServiceQuery <SampleEntity>(qResult as DataServiceQuery <SampleEntity>, svc.RetryPolicy); try { // the query references the whole key and explicitly addresses one entity // thus, this query can generate an exception if there are 0 results during enumeration IEnumerable <SampleEntity> res = q.ExecuteAllWithRetries(); foreach (SampleEntity s in res) { Console.WriteLine("This code is not reached. " + s.PartitionKey); } } catch (DataServiceQueryException e) { HttpStatusCode s; if (TableStorageHelpers.EvaluateException(e, out s) && s == HttpStatusCode.NotFound) { // this would mean the entity was not found Console.WriteLine("The entity was not found. This is expected here."); } } Console.WriteLine("Delete all entries in the sample table."); DeleteAllEntriesFromSampleTable(svc, sampleTableName); Console.WriteLine("Table sample 1 finished!"); } catch (DataServiceRequestException dsre) { Console.WriteLine("DataServiceRequestException: " + GetExceptionMessage(dsre)); ShowTableStorageErrorMessage(account.BaseUri.ToString()); } catch (InvalidOperationException ioe) { Console.WriteLine("Storage service error: " + GetExceptionMessage(ioe)); ShowTableStorageErrorMessage(account.BaseUri.ToString()); } }