static void CreateModelsPaged(string storageKey, string storageSecret) { using (var storageContext = new StorageContext(storageKey, storageSecret)) { storageContext.AddAttributeMapper(typeof(UserModel2), "DemoUserModel2"); storageContext.CreateTable <UserModel2>(true); var startDate = DateTime.Now; using (var pagedWriter = new PagedTableEntityWriter <UserModel2>(storageContext, nStoreOperation.insertOrReplaceOperation, 100)) { for (var i = 0; i < 1000; i++) { var user = new UserModel2() { FirstName = "Egon", LastName = "Mueller", Contact = string.Format("em-{0}@acme.org", i) }; pagedWriter.StoreAsync(user).ConfigureAwait(false).GetAwaiter().GetResult(); } } var endDate = DateTime.Now; Console.WriteLine("Took {0} seconds", (endDate - startDate).TotalSeconds); } }
public async Task Execute(string storageKey, string storageSecret, string endpointSuffix = null) { Console.WriteLine(""); Console.WriteLine(this.GetType().FullName); using (var storageContext = new StorageContext(storageKey, storageSecret, endpointSuffix)) { // set the delegate var stats = new DemoCaseStatsDelegate(); storageContext.SetDelegate(stats); // ensure we are using the attributes Console.WriteLine("Configuring Entity Mappers"); storageContext.AddAttributeMapper(typeof(UserModel2), "DemoUserModel2"); // create tables Console.WriteLine("Create Tables"); await storageContext.CreateTableAsync <UserModel2>(true); // write data pages Console.WriteLine("Writing Models Paged"); var startDate = DateTime.Now; using (var pagedWriter = new PagedTableEntityWriter <UserModel2>(storageContext, nStoreOperation.insertOrReplaceOperation, 100)) { var t1 = Task.Run(async() => { for (var i = 0; i < 500; i++) { var user = new UserModel2() { FirstName = "Egon", LastName = "Mueller", Contact = string.Format("em-{0}@acme.org", i) }; await pagedWriter.StoreAsync(user); } }); var t2 = Task.Run(async() => { for (var i = 500; i < 1000; i++) { var user = new UserModel2() { FirstName = "Egon", LastName = "Mueller", Contact = string.Format("em-{0}@acme.org", i) }; await pagedWriter.StoreAsync(user); } }); Task.WaitAll(new Task[] { t1, t2 }); } var endDate = DateTime.Now; Console.WriteLine("Took {0} seconds", (endDate - startDate).TotalSeconds); // query all Console.WriteLine("Query all Models"); var result = await storageContext.QueryAsync <UserModel2>(); Console.WriteLine("Found {0} models", result.Count()); // Clean up Console.WriteLine("Removing all entries"); await storageContext.DeleteAsync <UserModel2>(result); // dump the stats stats.DumpStats(); } }