示例#1
0
        private static void AddBook()
        {
            var book = new Book()
            {
                Title    = "Enterprise Applicatio Patterns Using Xamarin.Forms",
                Chapters = new List <Chapter>
                {
                    new Chapter()
                    {
                        Number = 1, Title = "Introduction"
                    },
                    new Chapter()
                    {
                        Number = 2, Title = "MVVM"
                    },
                    new Chapter()
                    {
                        Number = 3, Title = "Dependency Injection"
                    },
                    new Chapter()
                    {
                        Number = 4, Title = "Navigation"
                    }
                }
            };

            using (var context = new BookContext())
            {
                context.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
                context.Add(book);
                context.SaveChanges();
            }
        }
示例#2
0
        private static void InsertMultipleBooks()
        {
            var book = new Book()
            {
                Title = "C# 7 and .NET Core: Moder Cross-Platform Development"
            };
            var otherbook = new Book()
            {
                Title = "Agile Coaching"
            };

            using (var context = new BookContext())
            {
                context.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
                //We can do:
                // 1. Call Add twice
                //context.Books.Add(book);
                //context.Books.Add(otherbook);
                // 2. Call AddRange and pass the objects
                //context.Books.AddRange(book, otherbook);
                // 3. Call AddRange and pass a list of Book
                context.Books.AddRange(new List <Book>()
                {
                    book, otherbook
                });

                context.SaveChanges();
            }
        }
示例#3
0
 private static void RetrieveAndUpdateBook()
 {
     using (var context = new BookContext())
     {
         context.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
         var book = context.Books.FirstOrDefault();
         book.Title += " -updated book";
         context.SaveChanges();
     }
 }
示例#4
0
 private static void EagerUsingInclude()
 {
     using (var context = new BookContext())
     {
         context.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
         var bookList = context.Books
                        .Include(x => x.Chapters)
                        .ToList();
     }
 }
示例#5
0
 private static void RunSQLSentence()
 {
     using (var context = new BookContext())
     {
         context.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
         var books = context.Books.FromSql("select * from Books")
                     .Where(x => x.Title.Contains("Agile"))
                     .OrderByDescending(x => x.Title)
                     .ToList();
         books.ForEach(x => Console.WriteLine(x.Title));
     }
 }
示例#6
0
 private static void DeleteTrackedObject()
 {
     using (var context = new BookContext())
     {
         context.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
         var book = context.Books.FirstOrDefault();
         context.Books.Remove(book);
         // or
         //context.Remove(book);
         //context.Entry(book).State = EntityState.Deleted;
         context.SaveChanges();
     }
 }
示例#7
0
 private static void ExplictLoading()
 {
     using (var context = new BookContext())
     {
         context.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
         var book = context.Books.LastOrDefault();
         context.Entry(book).Collection(x => x.Chapters)
         .Query()
         .Where(q => q.Number == 2)
         .Load();
         Console.WriteLine(book.Id);
     }
 }
        public void GetDatabaseProviderSqlServer()
        {
            //SETUP
            using (var context = new BookContext(_options))
            {
                //ATTEMPT
                var dbProvider = context.GetService <IDatabaseProvider>();

                //VERIFY
                dbProvider.ShouldNotBeNull();
                dbProvider.Name.ShouldEqual("Microsoft.EntityFrameworkCore.SqlServer");
            }
        }
示例#9
0
 private static void ProjectionSubQueries()
 {
     using (var context = new BookContext())
     {
         context.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
         var bookList = context.Books
                        .Select(x => new
         {
             Book     = x,
             Chapters = x.Chapters.Where(c => c.Number == 2).ToList()
         }).ToList();
         Console.WriteLine(bookList.Count());
     }
 }
示例#10
0
 private static void EagerByProjections()
 {
     using (var context = new BookContext())
     {
         context.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
         var bookList = context.Books
                        .Select(x => new
         {
             Book     = x,
             Chapters = x.Chapters
         }).ToList();
         Console.WriteLine(bookList.Count());
     }
 }
示例#11
0
 private static void ProjectionsWithRelations()
 {
     using (var context = new BookContext())
     {
         context.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
         var bookList = context.Books
                        .Select(x => new
         {
             x.Id,
             x.Title,
             ChapertCount = x.Chapters.Count
         }).ToList();
     }
 }
示例#12
0
        private static void InsertBook()
        {
            var book = new Book()
            {
                Title = "C# 7 and .NET Core: Moder Cross-Platform Development"
            };

            using (var context = new BookContext())
            {
                context.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
                context.Books.Add(book);
                context.SaveChanges();
            }
        }
        public void GetDatabaseProviderSqlite()
        {
            //SETUP
            var optionsBuilder = SqliteInMemory.CreateOptions <BookContext>();

            using (var context = new BookContext(optionsBuilder))
            {
                //ATTEMPT
                var dbProvider = context.GetService <IDatabaseProvider>();

                //VERIFY
                dbProvider.ShouldNotBeNull();
                dbProvider.Name.ShouldEqual("Microsoft.EntityFrameworkCore.Sqlite");
            }
        }
示例#14
0
        private static void DeleteUntrackedObject()
        {
            Book book = null;

            using (var context = new BookContext())
            {
                book = context.Books.FirstOrDefault();
            }

            using (var newContext = new BookContext())
            {
                newContext.GetService <ILoggerFactory>().AddProvider(new MyLoggerProvider());
                newContext.Remove(book);
                newContext.SaveChanges();
            }
        }