コード例 #1
0
        static void Main(string[] args)
        {
            using (var db = new LivrosContext())
            {
                db.Database.EnsureDeleted();
                db.Database.EnsureCreated();

                var livro1 = new Livro {
                    Titulo = "Domain - Driven Design: Tackling Complexity in the Heart of Software", Autor = "Eric Evans", AnoPublicacao = 2003
                };
                var livro2 = new Livro {
                    Titulo = "Agile Principles, Patterns, and Practices in C#", Autor = "Robert C. Martin", AnoPublicacao = 2006
                };

                db.Livros.AddRange(livro1, livro2);

                // Definindo o valor em cada objeto
                db.Entry(livro1).Property("UltimaAtualizacao").CurrentValue = DateTime.Now;
                db.Entry(livro2).Property("UltimaAtualizacao").CurrentValue = DateTime.Now.AddMinutes(1);

                db.SaveChanges();

                Console.WriteLine("------------ RESULTADOS ------------");
                db.Livros
                .OrderBy(x => EF.Property <DateTime>(x, "UltimaAtualizacao"))
                .Select(x => new { x.Titulo, UltimaAtualizacao = EF.Property <DateTime>(x, "UltimaAtualizacao") }).ToList()
                .ForEach(x => Console.WriteLine($"Titulo: {x.Titulo} | Atualizado em {x.UltimaAtualizacao}"));
            }
        }
コード例 #2
0
        static void Main(string[] args)
        {
            using (var db = new LivrosContext())
            {
                db.Database.EnsureCreated();

                if (db.Livros.Any())
                {
                    db.Database.ExecuteSqlCommand("DELETE FROM dbo.Livros");
                }

                var livro = new Livro {
                    Autor = "Eric Evans", AnoPublicacao = 2003
                };
                livro.SetTitulo("Domain - Driven Design: Tackling Complexity in the Heart of Software");

                db.Livros.Add(livro);

                db.SaveChanges();

                Console.WriteLine("------------ RESULTADOS ------------");
                db.Livros.ForEachAsync(x => Console.WriteLine("Título: " + x.GetTitulo()));
                Console.WriteLine("Livros encontrados: " + db.Livros.Count(x => EF.Property <string>(x, "Titulo").Contains("Domain")));
                Console.ReadKey();
            }
        }
コード例 #3
0
        static void Main(string[] args)
        {
            using (var db = new LivrosContext())
            {
                db.Database.EnsureDeleted();
                db.Database.EnsureCreated();

                db.Pessoas.Add(
                    new Pessoa {
                    Nome    = "André Luiz Secco",
                    Idade   = 26,
                    Contato = new Contato()
                    {
                        Telefone = new Telefone()
                        {
                            DDD = 49, Numero = 11111111
                        }
                    }
                });

                db.SaveChanges();

                var pessoa = db.Pessoas.FirstOrDefault();
                System.Console.WriteLine($"Nome: {pessoa.Nome}");
                System.Console.WriteLine($"Telefone: ({pessoa.Contato.Telefone.DDD}) {pessoa.Contato.Telefone.Numero}");
            }
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: marciorela/csharp-cursos
        static void Main(string[] args)
        {
            using (var db = new LivrosContext())
            {
                db.Database.EnsureDeleted();
                db.Database.EnsureCreated();

                db.Livros.Add(new Livro {
                    Titulo = "Domain-Driven Design: Tackling Complexity in the Heart of Software", Autor = "Eric Evans", AnoPublicacao = 2003
                });
                db.Livros.Add(new Livro {
                    Titulo = "Agile Principles, Patterns, and Practices in C#", Autor = "Robert C. Martin", AnoPublicacao = 2006
                });
                db.Livros.Add(new Livro {
                    Titulo = "Clean Code: A Handbook of Agile Software Craftsmanship", Autor = "Robert C. Martin", AnoPublicacao = 2008
                });
                db.Livros.Add(new Livro {
                    Titulo = "Implementing Domain-Driven Design", Autor = "Vaughn Vernon", AnoPublicacao = 2013
                });
                db.Livros.Add(new Livro {
                    Titulo = "Patterns, Principles, and Practices of Domain-Driven Design", Autor = "Scott Millet", AnoPublicacao = 2015
                });
                db.Livros.Add(new Livro {
                    Titulo = "Refactoring: Improving the Design of Existing Code ", Autor = "Martin Fowler", AnoPublicacao = 2012
                });

                db.SaveChanges();

                Console.WriteLine("------------ RESULTADO ------------");
                Console.WriteLine("Título: " + _livroById(db, 3).Titulo);
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: marciorela/csharp-cursos
        static void Main(string[] args)
        {
            using (var db = new LivrosContext())
            {
                db.Database.EnsureDeleted();
                db.Database.EnsureCreated();

                db.Livros.Add(new Livro {
                    Titulo = "Domain-Driven Design: Tackling Complexity in the Heart of Software", Autor = "Eric Evans", AnoPublicacao = 2003
                });
                db.Livros.Add(new Livro {
                    Titulo = "Agile Principles, Patterns, and Practices in C#", Autor = "Robert C. Martin", AnoPublicacao = 2006
                });
                db.Livros.Add(new Livro {
                    Titulo = "Clean Code: A Handbook of Agile Software Craftsmanship", Autor = "Robert C. Martin", AnoPublicacao = 2008
                });
                db.Livros.Add(new Livro {
                    Titulo = "Implementing Domain-Driven Design", Autor = "Vaughn Vernon", AnoPublicacao = 2013, DataExclusao = DateTime.Now
                });
                db.Livros.Add(new Livro {
                    Titulo = "Patterns, Principles, and Practices of Domain-Driven Design", Autor = "Scott Millet", AnoPublicacao = 2015, DataExclusao = DateTime.Now
                });
                db.Livros.Add(new Livro {
                    Titulo = "Refactoring: Improving the Design of Existing Code ", Autor = "Martin Fowler", AnoPublicacao = 2012, DataExclusao = DateTime.Now
                });

                db.SaveChanges();

                Console.WriteLine("------------ RESULTADOS ------------");
                db.Livros.ToList().ForEach(x => Console.WriteLine("Título: " + x.Titulo));
                System.Console.WriteLine();
                Console.WriteLine("------------ RESULTADOS (IGNORANDO QUERY FILTERS) ------------");
                db.Livros.IgnoreQueryFilters().ToList().ForEach(x => Console.WriteLine("Título: " + x.Titulo));
            }
        }
コード例 #6
0
 static void Main(string[] args)
 {
     using (var db = new LivrosContext())
     {
         db.Database.EnsureDeleted();
         db.Database.EnsureCreated();
     }
 }
コード例 #7
0
 public static void ConsultaComStringInterpolation(string filtro)
 {
     using (var db = new LivrosContext())
     {
         var livros = db.Livros.FromSql($"SELECT * FROM dbo.Livros WHERE AnoPublicacao  = {filtro}").ToList();
         Console.WriteLine("------------ RESULTADOS ------------");
         livros.ForEach(x => Console.WriteLine("Título: " + x.Titulo));
     }
 }
コード例 #8
0
 public static void ConsultaComLinq(string filtro)
 {
     using (var db = new LivrosContext())
     {
         var livros = db.Livros.FromSql("SELECT * FROM dbo.Livros WHERE Titulo LIKE '%' + @p0 + '%'", filtro).Where(x => x.AnoPublicacao == 2013).ToList();
         Console.WriteLine("------------ RESULTADOS ------------");
         livros.ForEach(x => Console.WriteLine("Título: " + x.Titulo));
     }
 }
コード例 #9
0
        public LivrosController(LivrosContext context)
        {
            _context = context;

            if (_context.LivrosItems.Count() == 0)
            {
                // Create a new TodoItem if collection is empty,
                // which means you can't delete all TodoItems.
                _context.LivrosItems.Add(new LivrosItem {
                    Nome = "Item1"
                });
                _context.SaveChanges();
            }
        }
コード例 #10
0
        static void Main(string[] args)
        {
            using (var db = new LivrosContext())
            {
                db.Database.EnsureDeleted();
                db.Database.EnsureCreated();

                if (db.Livros.Any())
                {
                    db.Database.ExecuteSqlCommand("DELETE FROM dbo.Livros");
                }

                db.Livros.Add(new Livro {
                    Titulo = "Domain-Driven Design: Tackling Complexity in the Heart of Software", Autor = "Eric Evans", AnoPublicacao = 2003
                });
                db.Livros.Add(new Livro {
                    Titulo = "Agile Principles, Patterns, and Practices in C#", Autor = "Robert C. Martin", AnoPublicacao = 2006
                });
                db.Livros.Add(new Livro {
                    Titulo = "Clean Code: A Handbook of Agile Software Craftsmanship", Autor = "Robert C. Martin", AnoPublicacao = 2008
                });
                db.Livros.Add(new Livro {
                    Titulo = "Implementing Domain-Driven Design", Autor = "Vaughn Vernon", AnoPublicacao = 2013
                });
                db.Livros.Add(new Livro {
                    Titulo = "Patterns, Principles, and Practices of Domain-Driven Design", Autor = "Scott Millet", AnoPublicacao = 2015
                });
                db.Livros.Add(new Livro {
                    Titulo = "Refactoring: Improving the Design of Existing Code", Autor = "Martin Fowler", AnoPublicacao = 2012
                });

                db.SaveChanges();

                System.Console.WriteLine("****** CONSULTA COMUM ******");
                ConsultaComum("Domain");

                System.Console.WriteLine("****** CONSULTA COM LINQ ******");
                ConsultaComLinq("Domain");

                System.Console.WriteLine("****** CONSULTA COM STRING INTERPOLATION ******");
                ConsultaComStringInterpolation("2013");

                System.Console.WriteLine("****** CONSULTA COM STRING INTERPOLATION - PROBLEMAS DE SQL INJECTION ******");
                ConsultaComStringInterpolationSqlInjection("2013; DROP TABLE Livros;");
            }
        }
コード例 #11
0
        static void Main(string[] args)
        {
            using (var db = new LivrosContext())
            {
                db.Database.EnsureDeleted();
                db.Database.EnsureCreated();

                db.Livros.Add(new Livro {
                    Titulo = "Domain-Driven Design: Tackling Complexity in the Heart of Software", Autor = "Eric Evans", AnoPublicacao = 2003
                });
                db.Livros.Add(new Livro {
                    Titulo = "Agile Principles, Patterns, and Practices in C#", Autor = "Robert C. Martin", AnoPublicacao = 2006
                });
                db.Livros.Add(new Livro {
                    Titulo = "Clean Code: A Handbook of Agile Software Craftsmanship", Autor = "Robert C. Martin", AnoPublicacao = 2008
                });
                db.Livros.Add(new Livro {
                    Titulo = "Implementing Domain-Driven Design", Autor = "Vaughn Vernon", AnoPublicacao = 2013
                });
                db.Livros.Add(new Livro {
                    Titulo = "Patterns, Principles, and Practices of Domain-Driven Design", Autor = "Scott Millet", AnoPublicacao = 2015
                });
                db.Livros.Add(new Livro {
                    Titulo = "Refactoring: Improving the Design of Existing Code ", Autor = "Martin Fowler", AnoPublicacao = 2012
                });

                db.SaveChanges();

                Console.WriteLine("------------ RESULTADOS ------------");
                var livros = db.Livros
                             .GroupBy(x => x.Autor)
                             .Select(x => new
                {
                    Autor     = x.Key,
                    QtdLivros = x.Count()
                });
                livros.ToList().ForEach(x =>
                {
                    Console.WriteLine($"Autor: {x.Autor}");
                    Console.WriteLine($"Quantidade de Livros: {x.QtdLivros}\r\n");
                });
            }
        }
コード例 #12
0
        static void Main(string[] args)
        {
            using (var db = new LivrosContext())
            {
                db.Database.EnsureCreated();

                db.Livros.Add(
                    new Livro {
                    Titulo        = "Domain-Driven Design: Tackling Complexity in the Heart of Software",
                    Autor         = "Eric Evans",
                    AnoPublicacao = 2003,
                    Detalhes      = new LivroDetalhes()
                    {
                        Editora = "Addison-Wesley", NumeroPaginas = 560
                    }
                });

                db.SaveChanges();
            }
        }
コード例 #13
0
ファイル: Program.cs プロジェクト: gustavoxhps/EFCore.Demo
        static void Main(string[] args)
        {
            using (var db = new LivrosContext())
            {
                db.Database.EnsureCreated();

                if (db.Livros.Any())
                {
                    db.Database.ExecuteSqlCommand("DELETE FROM dbo.Livros");
                }

                db.Livros.Add(new Livro {
                    Titulo = "Domain-Driven Design: Tackling Complexity in the Heart of Software", Autor = "Eric Evans", AnoPublicacao = 2003
                });
                db.Livros.Add(new Livro {
                    Titulo = "Agile Principles, Patterns, and Practices in C#", Autor = "Robert C. Martin", AnoPublicacao = 2006
                });
                db.Livros.Add(new Livro {
                    Titulo = "Clean Code: A Handbook of Agile Software Craftsmanship", Autor = "Robert C. Martin", AnoPublicacao = 2008
                });
                db.Livros.Add(new Livro {
                    Titulo = "Implementing Domain-Driven Design", Autor = "Vaughn Vernon", AnoPublicacao = 2013
                });
                db.Livros.Add(new Livro {
                    Titulo = "Patterns, Principles, and Practices of Domain-Driven Design", Autor = "Scott Millet", AnoPublicacao = 2015
                });
                db.Livros.Add(new Livro {
                    Titulo = "Refactoring: Improving the Design of Existing Code", Autor = "Martin Fowler", AnoPublicacao = 2012
                });

                db.SaveChanges();

                Console.Write("Digite o termo para buscar: ");
                var termoBusca = Console.ReadLine();
                var livros     = db.Livros.FromSql("SELECT * FROM dbo.Livros WHERE Titulo LIKE '%' + @p0 + '%'", termoBusca).Where(x => x.AnoPublicacao == 2013);
                Console.WriteLine("------------ RESULTADOS ------------");
                livros.ForEachAsync(x => Console.WriteLine("Título: " + x.Titulo));
                Console.ReadKey();
            }
        }
コード例 #14
0
 public LivroController(LivrosContext context)
 {
     _context = context;
 }
コード例 #15
0
 public HomeController(LivrosContext db) =>
コード例 #16
0
 public AutorController(LivrosContext context)
 {
     _context = context;
 }
コード例 #17
0
        static void Main(string[] args)
        {
            using (var db = new LivrosContext())
            {
                db.Database.EnsureDeleted();
                db.Database.EnsureCreated();

                db.Database.ExecuteSqlCommand(
                    @"CREATE FUNCTION [dbo].[ExemplaresDisponiveis] (@livroId INT) RETURNS INT 
                      AS
                      BEGIN
                        DECLARE @count AS INT
                        SET @count = (SELECT QtdExemplares 
                                        FROM Livros 
                                        WHERE LivroId = @livroId)-(SELECT COUNT(*) 
                                                                    FROM LivroEmprestimo 
                                                                    WHERE LivroId = @livroId 
                                                                        AND DataDevolucao IS NULL)
                        RETURN @count
                      END"
                    );

                db.Livros.Add(
                    new Livro
                {
                    Titulo        = "Domain-Driven Design: Tackling Complexity in the Heart of Software",
                    Autor         = "Eric Evans",
                    AnoPublicacao = 2003,
                    QtdExemplares = 5,
                    Emprestimos   = new List <LivroEmprestimo>()
                    {
                        new LivroEmprestimo()
                        {
                            NomeAluno           = "José da Silva",
                            DataEmprestimo      = DateTime.Parse("01/11/2017"),
                            DataLimiteDevolucao = DateTime.Parse("07/11/2017"),
                        },
                        new LivroEmprestimo()
                        {
                            NomeAluno           = "Alexandre Alves",
                            DataEmprestimo      = DateTime.Parse("03/11/2017"),
                            DataLimiteDevolucao = DateTime.Parse("10/11/2017"),
                        }
                    }
                });

                db.Livros.Add(
                    new Livro
                {
                    Titulo        = "Agile Principles, Patterns, and Practices in C#",
                    Autor         = "Robert C. Martin",
                    AnoPublicacao = 2006,
                    QtdExemplares = 2,
                    Emprestimos   = new List <LivroEmprestimo>()
                    {
                        new LivroEmprestimo()
                        {
                            NomeAluno           = "Marcos Ribeiro",
                            DataEmprestimo      = DateTime.Parse("02/11/2017"),
                            DataLimiteDevolucao = DateTime.Parse("08/11/2017"),
                        },
                        new LivroEmprestimo()
                        {
                            NomeAluno           = "Fernando Lopes",
                            DataEmprestimo      = DateTime.Parse("03/11/2017"),
                            DataLimiteDevolucao = DateTime.Parse("10/11/2017"),
                        }
                    }
                });


                db.SaveChanges();

                Console.WriteLine("------------ RESULTADOS ------------");
                var query =
                    from p in db.Livros
                    select new
                {
                    Titulo = p.Titulo,
                    ExemplaresDisponiveis = LivrosContext.ExemplaresDisponiveis(p.LivroId)
                };

                query.ToList().ForEach(x => {
                    Console.WriteLine("Título: " + x.Titulo);
                    Console.WriteLine("Exemplares disponíveis: " + x.ExemplaresDisponiveis);
                });
                System.Console.WriteLine();
                Console.WriteLine("------------ RESULTADOS (Apenas disponíveis) ------------");
                var query2 =
                    from p in db.Livros
                    where LivrosContext.ExemplaresDisponiveis(p.LivroId) > 0
                    select p;

                query2.ToList().ForEach(x => {
                    Console.WriteLine("Título: " + x.Titulo);
                });
                Console.ReadKey();
            }
        }
コード例 #18
0
 public CategoriaController(LivrosContext context)
 {
     _context = context;
 }