public static void GenerateData() { using (var context = new ModelAndContext.EntityContext()) { context.Blogs.Add(new Blog() { Title = "Blog_A", IsSoftDeleted = true }); context.Blogs.Add(new Blog() { Title = "Blog_B", IsSoftDeleted = true }); context.SaveChanges(); context.Posts.Add(new Post() { Content = "Post 1 in Blog_A", Date = DateTime.Now.AddDays(-4), IsSoftDeleted = false, Price = 35, BlogId = 1 }); context.Posts.Add(new Post() { Content = "Post 2 in Blog_A", Date = DateTime.Now.AddDays(-4), IsSoftDeleted = true, Price = 22, BlogId = 1 }); context.Posts.Add(new Post() { Content = "Post 1 in Blog_B", Date = DateTime.Now.AddDays(-5), IsSoftDeleted = false, Price = 37, BlogId = 2 }); context.Posts.Add(new Post() { Content = "Post 2 in Blog_B", Date = DateTime.Now.AddDays(-5), IsSoftDeleted = false, Price = 7, BlogId = 2 }); context.SaveChanges(); context.Comments.Add(new Comment() { Text = "Comment 1 in post 1", IsSoftDeleted = false, PostId = 1 }); context.Comments.Add(new Comment() { Text = "Comment 2 in post 1", IsSoftDeleted = false, PostId = 1 }); context.Comments.Add(new Comment() { Text = "Comment 1 in post 3", IsSoftDeleted = true, PostId = 3 }); context.Comments.Add(new Comment() { Text = "Comment 2 in post 3", IsSoftDeleted = false, PostId = 3 }); context.SaveChanges(); } }
public void QueryFuturCache_1() { // CLEAN using (var context = new ModelAndContext.EntityContext()) { context.EntitySimpleCacheOnlyDontNewUses.RemoveRange(context.EntitySimpleCacheOnlyDontNewUses); context.SaveChanges(); } // SEED using (var context = new ModelAndContext.EntityContext()) { for (int i = 0; i < 4; i++) { context.EntitySimpleCacheOnlyDontNewUses.Add(new ModelAndContext.EntitySimpleCacheOnlyDontNewUse() { ColumnInt = i, ColumnString = i.ToString() }); } context.SaveChanges(); } // TEST using (var context = new ModelAndContext.EntityContext()) { QueryFutureValue <string> value1; QueryFutureValue <string> value2; string value3; string value4; { var columnInt = 0; value1 = context.EntitySimpleCacheOnlyDontNewUses.Where(x => x.ColumnInt == columnInt).Select(x => x.ColumnString).FutureValue(); } { var columnInt = 1; value2 = context.EntitySimpleCacheOnlyDontNewUses.Where(x => x.ColumnInt == columnInt).Select(x => x.ColumnString).FutureValue(); } { var columnInt = 2; // execute an implicit string, so value4 become a solo FutureValue value3 = context.EntitySimpleCacheOnlyDontNewUses.Where(x => x.ColumnInt == columnInt).Select(x => x.ColumnString).FutureValue(); } { var columnInt = 3; value4 = context.EntitySimpleCacheOnlyDontNewUses.Where(x => x.ColumnInt == columnInt).Select(x => x.ColumnString).FutureValue(); } Assert.AreEqual("0", value1.Value); Assert.AreEqual("1", value2.Value); Assert.AreEqual("2", value3); Assert.AreEqual("3", value4); } // TEST using (var context = new ModelAndContext.EntityContext()) { var columnInt = 3; var value = context.EntitySimpleCacheOnlyDontNewUses.Where(x => x.ColumnInt == columnInt).Select(x => x.ColumnString).FutureValue().Value; Assert.AreEqual("3", value); } // TEST using (var context = new ModelAndContext.EntityContext()) { var columnInt = 6; var value = context.EntitySimpleCacheOnlyDontNewUses.Where(x => x.ColumnInt == columnInt).Select(x => x.ColumnString).FutureValue().Value; Assert.IsNull(value); } // TEST using (var context = new ModelAndContext.EntityContext()) { var columnInt = 3; var list = context.EntitySimpleCacheOnlyDontNewUses.Where(x => x.ColumnInt == columnInt).Select(x => x.ColumnString).Future().ToList(); Assert.AreEqual(1, list.Count); } // TEST using (var context = new ModelAndContext.EntityContext()) { var columnInt = 3; var list = context.EntitySimpleCacheOnlyDontNewUses.Where(x => x.ColumnInt < columnInt).Select(x => x.ColumnString).Future().ToList(); Assert.AreEqual(3, list.Count); } }