EF Core, SQL. ΠΠ°ΠΏΠΈΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡ ΠΊ Postgres. Π ΠΊΡΠ°ΡΡΠ΅, Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ²Π°ΡΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊ Postgre ΡΠ΅ΡΠ΅Π· LINQ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· raw SQL. Π ΡΡΠ»ΠΎΠ²Π½ΠΎΠΌ Π΄ΠΈΡΠΊΠΎΡΠ΄Π΅ ΡΠΎΠ·Π²ΠΎΠ½ΠΈΠΌΡΡ, Π΄Π°ΠΌ dbcontext, Π΄Π΅ΡΠ°Π»ΠΈ ΠΎΠ±ΡΡΡΠ½Ρ, “Π½Π° ΠΌΠ΅ΡΡΠ΅“ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅. ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π½ΡΡΠ΅. ΠΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ ΠΏΠΎ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ Π½Π°ΠΏΠΈΡΠ°Π½Π° ΡΠ΅ΡΠ΅Π· LINQ (IQueryable), Π½Π° Π²ΡΡ
ΠΎΠ΄Π΅ ΡΠΏΠΈΡΠΎΠΊ<Π·Π°ΠΊΠ°Π·, ΠΏΡΠΎΠ΄ΡΠΊΡ>, Π½ΠΈΠΆΠ΅ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅, ΡΡΠΎ ΡΡΠΎ. Π’Π΅ΠΏΠ΅ΡΡ Π½ΡΠΆΠ½Π° Π²ΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ (ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΏΡΠΎΡ ΠΊ Π±Π΄, Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΈ ΡΠ°ΠΌ ΠΌΠΎΠ³Ρ, Π½ΠΎ ΡΠ°ΠΊ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΊΡΡΡΠΎ), ΠΊΠΎΡΠΎΡΡΡ Ρ ΠΌΠ΅Π½Ρ ΡΠ΅ΡΠ΅Π· LINQ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ Π²ΡΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΡΠ½ΠΎΡΡΡΠΌΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌΠΈ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ: ΠΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΎΠ² Π΄Π°Ρ {(2011,2012),(2012,2013), ...}. ΠΡΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΎΠ² ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ² {(1,10), (10,20), ...} ΠΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ: 1) Π·Π°ΠΊΠ°Π· (Π΄Π°ΡΠ°) - Ρ Π·Π°ΠΊΠ°Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² 2) ΠΏΡΠΎΠ΄ΡΠΊΡ (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ, ΡΠ΅Π½Π°) - ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ΄ΡΠΊΡ Π½Π° ΠΎΠ΄ΠΈΠ½ Π·Π°ΠΊΠ°Π· 3) Π·Π°ΠΊΠ°Π·:ΠΏΡΠΎΠ΄ΡΠΊΡ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΏΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ°ΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° (ΡΠ½Π°ΡΡΠΆΠΈ), ΠΏΠΎΡΠΎΠΌ (Π²Π½ΡΡΡΠΈ) ΠΏΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ°ΠΌ Π΄Π°Ρ, ΠΏΠΎΡΡΠΈΡΠ°ΡΡ ΡΡΠ΅Π΄Π½ΡΡ ΡΠ΅Π½Ρ. ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΠΎ-ΡΠΎ ΡΠ°ΠΊΠΎΠ΅: ΡΠΏΠΈΡΠΎΠΊ<(ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ², ΡΠΏΠΈΡΠΎΠΊ<(ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π΄Π°Ρ, ΡΠΏΠΈΡΠΎΠΊ<ΠΏΡΠΎΠ΄ΡΠΊΡΡ>)>)> Π½Π° Π²ΡΡ
ΠΎΠ΄Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠ΅: ΡΠΏΠΈΡΠΎΠΊ<(ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ², ΡΠΏΠΈΡΠΎΠΊ<(ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π΄Π°Ρ, ΡΡΠ΅Π΄Π½ΡΡ ΡΠ΅Π½Π°)>)> Π Π²ΠΎΡ 2 ΠΏΡΡΠΈ: Π½Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΠΎΡΡΡ ΡΠ°ΡΡΡ Π½Π° LINQ, Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ±Π΅ ΡΠ°ΡΡΠΈ Π½Π° SQL. ΠΠ΅ΡΠ²Π°Ρ ΡΠ°ΡΡΡ Π²ΡΠΎΠ΄Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΡΠΈΠ½Π½Π°Ρ, ΡΠ΅ΠΌ ΡΠ»ΠΎΠΆΠ½Π°Ρ, ΠΈ ΠΎΠ½Π° Π½Π΅ Π±ΠΎΠ»ΡΡΠ°Ρ.