C # рдореЗрдВ рд▓реИрдореНрдмреНрдбрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рдВрд╕ рдХреА рд╕реВрдХреНрд╖реНрдорддрд╛рдПрдБ

рдореИрдВрдиреЗ рд▓реЗрдЦ рдореЗрдВ рдХреНрдпрд╛ рд▓рд┐рдЦрд╛ рд╣реИ, рдореИрдВрдиреЗ рд▓рдЧрднрдЧ 10 рдШрдВрдЯреЗ рдкрдХрдбрд╝реЗ, рдпрд╣ 10 рдШрдВрдЯреЗ рдХрд╛ рдирд┐рд░рдВрддрд░ рдбрд┐рдмрдЧ рдерд╛ рдЬреЛ рдХреЛрдб рдХреЗ рдХрд╛рдордХрд╛рдЬреА рдФрд░ рдЧреИрд░-рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЪрд░рдг-рджрд░-рдЪрд░рдг рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╣реЛ рдЧрдпрд╛, рдпрд╣ рднреА рдирд╣реАрдВ рдХрд┐, рдХреЛрдб рдХреА рдХрд╛рдордХрд╛рдЬреА рдФрд░ рдЧреИрд░-рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдбрд┐рдмрдЧ рд╡рд┐рдВрдбреЛ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛


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


рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рд╣рд░рд╛ рд╣реЛрдЧрд╛ (EF рдРрдб-рдЗрди рд╕рдХреНрд╖рдо рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ SQL рдореЗрдВ рдХреНрд╡реЗрд░реА рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред



  • рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, PupilName рдлрд╝реАрд▓реНрдб рдХреА рдореИрдкрд┐рдВрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рд╡рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИред рдХреНрд╡реЗрд░реА рдкреНрд░рджрд╛рддрд╛ SQL ORDER рджреНрд╡рд╛рд░рд╛ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PupilName рдЧреБрдг рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  • рджреВрд╕рд░реЗ, рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдЗрд╕ рдореИрдкрд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдИрдПрдл рд╢рдкрде рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдХрд╕рдо рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ, рдпрд╣ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ - LINQ to Object , рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ):




рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреНрд╡реЗрд░реА рдкреНрд░рджрд╛рддрд╛ рдЙрд╕ рдЗрдХрд╛рдИ рдХреА рд╕рдВрдкрддреНрддрд┐ (рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ) рдХреЛ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдкрд┐рдВрдЧ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдкреНрд░рджрд╛рддрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдЧрд╛, рдПрдХ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рднреЗрдЬреЗрдЧрд╛, рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдбрд┐рд╕реЗрд░реНрдмрд▓рд╛рдЗрдЬ рдХрд░реЗрдЧрд╛ред


рдХрднреА-рдХрднреА рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдЕрднрд┐рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рдХреБрдЫ рдЗрд╕реА рддрд░рд╣:



рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ, рдпрд╣ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд▓рд┐рдВрдХ рдХрдИ рд╕рдорд╛рди рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:



рд╣рдо рд▓реИрдореНрдмрдбрд╛ рд╕реНрдЯреЗрдк рдмрд╛рдп рд╕реНрдЯреЗрдк рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ, рдкрд╣рд▓реЗ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░, рдПрдХ рдкреНрд░реЙрдкрд░реНрдЯреА, рдФрд░ рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдЧреЛрдВрдж рдХрд░рддреЗ рд╣реИрдВред
рдХрд┐рд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╣рд░рд╛ рд╣реЛрдЧрд╛ (рдкреНрд░рджрд╛рддрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдЧрд╛)?


рдкрддрд╛ рдирд╣реАрдВ? рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рдореБрдЭреЗ рдпрд╛ рддреЛ рдкрддрд╛ рдирд╣реАрдВ рдерд╛, рдФрд░ рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ рд╕рдордЭрдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 10 рдШрдВрдЯреЗ рд▓рдЧреЗред
рдпрд╣рд╛рдБ рдПрдХ рд╕рдВрдХреЗрдд рд╣реИ, рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛:



PupilDtoBase рд╕реЗ PupilDto рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ


рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░реЙрдкрд░реНрдЯреАрдЗрдиреНрдлреЛ рдХреЛ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗ рд▓реЗрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдЕрдЧрд░ рдкреБрдкрд┐рд▓рдиреЗрдо рдкреНрд░реЙрдкрд░реНрдЯреА рдЦреБрдж рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдХреА рд╣реИ, рддреЛ C # рд▓реИрдореНрдмреНрдбрд╛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ EF рдЙрдиреНрд╣реЗрдВ рдкрд░рд╕реЗрдВрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╕реНрдЯреИрдВрдбрд░реНрдбреНрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реИ


рдкреНрд░рдорд╛рдг

рдпрджрд┐ рдЖрдк рдСрд░реНрдбрд░рдмрд╛рдп рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рд▓рдВрдмреЛрджрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рдбрд┐рдмрдЧрд░ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:



рдФрд░ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕ рддрд░рд╣:



AutoMapper рдФрд░ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ


рдпрджрд┐ рдЖрдк рдХреЛрдб рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕рдВрднрд╡рддрдГ рдбреАрдЯреАрдУ рдФрд░ рдЗрдирдХреНрд░реЗрдбрдмреЗрд╕ рдХреЗ рдЙрддреНрддрд░рд╛рдзрд┐рдХрд╛рд░ рдореЗрдВ рдЖрдП :



рдПрдХ рдФрд░ рднреА рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рд╕реНрдерд┐рддрд┐ рд╣реИ:



рдФрд░ рдпрд╣ рдкрд░реАрдХреНрд╖рдг рд╣рд░рд╛ рд╣реЛрдЧрд╛:



рдФрд░ рдмрд╛рдд рд╡рд╣реА рд╣реИ, рдлрд┐рд░ рд╕реЗ PropertyInfo рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рдкреНрд░рдорд╛рдг

рдПрдЬ рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ ReflectedType рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, IPupilDto , C # рдПрдХ рд▓реИрдореНрдмреНрдбрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдЬ рдкреНрд░реЙрдкрд░реНрдЯреА PupilDto рдХреНрд▓рд╛рд╕ рдХреА рдПрдХ рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реИ, рди рдХрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдСрдЯреЛрдореЛрдЯрд┐рд╡рд░ рдПрдХ рд▓реИрдореНрдмреНрдбрд╛ рдмрдирд╛рддрд╛ рд╣реИ:



рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВ? рдпрджрд┐ рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рдпрдмреЗрд╕ рдСрдЯреЛрдореИрдкрд░ рд╣рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдореЗрдореЛрд░реА рдореЗрдВ рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рддреЛ рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛), рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐ рдореЗрдВ рдореИрдкрд┐рдВрдЧ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛:



рдлрд┐рд░ рдСрдЯреЛ-рдореИрдкрд░ рдЦреБрдж рд╣реА рдирд╛рдо рд╕реЗ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рдвреВрдВрдвреЗрдЧрд╛, "рд╕рд╣реА" рд▓рдВрдмреЛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

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


All Articles