Это видео недоступно.
Сожалеем об этом.

Entity Framework Migrations Explained

Поделиться
HTML-код
  • Опубликовано: 13 авг 2024
  • The week, James is joined by Brice Lambson, Senior Software Engineer on the Entity Framework team to talk in depth about migrations for your database. When do you need them? How do you run them? How do you maintain them in the long run? Brice breaks it all down.
    00:00 - Intro & Brice from the EF Core team
    01:30 - What are Database Schema Migrations?
    03:40 - Why do I need migrations?
    05:20 - Code first or database first?
    08:30 - Getting started with EF Core
    12:30 - Our first EF Core migration
    19:40 - What is in a migration?
    22:30 - Remove migrations & required fields
    26:00 - Update migrations
    32:11 - Running migrations in production
    35:20 - Wrap-up, tips & tricks
    Links:
    EF Docs- docs.microsoft.com/ef
    EF Core on MS Learn - docs.microsoft.com/learn/modu...
    SQLite Toolbox - marketplace.visualstudio.com/...
    DbUp - dbup.readthedocs.io
    Fluent Migrator - fluentmigrator.github.io
    #efcore #entityframework #dotnet
    🙋‍♀️🙋‍♂️ Get your questions answered on the Microsoft Q&A for .NET: aka.ms/dotnet-qa
    🏫 Learn C#, F#, and .NET with free self-guided learning from Microsoft Learn: aka.ms/learndotnet

Комментарии • 33

  • @timwitort6013
    @timwitort6013 Год назад +6

    Really excellent overview of EF migrations. But a word to RUclips content creators... if you say, "Hey, if you have any questions, leave them in the comments below and we'll answer them!", then you should actually do that. None of the questions below have been answered by James or Brice.

  • @chandler6595
    @chandler6595 Год назад +3

    This is great. Thank you for covering deployments and not just local development.

  • @liquidpebbles
    @liquidpebbles 5 месяцев назад

    Great info in here. Thank you guys. Brice seems really cool and he's a solid teacher. He reminds me a lot of Scott Hanselman.

  • @willpetersen952
    @willpetersen952 Год назад

    I can't imagine how much I would learn working with Brice. What a smart guy!

  • @JoseSilva-gt6zj
    @JoseSilva-gt6zj 2 года назад +3

    Thank you, James! I'm following all of your videos even in your channel, they are awesome! Keep going! ;)

  • @bradgermain
    @bradgermain Год назад +6

    Thank you for this, it's a very good introduction to EF migrations. I have a quick question. Brice mentioned adding a new migration if you're trying to revert a change, but isn't that what the down method is supposed to be used for? If not, when would you use it, just for when you want to revert changes before updating the DB? Thanks again!

  • @matteobarbieri2989
    @matteobarbieri2989 2 года назад +5

    Great, when we will see part 2 of EF tutorial? :-)

  • @kj2w
    @kj2w 2 года назад +2

    I do have a question...
    I've had great success with generating a sql script using Script-Migration command. However when we deploy, the customer would like to know if the number of rows in specific tables have changed before and after a migration. What I've done is manually added SQL statements (ex.
    DECLARE @someVariable as int;
    SELECT @someVariable = Count(*) FROM Table;
    PRINT @someVariable;
    GO;
    ) before the migration and then the same SQL statements at the end.
    My question now is, Is there a way to add custom SQL so that it appears at the beginning and/or end of the artifact generated by script-migration?

  • @AizenSousuke92
    @AizenSousuke92 Год назад +3

    Anyone has any idea how do migrations work in team environments? When I merge other people's branch to mine, what should the step be to ensure that the migrations I've created and theirs (which happens to be in between) do not conflict? Should I remove my own migration, apply theirs and re-create my own migration again?

    • @tehsimo
      @tehsimo Год назад

      This seems to be where migrations can turn into a hellscape

  • @markvl197
    @markvl197 Год назад +1

    Can u create migrations for 2 types of databases at once eg mysql and sqlserver? Say if u have clients using your software but they want to run diff database types due to their environment stack ?

  • @AppAxis
    @AppAxis 9 месяцев назад +1

    Why would you ever need to remove a database if UPDATE-database is better? #EntityFramework #DotNet #Csharp

  • @niravsanghadiya6393
    @niravsanghadiya6393 Год назад

    Great stuff but I have a question here. When you add any new entity to existing DbContext and then you apply migration, Why it generates all the entities instead of the one which is recently added ? Any idea ?

  • @divv8079
    @divv8079 Год назад

    That [Required] attribute for 'Title' is no longer necessary if you have "Nullable reference types" enabled in C# right? Since the string is non-nullable EF Core would pick that up as nullable: false

  • @SHAMITHADEVINDA
    @SHAMITHADEVINDA Год назад

    It would be also great to know how to tag project version for migrations so we can upgrade from 101.01 to 101.13 passing 01 to 12 changes

  • @BhanuKorremula
    @BhanuKorremula Год назад

    How to use code first if we want to encrypt columns in a database?

  • @erik9817
    @erik9817 9 месяцев назад

    Cool! How do I migrate from the first migration back to nothing in Azure SQL? Assuming that the database has been update with the first migration.

    • @erik9817
      @erik9817 9 месяцев назад

      Great question! It's PM> update-database 0 and PM> Remove-Migration.

  •  2 года назад +1

    I applied a migration on a production server and it cleared all data...

    • @mojekonto9287
      @mojekonto9287 2 года назад +3

      Oh sh*, I apply migrations automatically on every deploy :D so far, all good for the last 3 years... but first, everything gets tested on DEV environment, so we know what to expect on PROD

    •  2 года назад

      @@mojekonto9287 It was on a new website, but it was already on the production server. There were no users there yet, but still a very big problem. And the worst part is I have no idea what caused that.

    • @mojekonto9287
      @mojekonto9287 2 года назад +3

      @ if examining the auto-generated migrations code (the Up and Down) doesn't give any clues then maybe somebody had applied some other changes manually in between. Still, even if that was the case, i would expect that applying a migration on top of them could fail. From my experience, loss of data can usually be caused by a table column type change. Or maybe you executed a script that triggered a revert of all the migrations before applying them again. I think I have seen such approach in some automated integration tests.

    •  2 года назад

      @@mojekonto9287 Now that you mentioned, I did change a column type. OMG and will it errase all data? I had no idea!!!
      THANK YOU SO MUCH!

    • @mojekonto9287
      @mojekonto9287 2 года назад +2

      @ it may erase data only in that column, though. The rest should stay intact.

  • @ttirrell
    @ttirrell 2 года назад

    I see James wheels are turning. Time to update your Monkeys App and Coffee App

  • @haroldpepete
    @haroldpepete Год назад

    that looks like rails migration, ummm, convention over configuration, umm, you've been watching rails' world