ASP.NET MVC Web Development Models | www.starwave.nl/mq
Vandaag Review van onze model classes Deze week ronden we models af Volgende week ontwerpen we de controllers.
Waar zijn we mee bezig? Met Entity framework code-first Je kunt ook op andere manieren werken: Entity framework database first Entity framework model first
Werkwijzen Model-first Eerst een model maken (diagram), dan de database en code genereren. Code-first Eerst code schrijven, dan een database genereren Database-first Eerst een database maken, dan code genereren
Een model in code public class Album { public virtual int AlbumId { get; set; } public virtual string Title { get; set; } public virtual decimal Price { get; set; } public virtual string AlbumArtUrl { get; set; } public virtual int GenreId { get; set; } public virtual Genre Genre { get; set; } public virtual int ArtistId { get; set; } public virtual Artist Artist { get; set; } }
Een model public class Genre { public virtual int GenreId { get; set; } public virtual string Name { get; set; } public virtual string Description { get; set; } public virtual List<Album> Albums { get; set; } }
Check Zijn jouw model classes optimaal ontworpen? Check: Heb je de juiste properties Heb je Lists<> waar nodig Heb je de display names goed ingesteld Heb je validatie goed ingesteld ([required] etc.) Wie biedt zijn ontwerp aan voor een review?
De DbContext Regelt je toegang tot, en het genereren van, de database. public class MusicStoreDB : DbContext { public DbSet<Album> Albums { get; set; } public DbSet<Artist> Artists { get; set; } public DbSet<Genre> Genres { get; set; } } Een database met 3 tabellen
Database wijzigen 3 commando’s onthouden: In de console: Enable-Migrations Add-Migration [migratienaam] Update-Database // toont SQL code en voert migratie niet uit Update-Database –script // toont SQL code en voert migratie wel uit Update-Database –verbose
DbInitializer In het boek: Met een DbInitializer class en het overriden van de Seed method kan je je gegenereerde DB vullen met testdata: Maar, dat hoeft niet meer. Check dit: Na het uitvoeren van Enable-migrations vind je in Migrations/Configuration.cs een Seed method die je kunt gebruiken om testdata in je database te plaatsen. Elke keer als je een database genereert zal de testdata in je database worden gezet.
Demo Laten we dit alles uitproberen in een empty MVC project.
En nu? Check je models (zie slide 7) Bestudeer H4 van het boek Probeer een database te genereren Volgende week: Controllers