рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛрд░ 2.2 рдЬрд╛рд░реА рдХрд┐рдпрд╛ред рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ (3 рдХрд╛ 3)

4 рджрд┐рд╕рдВрдмрд░ рдХреЛ, рдИрдПрдл рдХреЛрд░ 2.2 рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕реЗ ASP.NET Core 2.2 рдФрд░ .NET Core 2.2 рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдФрд░ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмреАрдЪ рдореИрдкрд┐рдВрдЧ рдХреЛ рдореИрдиреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреА рдХреА рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рд╣реИред


EF Core 2.2 RTM рдореЗрдВ рд╕реМ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝рд┐рдХреНрд╕реЗрд╕ рдФрд░ рдХрдИ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣реИрдВ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред


рд▓рд┐рдВрдХ Habr├й рдкрд░ рдЗрд╕реА рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ред рдпрд╣ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЕрдВрддрд┐рдо, рддреАрд╕рд░рд╛ рд▓реЗрдЦ рд╣реИред рдЕрдЧрд▓реА рдмрд╛рд░ рд╣рдо рдПрдХ рдирдИ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ - рдФрд░ рдпрд╣ рдирдП рд╕рд╛рд▓ рдореЗрдВ рд╣реЛрдЧреАред



рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛


рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рднреМрддрд┐рдХ рд╕реНрдерд╛рди рдФрд░ рдЖрдХрд╛рд░ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдИ рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдРрд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░, рдЗрдВрдбреЗрдХреНрд╕ рдФрд░ рд╕рд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдмрд┐рд▓реНрдЯ-рдЗрди рд╣реИрдВред рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдп рдПрдХ рдЪрдпрдирд┐рдд рджреВрд░реА рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рдЦреЛрдЬ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдБрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдмрд╣реБрднреБрдЬреЛрдВ рдореЗрдВ рдПрдХ рджрд┐рдпрд╛ рдмрд┐рдВрджреБ рд╣реИред рдиреЗрдЯрдлреЙрдкреЛрд▓реЙрдЬреАрд╕реБрдЗрдЯ (рдПрдирдЯреАрдПрд╕) рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдИрдПрдл рдХреЛрд░ 2.2 рдЕрдм рдРрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдЙрди рдореЗрдВ рдЬрд┐рдпреЛрдбрд╛рдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХреЗрдЧрд╛ред


рд╡рд┐рд╢реЗрд╖ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░ рдкреИрдХреЗрдЬ рдХреЗ рд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдПрдирдЯреАрдПрд╕ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдерд╛рдирд┐рдХ рдкреНрд░рдХрд╛рд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдирдП рдореИрдкрд┐рдВрдЧ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдРрд╕реЗ рдкреНрд░рджрд╛рддрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди SQL рд╕рд░реНрд╡рд░, SQLite рдФрд░ PostgreSQL (Npgsql рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж) рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд╛рдЧреВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рд╕реНрдерд╛рдирд┐рдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реАрдзреЗ рдЗрди-рдореЗрдореЛрд░реА рдкреНрд░рджрд╛рддрд╛ рдИрдПрдл рдХреЛрд░ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдПред


рдПрдХ рдмрд╛рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдирдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


using NetTopologySuite.Geometries; namespace MyApp { public class Friend { [Key] public string Name { get; set; } [Required] public Point Location { get; set; } } } 

рдмреЗрд╢рдХ, рдЕрдм рдЖрдк рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдмрдЪрд╛ рд╕рдХрддреЗ рд╣реИрдВ:


 using (var context = new MyDbContext()) { context.Add( new Friend { Name = "Bill", Location = new Point(-122.34877, 47.6233355) {SRID = 4326 } }); context.SaveChanges(); } 

рдЗрд╕реА рддрд░рд╣, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХреНрд╡реЗрд░реА рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛ рдФрд░ рд╕рдВрдЪрд╛рд▓рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


  var nearestFriends = (from f in context.Friends orderby f.Location.Distance(myLocation) descending select f).Take(5).ToList(); 

рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╡рд┐рд╖рдп рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдЖрд╢реНрд░рд┐рдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣


рдИрдПрдл рдХреЛрд░ 2.0 рдПрдХ-рд╕реЗ-рдПрдХ рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдореЙрдбрд▓ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИред рдИрдПрдл рдХреЛрд░ 2.2 рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реАрдзреЗ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдХреМрди рдореБрдЦреНрдп рдЗрдХрд╛рдИ (рдорд╛рд▓рд┐рдХ) рд╣реИ, рдФрд░ рдЬреЛ рдирд┐рд░реНрднрд░ (рд╕реНрд╡рд╛рдорд┐рддреНрд╡) рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЗрдХрд╛рдИ рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рд░реНрднрд░ рд╕рдВрд╕реНрдерд╛рдПрдВ:


  • рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ ( рдЕрдВрдЧреНрд░реЗрдЬреА "рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐" ) рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИрдВ;
  • DbContext рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдореБрдЦреНрдп рдЗрдХрд╛рдИ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рде рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ, рдореБрдЦреНрдп рдЗрдХрд╛рдИ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдирд┐рд░реНрднрд░ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рдПрдХ рд╕реЗ рдХрдИ рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рд╕рдорд╛рдиред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдЙрдиреНрдореБрдЦ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдХреБрдЫ рдЕрд▓рдЧ рд╣реИ, рдФрд░ рд╣рдо рдПрдХ рд╣реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЖрд╢реНрд░рд┐рдд рд╕рдВрд╕реНрдерд╛рдУрдВ (рдЖрд╢реНрд░рд┐рдд рд╕рдВрдЧреНрд░рд╣реЛрдВ рдпрд╛ рд▓рд┐рдВрдХ) рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдореБрдЦреНрдп рдЗрдХрд╛рдИ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИред


рдЖрдк рдирдП OwnsMany() API рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


 modelBuilder.Entity<Customer>().OwnsMany(c => c.Addresses); 

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВред


рдХреНрд╡реЗрд░реА рдЯреИрдЧ


рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЛрдб рдореЗрдВ LINQ рдХреНрд╡реЗрд░реА рдФрд░ рдЙрдирд╕реЗ рдЙрддреНрдкрдиреНрди SQL рдХреНрд╡реЗрд░реА рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рдЦреЛрдЬрдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдирд╛ рд╣реИ, рдЬреЛ рд▓реЙрдЧ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рдЯреИрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирдИ TagWith() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ LINQ рдХреНрд╡реЗрд░реА рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд░реЗрдВред рдЪрд▓реЛ рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛ рдЕрдиреБрднрд╛рдЧ рд╕реЗ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:


  var nearestFriends = (from f in context.Friends.TagWith(@"This is my spatial query!") orderby f.Location.Distance(myLocation) descending select f).Take(5).ToList(); 

рдЖрдк рд▓реЙрдЧ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛рда рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:


 -- This is my spatial query! SELECT TOP(@__p_1) [f].[Name], [f].[Location] FROM [Friends] AS [f] ORDER BY [f].[Location].STDistance(@__myLocation_0) DESC 

рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ [рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдПрдХ рдЦрдВрдб] рд╣реИред


EF Core 2.1 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд


рд╣рдордиреЗ EF Core 2.1 рдХреЗ рдореМрдЬреВрджрд╛ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде EF Core 2.2 рдХреЗ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдФрд░ рдкреНрд░рдпрд╛рд╕ рдмрд┐рддрд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рддрд╛рдХрд┐ EF Core 2.2 рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреНрд░рд╡рд╛рд╕ рд╕рд░рд▓ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдпрджрд┐ рдЖрдк рдЕрдЪрд╛рдирдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╣рдорд╛рд░реЗ рдмрдЧрдЯреНрд░реИрдХ рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реИред


рдлрд┐рд▓рд╣рд╛рд▓, рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдкрд░рд┐рд╡рд░реНрддрди рд╣реИ рдЬрд┐рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ рдЫреЛрдЯреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЯрд┐рдХрдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:


  • # 13986 : рдПрдХ рдкреНрд░рдХрд╛рд░ рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдПрдХ рдЖрд╢реНрд░рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, 2.1 рд╕реЗ 2.2 рддрдХ рдЙрдиреНрдирдпрди рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рдо рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдХреЗ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдореБрджреНрджреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред


рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ: рдИрдПрдл рдХреЛрд░ 3.0


рд╕рдВрд╕реНрдХрд░рдг 2.2 рдХреЗ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░рд╛ рдЕрдЧрд▓рд╛ рд▓рдХреНрд╖реНрдп рдИрдПрдл рдХреЛрд░ 3.0 рд╣реИред рд╣рдордиреЗ рдЕрднреА рддрдХ рдХреЛрдИ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП 4 рджрд┐рд╕рдВрдмрд░ рдХреЛ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП NuGet рдкреИрдХреЗрдЬ рдореЗрдВ EF Core 2.2 рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рдП рдЧрдП рдХреБрдЫ рд╣реА рдЫреЛрдЯреЗ рдмрджрд▓рд╛рд╡ рд╣реИрдВ ред


рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рдмрдбрд╝реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред рд╣рдо рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдорд╛рдЪрд╛рд░ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдХреБрдЫ рд╡рд┐рд╖рдп рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ:


  • LINQ рдореЗрдВ рд╕реБрдзрд╛рд░ ред LINQ рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЕрдкрдиреА рдкреНрд░рд╛рдердорд┐рдХ рднрд╛рд╖рд╛ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд┐рдирд╛, рдЗрдВрдЯреЗрд▓реАрд╕реЗрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реИ рдХрд┐ LINQ рдЖрдкрдХреЛ рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЬрдЯрд┐рд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрд╢рд╛ LINQ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪреБрдиреМрддреА рд░рд╣реЗ рд╣реИрдВред EF Core рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рд╣рдордиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдХреЗ рдпрд╣ рдирд┐рд╡реЗрджрди рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдХреЗ рдХрд┐рди рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ SQL рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдмрд╛рдХреА рдЕрдиреБрд░реЛрдз рдХреЛ рдЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕реАрдзреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдирд┐рд╖реНрдкрд╛рджрди рдХрднреА-рдХрднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрддреНрдпрдзрд┐рдХ рдЕрдХреНрд╖рдо рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХреЛрдб рдХреЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЬрд╛рдиреЗ рддрдХ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред EF Core 3.0 рдкреВрд░реА рддрд░рд╣ рд╕реЗ LINQ рдЗрдВрдЯрд░реНрдирд▓реНрд╕ рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЯреЗрд╕реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХ рдЯрд┐рдХрд╛рдК рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд╛рдХрд┐ рддрд╛рдЬрд╛ рдкреИрдЪ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЕрдиреБрд░реЛрдз рдЯреВрдЯ рди рдЬрд╛рдПрдВ); рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдПрд╕рдХреНрдпреВрдПрд▓ рдореЗрдВ рд╕рд╣реА рдЕрдиреБрд╡рд╛рдж рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛; рдЙрди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВ рдЬреЛ рдЕрдзрд┐рдХ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ; рдЗрд╕ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЕрдпреЛрдЧреНрдп рдЕрдиреБрд░реЛрдз рдХрд┐рд╕реА рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред


  • рдХреЙрд╕реНрдореЙрд╕ рдбреАрдмреА рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ ред рд╣рдо EF Core рдХреЗ рд▓рд┐рдП рдХреЙрд╕реНрдореЙрд╕ DB рдкреНрд░рджрд╛рддрд╛ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ EF рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЙрдбрд▓ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдбреЗрд╡рд▓рдкрд░реНрд╕ рддреБрд░рдВрдд Azure Cosmos DB рдХреЛ рдЕрдкрдиреЗ рдореБрдЦреНрдп рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХреЗрдВред рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рддрд░рдг, "рд╣рдореЗрд╢рд╛" рдЙрдкрд▓рдмреНрдзрддрд╛, рд▓реЛрдЪрджрд╛рд░ рдорд╛рдкрдиреАрдпрддрд╛, рдХрдо рд╡рд┐рд▓рдВрдмрддрд╛ рдФрд░ рдЗрддрдиреЗ рдкрд░ рдЬреИрд╕реЗ рдХреЙрд╕реНрдореЙрд╕ рдбреАрдмреА рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдиреМрддреА рд╣реИред рдИрдПрдл рдХреЛрд░ рдкреНрд░рджрд╛рддрд╛ рдЙрдкрд▓рдмреНрдз рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдордиреЗ EF Core 2.2 рд╕реЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдпрд╣ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рднреА рдЬрд╛рд░реА рдХрд┐рдпрд╛ред рд╣рдо рдИрдПрдл рдХреЛрд░ 3.0 рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред


  • C # 8.0 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди ред C # 8.0 рдореЗрдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧреА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдПрд╕рд┐рдВрдХреНрд╕ рд╕реНрдЯреНрд░реАрдо ( await foreach рд╕рд╣рд┐рдд) рдФрд░ рдЕрд╢рдХреНрдд рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░ рдЬреЛ EF Core рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВред


  • рдХреНрд╡реЗрд░реА рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрд▓рдЯ ред EF Core 2.1 рдХреНрд╡реЗрд░реА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ SQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдореЙрдбрд▓рд┐рдВрдЧ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рд╛рди рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП EF Core 3.0 рдЕрдкрдиреА рд░рдЪрдирд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред


  • рдкреНрд░реЙрдкрд░реНрдЯреА рдмреИрдЧ рдПрдВрдЯрд┐рдЯреАрдЬ ред рдпрд╣ рдРрд╕реА рдЗрдХрд╛рдЗрдпрд╛рдБ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЧреБрдгреЛрдВ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЕрдиреБрдХреНрд░рдорд┐рдд рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреА рд╣реИрдВ, рдФрд░ .NET рдореЗрдВ рдПрдХ рд╣реА рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Dictionary<string, object> рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬрд╝ Dictionary<string, object> ) рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдПрдХ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╡рд╣реА EF Core рдореЙрдбрд▓ред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдПрдХреАрдХреГрдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ рдХрдИ-рд╕реЗ-рдХрдИ рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдкреВрд░реНрдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдбрд╝рдХ рдкрд░ рдЕрдЧрд▓рд╛ рдХрджрдо рд╣реИ - рдЕрд░реНрдерд╛рдд, рдИрдПрдл рдХреЛрд░ рдХреА рд╕рдмрд╕реЗ рдкреНрд░рддреАрдХреНрд╖рд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред


  • .NET рдХреЛрд░ рдкрд░ EF 6.3 ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЕрдм рдРрд╕реЗ рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реИрдВ рдЬреЛ EF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ .NET Core рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдХреБрдЫ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП EF Core рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо EF 6 рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдпрд╣ .NET рдХреЛрд░ 3.0 рдкрд░ рднреА рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗред рдпрд╣ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдпрдерд╛рд╕рдВрднрд╡ рдХрдо рдХреЛрдб рдмрджрд▓рдирд╛ рдкрдбрд╝реЗред рдмреЗрд╢рдХ, рдпрд╣ рдХрдИ рд╕реАрдорд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирдП рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛ рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдЧрд╛)ред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рдо EF 6 рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред



рдирд┐рд╖реНрдХрд░реНрд╖


EF рдЯреАрдо рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рд╡рд┐рдХрд╛рд╕ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдореБрджрд╛рдп рдХрд╛ рдзрдиреНрдпрд╡рд╛рдж рдХрд░рддреА рд╣реИ рдЬреЛ рдЕрдВрддрддрдГ EF Core 2.2 рдХреА рд╢реБрд░реБрдЖрдд рдХрд╛ рдХрд╛рд░рдг рдмрдиреАред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ рдХрд┐ рдирдИ рдЗрд╢реНрд╢реБрдИ рдХреЛ рд╕реАрдзреЗ рд╣рдорд╛рд░реЗ рдЯреНрд░реИрдХрд░ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж!


рдордд рднреВрд▓реЛ рдХрд┐ 1 рдЬрдирд╡рд░реА рд╕реЗ рдбреЙрдЯрдиреЗрдХреНрд╕реНрдЯ рдХреЗ рдЯрд┐рдХрдЯ рдореВрд▓реНрдп рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░реЗрдВрдЧреЗред рд╡реНрдпрдХреНрддрд┐рдЧрдд - рдПрдХ рд╣рдЬрд╛рд░ рдХреЗ рд▓рд┐рдП, рдФрд░ рдорд╛рдирдХ - рджреЛ рд╣рдЬрд╛рд░ рдХреЗ рд▓рд┐рдПред рдЕрд░реНрд▓реА рдмрд░реНрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рд╕рд╛рдЗрдЯ рдкрд░ рд╣реИрдВ ред

Source: https://habr.com/ru/post/hi433442/


All Articles