рдпрд╣ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ
рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!
рдореИрдВ StubDb рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ - рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдЖрд╕рд╛рди рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЗ рддреЗрдЬреА рд╕реЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рдпрд╣ рдЖрдкрдХреЛ рд╕реНрдореГрддрд┐ / рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдбреЛрдореЗрди рдореЙрдбрд▓ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рди рдХрд┐ рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ред рд╕реНрдЯрдмрдбрдм рдиреЗ рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд╣рд▓реЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрд▓рдЧ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Data Persistence Layer рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рдореЗрд╣рдирдд рд▓рдЧрддреА рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкрд░реЗрд╢рд╛рдиреА рднрд░рд╛ рд╣реЛрддрд╛ рд╣реИ: рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рд▓реЗрдХрд░ рдкреНрд░рд╢реНрди рд▓рд┐рдЦрдиреЗ рддрдХред рдкрд╣рд▓реЗ, рдЬрдмрдХрд┐ ORM рдЕрднреА рддрдХ рдЗрддрдиреЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рдереЗ, рд▓реЗрдХрд┐рди рдиреАрд░рд╕ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрддрд╛ рдерд╛ред рдУрдЖрд░рдПрдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде, рдХрдо рд╕рдордп рд╕реАрдзреЗ рдПрд╕рдХреНрдпреВрдПрд▓ рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдУрдЖрд░рдПрдо рдврд╛рдВрдЪреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ: рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрдирдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рджрд░реНрдж рд░рд╣рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЪреМрдЦрдЯреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЕрдХреНрд╕рд░ рдШрдмрд░рд╛рд╣рдЯ рдФрд░ рд╡реЗрд╢реНрдпрд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рд╕рдордп StackOverflow рдкрд░ ASP.NET MVC рдореЗрдВ 77,852 рдореБрджреНрджреЗ рд╣реИрдВ, рдФрд░ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ 33,276, рд▓реЗрдХрд┐рди рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдк рд╕реЗ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдИрдПрдл рдХреЛ рдЪреБрдкрдЪрд╛рдк рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдмреЗрд╢рдХ, рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рд▓реЗрдХрд┐рди рдЬрдм рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рдирдИ рд╕реБрд╡рд┐рдзрд╛ рдбрд┐рдЬрд╛рдЗрди рдФрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдпрд╣ рдХрд╛рдлреА рд╣реИ: рдПрдХ рдбреЛрдореЗрди рдореЙрдбрд▓ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдореЙрдбрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд░реНрдЧреЛрдВ (рдПрдХ рд╕реЗ рдПрдХ, рдХрдИ рдХрдИ) рдХреЗ рдмреАрдЪ рдХреЗ рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рд╕рд╛рде, рдПрдХ рдбреЛрдореЗрди рдореЙрдбрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред StubDb рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЗрд╕ рдиреНрдпреВрдирддрдо рд╕реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ StubDb рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ ORM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА рдПрдХ рдбреЛрдореЗрди рдореЙрдбрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрд╛рдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рд╣реИ?
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред SutbDb рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдгрдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдЖрдк рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╕реНрдЯрдмреНрд╕ рдкрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдм рдореЛрдб - 3 рдХреНрд▓рд┐рдХ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВрдореБрдЭреЗ рдЙрджреНрдпрдо-рд╕реНрддрд░ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдХрд╛рдлреА рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореЗрд░реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдерд╛ рдХрд┐ рдЦрд░рд╛рдм рдФрд░ рд╡рд┐рд╡рд┐рдз рд░реВрдк рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдвреЗрд░ рдЬреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреИрд╕рд╛ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдХрд┐рд╕реА рднреА рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рднреА, рдЖрдкрдХреЛ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдорд╢реАрди рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрджрд░реНрд╢ рджреБрдирд┐рдпрд╛ рдореЗрдВ рднрдВрдбрд╛рд░ рд╕реЗ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рдХреЛ рдбреЗрд╡рд▓рдкрд░ рдореЛрдб рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рддреБрд░рдВрдд рд╢реБрд░реВ рд╣реЛрдЧреАред
рд╕реНрдЯрдмрдбрдм рдХреЗ рд╕рд╛рде, рдпрд╣ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреАрдПрдПрд▓ рдХреЗ рд╕рд╛рде рд╕реНрдЯрдм рдбреАрдПрдПрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕, рд╡реЗрдм рд╕реЗрд╡рд╛рдУрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛред рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдФрд░ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдХрдХреНрд╖рд╛рдУрдВ (рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА) рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕реНрдЯрдмреНрд╕ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╕реНрдЯрдмреНрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдХреНрд╕рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХрднреА-рдХрднреА рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ (рдЗрдВрдЯрд░рдиреЗрдЯ рдХрдиреЗрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ, рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ), рдЗрд╕ рд╕рдордп рдЖрдк рд╕реНрдЯрдмреНрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рдЗрд╕ рдореЛрдб рдореЗрдВ StubDb рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд╕рдордп рджрд┐рдЦрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХрд┐рддрдирд╛ рд▓рд╛рдЧреВ рд╣реИред
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕реАрдЦрддреЗ рд╕рдордпрдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╕рд┐рдЦрд╛рдиреЗ рдореЗрдВ рд╕реНрдЯрдмрдбрдм рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдПрдирд╛рд▓реЙрдЧред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рд╕рдЪрд┐рддреНрд░ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдзрд╛рд░рдг рдбреЛрдореЗрди рдореЙрдбрд▓ (DM) рд▓реЗрдВ:
public class Student { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public virtual List<Enrollment> Enrollments { get; set; } } public class Course { public int Id { get; set; } public string Title { get; set; } public int Credits { get; set; } public virtual Department Department { get; set; } public virtual List<Enrollment> Enrollments { get; set; } } public class Department { public int Id { get; set; } public string Name { get; set; } public decimal Budget { get; set; } public virtual List<Course> Courses { get; set; } } public class Enrollment { public int Id { get; set; } public Grade Grade { get; set; } public Student Student { get; set; } public Course Course { get; set; } } public enum Grade { NoGrade, A, B, C, D, F }
рдЗрд╕ рдбреЛрдореЗрди рдореЙрдбрд▓ рдореЗрдВ рдЫрд╛рддреНрд░ рдФрд░ рдкрд╛рдареНрдпрдХреНрд░рдо рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рднрд╛рдЧ (рд╡рд┐рднрд╛рдЧ) рд╣реИ, рдПрдХ рдЫрд╛рддреНрд░ рдХреЛ рдирд╛рдорд╛рдВрдХрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдИ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдирд╛рдорд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрджрд┐ рдЫрд╛рддреНрд░ рдиреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП рдЧреНрд░реЗрдб рдирд╛рдорд╛рдВрдХрди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдбреАрдПрдо рдХреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рдВрджрд░реНрдн рд╡рд░реНрдЧ рдмрдирд╛рдПрдВрдЧреЗред рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рдорд╛рди, рдЖрдкрдХреЛ рдЖрдзрд╛рд░ StubContext рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд╡реЗрд░реАрдЬрд╝ рдмрдирд╛рдПрдВрдЧреЗ, рд╣рдо EF рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛, рдлрд┐рд░ рд╕реЗ StubSet рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рдмрдирд╛рддреЗ рд╣реИрдВред
рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:
public class SampleStubContext: StubContext { public StubSet<Course> Courses { get; set; } public StubSet<Department> Departments { get; set; } public StubSet<Enrollment> Enrollments { get; set; } public StubSet<Student> Students { get; set; } }
рдпреЗ рд╕рднреА рдиреМрдХрд░реА рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред
рдЕрдм рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
var context = new SampleStubContext(); var departmentIt = new Department() {Budget = 40000, Name = "IT"}; var departmentMath = new Department() {Budget = 14000, Name = "Math"}; context.Departments.Add(departmentIt); context.Departments.Add(departmentMath);
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧрдгрд┐рдд рдФрд░ рдЧрдгрд┐рдд рдореЗрдВ 2 рд╡рд┐рднрд╛рдЧ рд╣реИрдВ, IT рдмреАрдЬрдЧрдгрд┐рдд рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдЧрдгрд┐рдд рдмреАрдЬрдЧрдгрд┐рдд рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВред рджреЛ рдЫрд╛рддреНрд░ рд╣реИрдВ, рдПрд▓реЗрдХреНрд╕ рдФрд░ рдкреЗрд░, рдПрд▓реЗрдХреНрд╕ рдХреЛ рдмреАрдЬрдЧрдгрд┐рдд рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рдердо, рдкреНрд░рддрд┐ - рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирд╛рдорд╛рдВрдХрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рдЖрдЗрдП рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреБрдЫ рдбреЗрдЯрд╛ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦреЗрдВ:
var departmentItFromContext = context.Departments.Query().Single(x => x.Name == "IT"); var coursesForIt = departmentItFromContext.Courses;
рд╕рдВрджрд░реНрдн рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЛрдореЗрди рдореЙрдбрд▓ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдХреЗ, рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЖрдИрдЯреА рд╡рд┐рднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рдареНрдпрдХреНрд░рдо - рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдПрд▓реНрдЧреЛрд░рд┐рджрдо; рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо - рдПрд▓реЗрдХреНрд╕ рдФрд░ рдкреНрд░рддрд┐ рдкрд░ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдбреЗрдЯрд╛ рдмрджрд▓реЗрдВ:
var alexAlgorithmsEnrollment = context.Enrollments.Query() .FirstOrDefault(x => x.Student.FirstName == "Alex" && x.Course.Title == "Algorithms"); context.Enrollments.Remove(alexAlgorithmsEnrollment); var courseAlgorithmsFromContextUpdated = context.Courses.Query(2).First(x => x.Title.Contains("Algorithms")); var studentsForAlgorithmsUpdated = courseAlgorithmsFromContextUpdated.Enrollments.Select(x => x.Student);
рд╣рдордиреЗ рдПрд▓реЗрдХреНрд╕ рдХреЛ рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛, рдЙрд╕рдХреЗ рдмрд╛рдж рдПрд▓реЗрдХреНрд╕ рдЕрдм рдЕрд▓реНрдЧреЛрд░рд┐рджреНрдо рдХреА рд╕рджрд╕реНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдЫрд╛рддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рд╣реИред рд╣рдордиреЗ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЧ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдкрд╛рдареНрдпрдХреНрд░рдо рдЙрдирдХреЗ рдирдП рд╡рд┐рднрд╛рдЧ рдХреЗ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред
рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг
рдЧрд┐рдЯрд╣рдм рдкрд░рд┐рдпреЛрдЬрдирд╛:
github.com/yegor-sytnyk/StubDbрдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП, StubDb NuGet рдкреИрдХреЗрдЬ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рд▓реЗрдЦ рд╕реЗ рдбреЛрдореЗрди рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрд╛рда рдпрд╣рд╛рдВ рд╣реИ:
gist.github.com/yegor-sytnyk/c3f9ba12f5bb6b188286 ред
MyUniversity:
github.com/yegor-sytnyk/MyUniversity ред ContosoUniversity ASP.NET MVC рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдПрдХ рдбреЛрдореЗрди рдореЙрдбрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ред рд╕реНрдЯрдмрд▓рдб рдкрд░ рдбреАрдПрдПрд▓ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рд╕реНрдЯрдмрдбрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рд╕реБрдЭрд╛рд╡реЛрдВ рдкрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред
DM рдбреЗрдЯрд╛ рдПрдВрдЯрд┐рдЯреАрдЬ рдФрд░ рдХрдиреЗрдХреНрд╢рдВрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдбреАрдПрдо (рдЫрд╛рддреНрд░, рдкрд╛рдареНрдпрдХреНрд░рдо, рдЖрджрд┐) рд╕реЗ рдЗрдХрд╛рдЗрдпрд╛рдВ рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЗрдХрд╛рдИ рдХреЗ рд╕рднреА рдореМрдЬреВрджрд╛ рдореВрд▓реНрдпреЛрдВ рдФрд░ рдЗрдХрд╛рдИ рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЗрдХрд╛рдИ рдврд╛рдВрдЪреЗ рдореЗрдВ, рдПрдХ рдЗрдХрд╛рдИ рдХреБрдВрдЬреА рдХреЛ рдпрд╛ рддреЛ Id рдпрд╛ {ClassName} Id рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП StudentId, рдЫрд╛рддреНрд░ рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдПред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Id рдХрд╛ рдкреНрд░рдХрд╛рд░ Int рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рдВрдмрдВрдз рдХреЗ рдкреНрд░рдХрд╛рд░ (рдПрдХ рд╕реЗ рдПрдХ, рдХрдИ рд╕реЗ рдХрдИ, рдпрд╛ рдПрдХ рд╕реЗ рдХрдИ) рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХрд┐рд╕реА рдЫрд╛рддреНрд░ рдХреЗ рдкрд╛рд╕ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рджреА рдЧрдИ рд╣реИ, рддреЛ рдЬреЛрдбрд╝реЗ рдЧрдП рд▓рд┐рдВрдХ {рдЫрд╛рддреНрд░ (рдЖрдИрдбреА) -рдХреЛрд░реНрд╕ (рдЖрдИрдбреА)} рдХреЛ рдЫрд╛рддреНрд░ рдФрд░ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рд╕рдВрдЧрдд рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдореЙрдбрд▓рд┐рдВрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдПрдХ рд╕реЗ рдПрдХ, рдПрдХ рд╕реЗ рдХрдИ, рдХрдИ рд╕реЗ рдХрдИред рдПрдХ-рд╕реЗ-рдПрдХ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдХрд▓ рд╕рдВрдЪрд╛рд░ рддрддреНрд╡ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд▓рд┐рдВрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
рд╕рдВрд╕реНрдерд╛рдУрдВ рдФрд░ рд░рд┐рд╢реНрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдбреАрдПрдо рдХреЗ рд╕рдВрджрд░реНрдн рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рдкрд░, StubSet рдХреЗ рдРрдб / рдЕрдкрдбреЗрдЯ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╕рдВрджрд░реНрдн рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдирд┐рдХрд╛рдп / рдХрдиреЗрдХреНрд╢рди рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХреНрд╡реЗрд░реА рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рддреЗ рд╕рдордп, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреБрдгреЛрдВ рдХреЛ рдореМрдЬреВрджрд╛ рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рд╡рд┐рднрд╛рдЧ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИ, рддреЛ рдХреНрд╡реЗрд░реА рдкрджреНрдзрддрд┐ рд▓рд┐рдВрдХ рдХреА рдЦреЛрдЬ рдХрд░реЗрдЧреА - рдХреНрдпрд╛ рдХреЛрдИ рдХрдиреЗрдХреНрд╢рди рд╣реИ рдЬреЛ рдЗрд╕ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЛ рдХреБрдЫ рд╡рд┐рднрд╛рдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рдХреЛрдИ рд╕рдВрдмрдВрдз рд╣реИ, рддреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рднрд╛рдЧ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрдиреНрдпрдерд╛ рд╡рд┐рднрд╛рдЧ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рд╢реВрдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдПрдХ рд╣реА рд╕рд┐рджреНрдзрд╛рдВрдд рджреНрд╡рд╛рд░рд╛, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЫрд╛рддреНрд░ рдирд╛рдорд╛рдВрдХрди рд╕реВрдЪреАред
рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдирд╛ рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреГрд╖реНрда рдкрд░ рд╕реНрд░реЛрдд рдХреЛрдб рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред