.NET 6 & EF Core 🚀 ALL Relationships (1:1, 1:n, n:n) with Entity Framework Core 6 & SQL Server

Поделиться
HTML-код
  • Опубликовано: 31 дек 2024

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

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

    🚀 Join the .NET Web Academy with a 30% discount - closing soon!
    👉 www.dotnetwebacademy.com/courses/academy?coupon=dnwas23yt

  • @azamjandali867
    @azamjandali867 2 года назад +65

    The fact that you code and fix error live makes you an elite programming content creator!

    • @PatrickGod
      @PatrickGod  2 года назад +4

      Thank you so much! Appreciate it! 😊

  • @oncalldev
    @oncalldev 3 года назад +39

    Seeing the real world coding of encountering errors and troubleshooting just adds a better understanding to the overall subject matter - as was the case here. Thanks for the highly understandable & enjoyable content.

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

      Thank you so much Bruce, appreciate it! 😊

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

      It was interesting watching it. I just couldn't help but laugh at some point because it was so relatable :)

  • @Raziel7171
    @Raziel7171 2 года назад +8

    You have no idea how helpful this tutorial was to me, i don't even speak english but the voice is so clear and neutral didn't needed a close captions and the errors I've been struggling lately has been solved so quick, thank you so much.

  • @SZOKE19940321
    @SZOKE19940321 Год назад +2

    Ur the best Patrick, was googling for like 2 hours now, could not put it together, found your video, it just saved me another few hours of searching. Really helpful the live debugging from ur side. Cheers man!

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

      Thank you so much for letting me know. Really glad I could help! 😊

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

    Thanks!

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

      Wow! Thank you so much! 😀

  • @sergkapitan2578
    @sergkapitan2578 4 месяца назад +1

    Patrick! Everything is great:) But for those who are not familiar with this framework and some other stuff it is too heavy without little more explanaitions in the first place! Is it possible for you to expand this video or create an additional tutorial for this one as forrunner:)??? That would be great help for many people as I see also greatfule dudes in the commentaries. Some basic explanaitions would also not be too much! Thank you once again for your generosity and service!!! God bless you :)

  • @grumpydeveloper69
    @grumpydeveloper69 3 года назад +8

    I like the messy style of this video and that fact that you did not prepare a lot in advance. This feels lot like how I approach things and then run into the type of problems you ran into. And... I like your cussing as well, very recognizable 🙂

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

      Haha, thank you so much. Yeah, that's just the way it is. Sometimes you just don't know what problems you're going to run into. Even with supposedly simple tasks. 😅

    • @tylerb6981
      @tylerb6981 3 года назад +1

      My favourite part was when he acknowledged how much easier this process would be with the proper software architecture. It is a testament to the efficacy of the architecture, his knowledge level, and the nuances of using a framework as complex as .NET.

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

    This is my 1st EF tutorial, i worked only with NoSQL DBs, thought i will give it a try, this was very fun to watch! thanks.

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

      Glad you enjoyed it! Thanks a lot for your feedback! 😊

  • @leonnxpumper
    @leonnxpumper 2 года назад +7

    Thank you so much for your videos!
    I can't believe how fluent and easy going are your videos. English is not my first language but your pronuntiation and your pace make it easy to understand everything.

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

      Happy to hear that! Thank you so much for your feedback! 😊

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

    Hey really nice video Patrick! The many-to-many has tripped me up in the past so thanks for taking the time to walk through that.

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

      Glad it was helpful! Thanks a lot for your feedback!

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

    I love the way you doing that tutorials. You never hide error. I really appreciate that. really interesting. Pleas don't change your Style. Thank you And Good luck brother!

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

      I appreciate that! Thank you so much for your feedback! 😊

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

    Thank you Patrick!!! I've been struggling with EF for the last two weeks.... Now I think I see the light at the end of the tunnel... :)

  • @АристархЗловредович
    @АристархЗловредович 2 года назад +4

    Stumbled upon your channel by accident, great content and very clear explanations. Best regards from Azerbaijan

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

      Thank you so much! Appreciate it! 😁

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

    I'm from Brazil and u are helping me a lot, thanks!!

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

    Gracias por tu pronunciación! No se mucho inglés pero hablas muy pausado y eso ayuda mucho para entender lo que dices.
    Ojalá tuvieras los subs en español, pero se agradece mucho tu contenido.
    Saludos desde Argentina.

  • @Don-ii4vm
    @Don-ii4vm 2 года назад +1

    In less than a year, you've tripled your subscriber numbers.
    Well Done, Patrick.

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

    Finally found my best problem solving video. Thank you my teacher

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

    It was tricky to fight with dotnet ef, because I had to build the solution, the project, hahaha, until it wants to do its work right (same code). But I have learned a lot from the errors, thank you to be a fighter against errors and show them and their resolution.

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

      Thanks a lot for your feedback! Great you figured it out! 😊

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

      Thanks for the tip about build the solution, I was stuck for the moment there.

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

    Patrick, thank you for this demo. It helps me in becoming more familiar with EF!!!! P.S. I would love to see all of those "what you should do is.... " best practices :)

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

    Patrick, I loved learning dotnet from you!

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

      Thank you very much! Appreciate it! ☺

  • @mohameddabbour6961
    @mohameddabbour6961 2 года назад +4

    To solve that add error, Just change User property in Character model to be:
    public User? User { get; set; }
    the ? means optional

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

      it means nullable to be precise, which is quite important i think

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

    Thanks god i found you dude, awesome tutorial and btw its pretty fun to watch its because of your way to solve the issues while tutorial. Its really helps me, thanks a lot!

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

    You saved my project, I was having the same error with the foreign keys, sending the object from the client side to the API and just getting a Bad Request.
    Thanks a lot for your detail troubleshooting. =)

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

      Glad I could help! Thanks so much for your feedback! 😊

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

    Gracias Mister Patrick......A pesar que no tiene subtítulos, se entiende....

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

    Do you know how can I add another field to the CharacterSkill table?

  • @Gauravkumar-jm4ve
    @Gauravkumar-jm4ve 2 года назад +1

    Nice.. thanks for sharing.. please keep doing more

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

      Thanks a lot for your feedback!

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

    fuuuuuck, this video is amazing! binging all your content and learning so much :)

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

      Thank you so much! Glad you like it! 😊

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

      @@PatrickGod Such quality content my friend, much appreciated

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

    Of course its worth a like!
    good job and thank you

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

    Lol at 33:32 "Well that was a lot of work for just creating a character" :D

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

    Mr God.. where was this Swagger UI thingy configured? Came out of nowhere, seems REALLY useful, and I don't think it was configured anywhere in this video.
    Do you have any resources for it?

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

    What an amzing tutorial!!! Thank you so much

  • @sergkapitan2578
    @sergkapitan2578 4 месяца назад +1

    LIke and subscription!!!!! Cab you create a video with the same content for those who are "left behind":))) For those who want to learn the framework , but still not that far!? There are many confusions, when it come to which combination of "tools" is better. Is MVC is still relevant in such a dev.? When is better "Code first"? And how to connect this with FRONTEND tool, ...specially as Angular :) Really many thanks!!!

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

    you are the obi wan kenobi of C# you deserve coffee so the force will be with you

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

    Great Tutorial and I nice video-Cheatsheet ^^. I just needed a refresher in ef core and some bugfixing tips for example how to deal with the json-serialization error. Your video helped me a great deal with that. Thanks!

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

    Thank you so much. This video was so easy to follow and understand.

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

    I was looking for a fix in those errors you encountered. I could not find any recourses on the internet and it seems like I found the fix. I am using pomelo entity framework and MySQL .I hope it will work. Many thanks and cheers to the no script tutorial!

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

    The error that you encountered with the POST method is EXACTLY what I was dealing with after watching your CRUD with a .NET 6 Web API & Entity Framework Core 🚀 Full Course and tailoring it along the way to my use case. Post was requiring the object and I could not for the life of me determine why.

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

    I recently started to watch your videos, liked most of them.
    Please create video on .net web api solution architecture

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

    i loved your videos. I'm learning a lot from you, thank you

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

      Thank you so much for your feedback! Glad you like them! 😊

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

    great video but i have one question the configuration code is different for .net6 and .net 7
    and can you make a detailed video on what's new in .net7

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

    Easy to learn
    Thanks Petrick 😃

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

    Hi Patrick
    Weapon has character and characterid . Character has user and userid.
    When you added a new Character you added the userid and not user but when you added the weapon you added the character and not the characterid (at 46:00) . Why is this different ?

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

    I was looking for this in a long time, how to do a save many to many relationships, you make it so easy. Thanks for all your hard work

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

    Can you film a video to explain why there is need to Create the CreateCharacterDTO in the 1 : n relationship. ; and approach to handle the 1 object to avoid the cycle reference? those seems interesting for me. Thanks.

  • @_a_n_r_i2812
    @_a_n_r_i2812 3 года назад +1

    Thanks Mr. God.

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

    Also, get ready for a new energy at 58:28 :D

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

    How and what would you do if both Charachter and User belong to two different assemblies ? How could you reference both sides? You fall in a Circular Dependencies !!

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

    Just use a Dto for the creation of a Character and you will be AOK!

  • @بيبروفيسورفيالرياضيات-ض1ج

    thanks great video
    I want ask in 23:57
    why user is null?

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

    Thank you so much, it was what I was looking for. Finally some beginner friendly tutorials.

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

      You're very welcome! Glad you like it. Thanks a lot for your feedback! 😊

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

    Great video) Can you make video about API authentication?

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

    Hi, I want to make a character update. But when I add or update a character attaching the relational objects to it (that already exists on database), the savechanges method attempts to create them into database, I don't want to create just to assign existing skills to character.

  • @BhagirathMakwana-e1y
    @BhagirathMakwana-e1y 10 месяцев назад

    good explaination

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

    The protected override void OnModelCreating(ModelBuilder modelBuilder) method is not necessary ?

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

    setting [JsonIgnore] doesnt really fix, what will happen when an analytics team wants to get the Skills and the characters that are using them?

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

      I'm also running into this problem right now. I want both sides of the relationship to be visible via the API, with the relationship optionally eager loaded through a "fields"/"include" query parameter. How would one resolve this?

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

    Thanks a lot for your effort with clear and clean explanation, Patrick.
    I was just wondering if you could give some guide about getting the "User" entity with List included without it being a null value and also the process of binding them so that deleting the "User" with the user controller would also delete its related "Character"s, maybe tell me about the thought process of achieving this, it would be much appreciated.

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

      Hey there! Thanks for your feedback. I think the following article might help you regarding the delete behavior in such cases: docs.microsoft.com/en-us/ef/core/saving/cascade-delete

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

      @@PatrickGod Thanks a lot, this is really helpful to me and I really appreciate it.
      I'll be waiting for more content from you, you're doing great.

  • @muzamilmughal-15
    @muzamilmughal-15 Год назад +1

    I loved your approach of using DTO but that actual error could be resolved by just making it Nullable, because for making a relationship we just need the Id of that particular object, not the complete object. Because even when using DTO we are making extra round trip to DB for getting the USER against specific userId which is not essential in this particular case.

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

    Really appreciate this,thak you!

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

    Do you have any videos on how I can go about actually calling my Web API from a blazor app for example?

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

    Note: The onModelCreating is not used here explicitly. This is because a join table CharacterSkill that was implicitly created does NOT have its own unique properties. The n:n entity relationship is implicit onModelCreating. If for example, the Character that adds a skill needs to have a date or level of skill associated with him, we would explicitly add the CharacterSkill model (Composite table) with those unique properties.

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

    what does the return type Task, IActionResult and ActionResult do?

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

    Hi Patrick, Firstly I must commend your efforts, you are doing a very good job there. I was following the video, and I got stuck at the many to many relationship part. I have created a class for skills, and added the List of skills to my character class also, but when I run the ef migrate command, I only get the skills table, I do not get the combined table of skills and character. Is there something I am doing wrong?

  • @01pedro02pedrinho03
    @01pedro02pedrinho03 2 года назад +1

    Really good content, helped me a lot, thanks!!

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

      Thank you so much for your feedback! 😄

  • @Wada-Channel
    @Wada-Channel Год назад

    Hi, great video! I'm a newbie. Could you please suggest if it would be a good idea to create a WinForms app that interacts with a Web API, with the possibility of developing another frontend for a mobile app if needed

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

    Thanks God !

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

    Thank you so much.

  • @GameGame-kl6bs
    @GameGame-kl6bs 3 года назад +1

    As always valuable contents

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

    Nice video.. like your jokes :) .. BTW: as for the issue with saving the Character.. you could set User as nullifyable in the Character class.. this should also work

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

    Hy,really love your videos.
    Just one question: which presentation software are you using for your slides really love it.

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

      Thanks a lot! I use "Canva" for the slides. Enjoy! 😊

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

    I get this error with this relationship: "Introducing FOREIGN KEY constraint 'FK_Events_Users_UserId' on table 'Events' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints". How can I fix this?

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

    but how we can use this concept with angular? I know you talked about backend relationships here but how is it going to help in frontend ?

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

    Completed!

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

    And why not just have a userId FK in the Character? Why are you building Models that contain both the referrenced objects (the User property within the Character) AND their ID (the UserId)? Why should the Character contain a property of the User object? Does EF require it for the FK to be created? (I don't think so, or else the UserId would be not be needed. Makes sense?). In essence, why shouldn't just the ID of the foreign object be enough?...

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

      I had the same question. EF uses it for the foreign key to be created. They are called "Navigation Properties." They aren't loaded unless you explicitly load the relationships in your queries of the DbContext.
      That said, I am still not sure why he couldn't save the character around the 29:00 mark when he had specified the userId. Seems strange to me that you would have to run a query to find the user before adding the character entry to the database given you are supplying a valid foreign key there.

  • @santosh.nextbuild
    @santosh.nextbuild 2 года назад

    If both tables have primary key is string datatype, it is not working. why? And how do you work?

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

    Thank a lot 🎉🎉🎉

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

    I have a question if u put [key] on the models does it then not work?

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

    Wouldn't ICollection be faster than List?

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

    Can you create a video on database first approach.

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

    Hi Patrick, thank you for the great video and for your effort. I have a question - why do we need to install SQL related packages in the from-end applications? If I create an another class library for data project then I still have to reference the data layer project in the front-end project in order to register DBContext class with the dependency services. Is there a better way of doing this?

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

    Great bro

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

    Hi and thanks for nice videos!
    Is it possible to debug these autogenerated code within entitity framweworks?

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

    Can two project with different models point to a same database??
    I want user app and admin app independently but with same database

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

    Hello Dear Patrick, would you open automatic translate(cc)

  • @shojaedin
    @shojaedin 3 года назад +1

    Thank you I learned alot

    • @PatrickGod
      @PatrickGod  3 года назад +1

      Glad I could help! 😊

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

    Hi loved your video on Relationships.
    I found your video on the search for the exact problem you also ran into with creating a new record with the same class. You mention there should be another solution where you don’t have to create a new class CreateCharacterDto.
    Have you found a solution for that so that the same class can be used?
    Because I would really like to keep my code as clean and simple as possible.

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

      The users property in the characters class was non nullable.. Just make the property nullable..
      public class Character
      {
      public int Id { get; set; }
      public string Name { get; set; }
      public string RpgClass { get; set; } = "Knight";
      public User? User { get; set; }
      public int? UserId { get; set; }
      }
      This way u will be able to save a character without needing to specify a user. But I believe u should use separate classes and not entities as arguments. so better to create DTOs

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

    Gracias mister patrick se entiende a pesar que no esta activado los subtitulos :(

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

    The only constructive feedback i have is that:
    1. You should have shown in code, how you added entities to your database, instead of doing it directly in the database. Else its been a great video.
    2. When you debug, mouse over the error you find and explain to problemshooting logic from what you are reading/seeing :)

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

      Thanks a lot for the feedback! It seems I'm too fast sometimes, in particular when I get any errors. I'll keep that in mind. 😊

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

      @@PatrickGod watching you problemsolve error was one of those things i learned most of.
      In generel was it so refreshing too see errors in a "tutorial" and i learned a bunch.

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

    Thank you so much !

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

    thanks bro!

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

    when talking about fighting sticks it would be staff. like jo-staff, bo-staff etc. the other accepted term is Stave. well stave is typically the plural term for many staff items, it is acceptable to use stave as both singular and plural. Some DMs i have played with refer to magic sticks as staves and fighting sticks as staffs. so really just preference in my book. Also love the Dragonlance nod.

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

    Mantap mang

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

    I thing that's awful, sorry. I going to yt to see correct example with ef6, another side, i see how to guy trying make working code and in the end it doesn't look like correct decision. i hope you understand about what i say

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

    subscribed to your newsletter and when i press the confirm button on the mail it redirects me to a 404 page. Are you aware of that issue?

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

      Thanks a lot for subscribing and for the info, Nick! I hope that's fixed with my latest landing page for the newsletter.

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

    Hii Sir, A Small Doubt, When to use [JsonIgnore]. And in which Class file we will use [JsonIgnore]

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

    Nice tutorial but it would have been really nice if you told us that we need to install Microsoft SQL express server in order for the database to work. It's kind of obvious now but I wasted a lot of time trying to understand why the database wasn't working.

  • @2005bgva
    @2005bgva 2 года назад

    Patrick thanks for this video. Could you please activate subtitles?

  • @LeandroSouza-vl7cl
    @LeandroSouza-vl7cl 2 года назад +1

    You should change the title of this video to "For beginners" because it is a really junior way to work with EF.
    For something more professional in the real world, I would suggest you use Fluent API with configurators.

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

    Thanks Patrick a lot but can you add the auto generated subtitles English pls, it make non-native English speakers easier to follow.

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

    You are light in the c# darkness
    Please use more MongoDB