Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Autor {
- public long Id { get; set; }
- public string Nome { get; set; }
- public ICollection<Livro> Livros { get; set; }
- }
- class Livro {
- public long Id { get; set; }
- public string Nome { get; set; }
- [Column("EditoraId")]
- public long EditoraId { get; set; }
- public ICollection<Autor> Autores { get; set; }
- }
- class EFContext : DbContext {
- public DbSet<Editora> Editoras { get; set; }
- public DbSet<Livro> Livros { get; set; }
- public DbSet<Autor> Autores { get; set; }
- protected override void OnModelCreating(DbModelBuilder modelBuilder) {
- modelBuilder.Entity<Autor>()
- .HasMany(autor => autor.Livros)
- .WithMany(livro => livro.Autores)
- .Map(x => {
- x.ToTable("livros_e_autores");
- x.MapLeftKey("autor_id");
- x.MapRightKey("livro_id");
- });
- }
- public EFContext() {
- DropCreateDatabaseIfModelChanges<EFContext> initializer = new DropCreateDatabaseIfModelChanges<EFContext>();
- Database.SetInitializer(initializer);
- }
- }
- public void ListaTodosLivroAutores() {
- using (EFContext ctx = new EFContext()) {
- var retornoLivro = from liv in ctx.Livros
- select liv;
- foreach(var itemLiv in retornoLivro) {
- Console.WriteLine("nCódigo Livro: " + itemLiv.Id
- + "nNome Livro: " + itemLiv.Nome);
- var retornoAutor = from aut in ctx.Autores
- where ctx.Livros.Any(l => l.Id == itemLiv.Id)
- select aut;
- foreach(var itemAut in retornoAutor) {
- Console.WriteLine(" Autor: " + itemAut.Nome);
- }
- }
- }
- }
- SELECT liv.Id "Código Livro",
- liv.Nome "Nome do Livro",
- aut.Nome "Autores"
- FROM dbo.livros_e_autores lea
- INNER JOIN dbo.Livroes liv ON liv.Id = lea.livro_id
- INNER JOIN dbo.Autors aut ON aut.Id = lea.autor_id
Add Comment
Please, Sign In to add comment