Example #1
0
        static void Main(string[] args)
        {
            // using is important

            using (var dbContext = new EdwardDb()){
                dbContext.Database.EnsureDeleted();
                var    sql      = dbContext.Database.GenerateCreateScript();
                string fileName = Path.Combine(Environment.CurrentDirectory, "output.sql");
                Console.Write("Write Create Database SQL to file:{0}", fileName);
                using (var fsWrite = File.CreateText(fileName)){
                    fsWrite.WriteLine(sql);
                }
                Console.Write("Create Database SQL:" + sql);
                dbContext.Database.EnsureCreated();
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            // using is important
            string file = Path.Combine(Environment.CurrentDirectory, "db.log");

            using (var fs = File.CreateText(file)){
                fs.WriteLine("** Created on: " + DateTime.Now.ToString());
            }
            using (var dbContext = new EdwardDb()){
                dbContext.Database.EnsureDeleted();
                var    sql      = dbContext.Database.GenerateCreateScript();
                string fileName = Path.Combine(Environment.CurrentDirectory, "output.sql");
                Console.Write("Write Create Database SQL to file:{0}", fileName);
                using (var fsWrite = File.CreateText(fileName)){
                    fsWrite.WriteLine(sql);
                }
                Console.Write("Create Database SQL:" + sql);
                dbContext.Database.EnsureCreated();
            }
            using (var dbContext = new EdwardDb()){
                var loggerFactory = dbContext.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(new ConsoleLoggerProvider());
                using (IDbContextTransaction t = dbContext.Database.BeginTransaction()){
                    Console.WriteLine("Transaction isolation level: {0}", t.GetDbTransaction().IsolationLevel);
                    IQueryable <Blog> qblog = dbContext.Blogs.TagWith("QueryPost")
                                              .Where(b => b.BlogId == 1);
                    // var blogs = qblog.ToList();
                    // Console.WriteLine("query:{0}", qblog.ToQueryString());
                    foreach (Blog blog in qblog)
                    {
                        Console.WriteLine("blog id:{0}, url:{1}", blog.BlogId, blog.Url);
                    }
                    foreach (Blog blog in qblog)
                    {
                        blog.Url = "http://u.1.com";
                    }
                    int affected = dbContext.SaveChanges();
                    t.Commit();
                    Console.WriteLine("Update {0} line", affected);
                }
            }
            using (var dbContext = new EdwardDb()){
                var loggerFactory = dbContext.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(new ConsoleLoggerProvider());
                var query =
                    from blog in dbContext.Blogs
                    join post in dbContext.Posts on blog.BlogId equals post.MainBlogId
                    select new
                {
                    id  = blog.BlogId,
                    id2 = post.PostId,
                };
                // Execute Command
                var exeq = query.TagWith("Inner Join").ToList();
                // Json Serializer
                var jsonString = JsonSerializer.Serialize(exeq);
                File.WriteAllText("InnerJoin.json", jsonString);

                foreach (var q in exeq)
                {
                    Console.WriteLine(q.ToString());
                }
                // foreach( var q in query){
                //     //  Console.WriteLine("bid:{0}, pid:{1}, pblogid:{2}, pTitle:{3}", q.blogId, q.pId, q.pBlogId, q.pTitle);
                //     Console.WriteLine();
                // }
            }
            using (var dbContext = new EdwardDb()){
                var loggerFactory = dbContext.GetService <ILoggerFactory>();
                loggerFactory.AddProvider(new ConsoleLoggerProvider());
                using (IDbContextTransaction t = dbContext.Database.BeginTransaction()){
                    try{
                        Console.WriteLine("Transaction isolation level: {0}", t.GetDbTransaction().IsolationLevel);
                        var newBlog = new Blog {
                            BlogId = 10, Url = "http://100000000000000000000000000000.com", NameMapId = 4
                        };
                        // var newBlog = new Blog { BlogId = 10, Url = "http://1000.com" , NameMapId=4};
                        dbContext.Blogs.Add(newBlog);
                        int affected = dbContext.SaveChanges();
                        t.Commit();
                        Console.WriteLine("{0} line(s) affected", affected);
                        var query = from b in dbContext.Blogs
                                    select b;
                        foreach (var b in query)
                        {
                            Console.WriteLine("blog {0}/{1}", b.BlogId, b.Url, b.NameMapId);
                        }
                    }
                    catch (Exception ex) {
                        Console.WriteLine($"{ex.GetType()} says {ex.Message}");
                    }
                }
            }
        }