This is a cropped demo - some features are removed since it requires an account and subscription.
Some things (interactive prompt, editor etc) doesn't work in phones - you are not to supposed to do programming in your phone anyway
Note that ALL exercises blow has link to correct solution as well as a Youtube video where solution is programmed and explained
Denna lektionen är en del i Web med C#

Database -code first

Föreläsning 1 på Youtube -teori

I föreläsningen ovan arbetade vi med Codefirst från en Console-applikation. Codefirst är en paradigm, och kan appliceras i alla typer av applikationer - och språk.

Nu kikar vi på Codefirst ur ett ASP.NET Core perspektiv. Vi behandlar bla

  • migrations
  • connectionsträng i config-fil
  • one to many relations
  • seeda startdata (stödtabeller etc)

Föreläsning 2 på Youtube -teori

Att tänka på vid övningsuppgifterna

Lesson exercises

Code first setup

I denna övning ska du skapa ett ASP.NET Razor Pages projekt.

  1. Skapa en Data-folder med en klass Bil. Den ska ha följande egenskaper
        public int Id { get; set; }
        public string Manufacturer { get; set; }
        public string Model { get; set; }
        public int Year { get; set; }
        public decimal Price { get; set; }

  1. Skapa en ApplicationDbContext med Bil som DbSet

  2. Lägg till ApplicationDbContext i container...samt connectionstring i appsettings.json

  3. Kom ihåg add-migration

  4. Skapa en DataInitializer som gör dbContext.Database.Migrate och anropa den från

        public static void Main(string[] args)
        {
            var host = CreateHostBuilder(args).Build();
            using (var scope = host.Services.CreateScope())
            {
                var serviceProvider = scope.ServiceProvider;
                var dbContext = serviceProvider.GetRequiredService<ApplicationDbContext>();
                DataInitializer.SeedData(dbContext);
            }

            host.Run();
        }

    public class DataInitializer
    {
        public static void SeedData(ApplicationDbContext dbContext)
        {
            dbContext.Database.Migrate();

  1. Kör programmet och verifiera att databas och tabellen skapas.

Link to code solution
Link to video solution
My solution
The data below is only for your own reference. Enter a link to your github-repository for example

Code first migrations

Fortsätt på den förra uppgiften.

  1. Lägg till en bool HasRadio till Bil

  2. add-migration

  3. kör och verifiera att databasen uppdateras

  4. skapa en till entitiet: Lastbil. Den kan ha Id, Manufacturer (string), LoadVolumeKvm (int)

  5. add-migration och verifiera att databasen uppdateras vid körning


Link to code solution
Link to video solution
My solution
The data below is only for your own reference. Enter a link to your github-repository for example

Seeding data

I din DataInitializer - lägg till SeedBil - och skapa upp 5 stycken bilar.

Se till att de bara skapas ifall de inte redan ligger i databasen.

Lägg också till SeedLastbil. Och skapa upp tre sådana vid uppstart

Verifiera att de läggs in i databasen vid uppstart

Verifiera att det inte blir dubletter när du startar igen


Link to code solution
Link to video solution
My solution
The data below is only for your own reference. Enter a link to your github-repository for example

Migrering - avancerad

Nu vill man inte ha Manufacturer som en sträng i Bil-tabellen.

Din uppgift är att

  1. skapa en ny entitet (Manufacturer). Den ska bara ha id och namn

  2. Varje bil ska nu ha en property av den typen

  3. Men tänk på att seedning osv måste fixas också, dina 5 bilar ska ha samma manufacturer som innan - dvs seeda de manufacturersr du har idag!

  4. Du kommer behöva göra om logiken i seedngen - Om bil inte finns ELLER om manufacturer är null så ska man seeda kanske?


Link to code solution
Link to video solution
My solution
The data below is only for your own reference. Enter a link to your github-repository for example

Continue

Chatbox - support

My status/history on this lesson

# Type Text