рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд╛рдареНрдпрдХреНрд░рдоред ASP.NET MVC рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдХрд╛рдИ рдврд╛рдВрдЪрд╛ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдмрдирд╛рдирд╛

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдЯреЛрд╕реЛ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ ASP.NET MVC рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдЫрд╛рддреНрд░реЛрдВ рдХреЛ рд▓реЗрдиреЗ, рдкрд╛рдареНрдпрдХреНрд░рдо рдмрдирд╛рдиреЗ рдФрд░ рд╢рд┐рдХреНрд╖рдХреЛрдВ рдХреЛ рдирд┐рдпреБрдХреНрдд рдХрд░рдиреЗ рдЬреИрд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреАред

рдпреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЖрдкрдХреЛ рдХреЙрдиреНрдЯреЛрд╕реЛ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЧреБрдЬрд░реЗрдВрдЧреЗред рдЖрдк рддреИрдпрд╛рд░ рдЖрд╡реЗрджрди рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рджрд┐рдП рдЧрдП рдЕрдиреБрдХреНрд░рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг C # рдореЗрдВ рджрд┐рдП рдЧрдП рд╣реИрдВ, рдХреЛрдб рдЙрджрд╛рд╣рд░рдг C # рдФрд░ VB рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕реЗ рдкреНрд░рд╢реНрди рд╣реИрдВ рдЬреЛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╕рд╛рдордЧреНрд░реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдирдХреЗ ASP.NET рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдлреЛрд░рдо рдпрд╛ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ LINQ рд╕реЗ рдПрдВрдЯрд┐рдЯреА рдлреЛрд░рдо рд╕реЗ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП Visual Studio рдореЗрдВ ASP.NET MVC рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЬреНрдЮрд╛рди рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдиреНрдпрдерд╛ ASP.NET MVC рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИред рдпрджрд┐ рдЖрдк ASP.NET рд╡реЗрдм рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХрдВрдЯреАрдиреНрдпреВ рдХрд░рдирд╛ рджреЗрдЦреЗрдВ ред

рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдирд┐рдореНрди рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ:

Contoso рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп


рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╣реИред

clip_image001

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЫрд╛рддреНрд░реЛрдВ, рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдФрд░ рд╢рд┐рдХреНрд╖рдХреЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдХреЛ рджреЗрдЦ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░ рдкрд╛рдПрдВрдЧреЗред рдиреАрдЪреЗ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдХреЗ рдХреБрдЫ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯред

clip_image002

clip_image003

clip_image004

рдпреВрдЖрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╢реИрд▓реА рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдореБрджреНрджреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрдХрд╛рдИ рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг


рдЖрд░реЗрдЦ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрдХрд╛рдИ рдврд╛рдВрдЪреЗ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ: рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдердо , рдореЙрдбрд▓ рдкреНрд░рдердо , рдФрд░ рдХреЛрдб рдкреНрд░рдердоред

clip_image005

рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд╣рд▓реЗ

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

рдореЙрдбрд▓ рдкрд╣рд▓реЗ

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

рдкрд╣рд▓реЗ рдХреЛрдб

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

рдХреЛрдб рдлрд░реНрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдПрдкреАрдЖрдИ DbContext рдХреНрд▓рд╛рд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд░реНрд╕реНрдЯ рдФрд░ рдореЙрдбрд▓ рдлрд░реНрд╕реНрдЯ рдПрдкреНрд░реЛрдЪ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рднреА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреЗрдЦреЗрдВ рдХреЛрдб рдкрд╣рд▓реЗ рдХреЛрдб рдХрдм рдирд╣реАрдВ рд╣реИ? рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдмреНрд▓реЙрдЧред

POCO (рд╕рд╛рджрд╛ рдкреБрд░рд╛рдиреА рд╕реАрдПрд▓рдЖрд░ рд╡рд╕реНрддреБрдПрдБ)


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд░реНрд╕реНрдЯ рдФрд░ рдореЙрдбрд▓ рдлрд░реНрд╕реНрдЯ рдПрдкреНрд░реЛрдЪ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреНрд▓рд╛рд╕реЗрд╕ EntityObject рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА , рдЬреЛ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпреЗ рд╡рд░реНрдЧ рдЕрдЬреНрдЮрд╛рдирддрд╛ рд╕реЗ рдЧреНрд░рд╕реНрдд рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣ рдбреЛрдореЗрди-рд╕рдВрдЪрд╛рд▓рд┐рдд рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рд╢рд░реНрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд╕рднреА рд╡рд┐рдХрд╛рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг POCO ( рд╕рд╛рджреЗ рдкреБрд░рд╛рдиреА рд╕реАрдПрд▓рдЖрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ ) рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ EntityObject рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╡реЗ рджреГрдврд╝рддрд╛-рдЕрдЬреНрдЮрд╛рди рд╣реИрдВред

MVC рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдирд╛


Visual Studio рдЦреЛрд▓реЗрдВ рдФрд░ ASP.NET MVC 3 рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ "ContosoUniversity" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ:

clip_image006

рдиреНрдпреВ рдПрдПрд╕рдкреА рдореЗрдВред NET MVC 3 рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рд░реЗрдЬрд╝рд░ рд╡реНрдпреВ рдЗрдВрдЬрди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдПрдХ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреЗрдХрдмреЙрдХреНрд╕ рдЕрдирдЪреЗрдХ рдХрд░реЗрдВ рдФрд░ рдареАрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

clip_image007

рд╢реИрд▓реА рдЕрдиреБрдХреВрд▓рди

рдХреБрдЫ рдорд╛рдореВрд▓реА рд╕реБрдзрд╛рд░ рд╕рд╛рдЗрдЯ рдХреЗ рдореЗрдиреВ, рдЖрдЗрдЯрдо рд▓реЗрдЖрдЙрдЯ рдФрд░ рд╣реЛрдордкреЗрдЬ рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗред

рдХрдВрдЯреЛрд╕реЛ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдиреВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреГрд╢реНрдп \ рд╕рд╛рдЭрд╛ \ _ рд▓реЗрдЖрдЙрдЯ рдореЗрдВред cshtml рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ h 1 рдореЗрдВ рдкрд╛рда рдФрд░ рдореЗрдиреВ рдореЗрдВ рд▓рд┐рдВрдХ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ:

 <!DOCTYPE html> <html> <head> <title>@ViewBag.Title</title> <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" /> <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> </head> <body> <div class="page"> <div id="header"> <div id="title"> <h1>Contoso University</h1> </div> <div id="logindisplay"> @Html.Partial("_LogOnPartial") </div> <div id="menucontainer"> <ul id="menu"> <li>@Html.ActionLink("Home", "Index", "Home")</li> <li>@Html.ActionLink("About", "About", "Home")</li> <li>@Html.ActionLink("Students", "Index", "Student")</li> <li>@Html.ActionLink("Courses", "Index", "Course")</li> <li>@Html.ActionLink("Instructors", "Index", "Instructor")</li> <li>@Html.ActionLink("Departments", "Index", "Department")</li> </ul> </div> </div> <div id="main"> @RenderBody() </div> <div id="footer"> </div> </div> </body> </html> 

Views \ Home \ Index.cshtml рдореЗрдВ, h2 рдЯреИрдЧ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╣рдЯрд╛ рджреЗрдВред

рдирд┐рдпрдВрддреНрд░рдХреЛрдВ \ HomeController.cs рдореЗрдВ, "ASP.NET MVC рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!" "рдХреЙрдиреНрдЯреЛрд╕реЛ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!"

рд╕рд╛рдордЧреНрд░реА \ рд╕рд╛рдЗрдЯ рдореЗрдВред рд╕реАрдПрд╕рдПрд╕ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдиреВ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ:

 #main { clear: both; padding: 30px 30px 15px 30px; background-color: #fff; border-radius: 4px 0 0 0; -webkit-border-radius: 4px 0 0 0; -moz-border-radius: 4px 0 0 0; } 

 nav, #menucontainer { margin-top: 40px; clear: both; float: left; } 

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪрд▓рд╛рдПрдВред

clip_image001 [1]

рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдмрдирд╛рдирд╛


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

clip_image008

Student рдФрд░ Enrollment рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░ Course рдФрд░ Enrollment рдмреАрдЪ рдПрдХ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдПрдХ рдЫрд╛рддреНрд░ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдЫрд╛рддреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЖрдк рдЗрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдПрдВрдЧреЗред

рдиреЛрдЯ: рдЗрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрдХрд▓рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред

рд╕рд╛рд░ рдЫрд╛рддреНрд░

clip_image009

рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдЫрд╛рддреНрд░ рдмрдирд╛рдПрдБ ред рд╕реАрдПрд╕ рдФрд░ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ:

 using System; using System.Collections.Generic; namespace ContosoUniversity.Models { public class Student { public int StudentID { get; set; } public string LastName { get; set; } public string FirstMidName { get; set; } public DateTime EnrollmentDate { get; set; } public virtual ICollection<Enrollment> Enrollments { get; set; } } } 

StudentID рд╕рдВрдкрддреНрддрд┐ рд╕рдВрдмрдВрдзрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╣реЛрдЧреАред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ ID рдпрд╛ рдХреНрд▓рд╛рд╕рдирд╛рдо ID рд╕рд╛рде рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред

Enrollments рд╕рдВрдкрддреНрддрд┐ - рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ ред рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреБрдгреЛрдВ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреНрдп рдЗрдХрд╛рдЗрдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, Enrollments рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рд╡рд░реНрддрдорд╛рди Student рдЗрдХрд╛рдИ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА Enrollment рд╕рдВрд╕реНрдерд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЕрдЧрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд Student рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рджреЛ Enrollment рд░рд┐рдХреЙрд░реНрдб ( StudentID рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА StudentID рдореЗрдВ рдЫрд╛рддреНрд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдорд╛рди рд╡рд╛рд▓реЗ рд░рд┐рдХреЙрд░реНрдб) рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдмрдВрдз рд╣реИ, рддреЛ рдЗрд╕ Enrollments рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рджреЛ Enrollment рд╕рдВрд╕реНрдерд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреАред

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

рдЗрдХрд╛рдИ рдирд╛рдорд╛рдВрдХрди

clip_image010

рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдПрдХ рдирд╛рдорд╛рдВрдХрди рдмрдирд╛рдПрдБ ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд╕реАрдПрд╕ :

 using System; using System.Collections.Generic; namespace ContosoUniversity.Models { public class Enrollment { public int EnrollmentID { get; set; } public int CourseID { get; set; } public int StudentID { get; set; } public decimal? Grade { get; set; } public virtual Course Course { get; set; } public virtual Student Student { get; set; } } } 

decimal рдмрд╛рдж рдПрдХ рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ Grade рд╕рдВрдкрддреНрддрд┐ рдЕрд╢рдХреНрдд рд╣реИред рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХреА рдЧрдИ рд░реЗрдЯрд┐рдВрдЧ рд╢реВрдиреНрдп рд░реЗрдЯрд┐рдВрдЧ рд╕реЗ рднрд┐рдиреНрди рд╣реИ - рд╢реВрдиреНрдп рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд░реЗрдЯрд┐рдВрдЧ рдЕрднреА рддрдХ рд╕реЗрдЯ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ, рдЬрдмрдХрд┐ 0 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдореВрд▓реНрдп рд╣реИред

StudentID рд╕рдВрдкрддреНрддрд┐ рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рд╣реИ, рдФрд░ рдЗрд╕реА рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ Student ред рдПрдХ Enrollment рдЗрдХрд╛рдИ рдПрдХ Student рдЗрдХрд╛рдИ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ ( Student рд╡рд┐рдкрд░реАрдд) рдХреА рдХреЗрд╡рд▓ рдПрдХ рдЗрдХрд╛рдИ рд╣реЛ рд╕рдХрддреА рд╣реИред

CourseID рд╕рдВрдкрддреНрддрд┐ рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рд╣реИ, рдФрд░ рдЗрд╕реА рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ Course ред рдПрдХ Enrollment рдЗрдХрд╛рдИ рдПрдХ Course рдЗрдХрд╛рдИ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред

рд╕рд╛рд░ рдкрд╛рдареНрдпрдХреНрд░рдо

clip_image011

рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдПрдХ рдХреЛрд░реНрд╕ рдмрдирд╛рдПрдВ ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд╕реАрдПрд╕ :

 using System; using System.Collections.Generic; namespace ContosoUniversity.Models { public class Course { public int CourseID { get; set; } public string Title { get; set; } public int Credits { get; set; } public virtual ICollection<Enrollment> Enrollments { get; set; } } } 

Enrollments рд╕рдВрдкрддреНрддрд┐ - рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ред рдПрдХ Course рдЗрдХрд╛рдИ рдХреЛ рдЕрдирдВрдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рдЕрдирдВрдд рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрджрд░реНрдн рдмрдирд╛рдирд╛


рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдордиреНрд╡рдп рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрджрд░реНрдн рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдпрд╣ рд╡рд░реНрдЧ System рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ . Data . Entity . DbContext ред рдХреЛрдб рдореЗрдВ, рдЖрдк рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реА рдЗрдХрд╛рдЗрдпрд╛рдВ рд╣реИрдВ, рдФрд░ рдЖрдк рд╕реНрд╡рдпрдВ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рднреА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ, рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ SchoolContext рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ DAL рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдПрдХ рдирдпрд╛ SchoolContext рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдВ ред рд╕реАрдПрд╕ :

 using System; using System.Collections.Generic; using System.Data.Entity; using ContosoUniversity.Models; using System.Data.Entity.ModelConfiguration.Conventions; namespace ContosoUniversity.Models { public class SchoolContext : DbContext { public DbSet<Student> Students { get; set; } public DbSet<Enrollment> Enrollments { get; set; } public DbSet<Course> Courses { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); } } } 

рдХреЛрдб рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ DbSet рдЧреБрдг рдмрдирд╛рддрд╛ рд╣реИред рдЗрдХрд╛рдИ рд╕рдВрд░рдЪрдирд╛ рд╢рдмреНрджрд╛рд╡рд▓реА рдореЗрдВ, рдПрдХ рдЗрдХрд╛рдИ рд╕реЗрдЯ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдЗрдХрд╛рдИ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИред

OnModelCreating рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд╛рдо рдХреЛ рдмрд╣реБрд╡рдЪрди рд╕реЗ рдмрдЪрд╛рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ Students , Courses , Enrollments рдЬреИрд╕реЗ рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо рдорд┐рд▓рддреЗ рд╣реИрдВред рдЕрдиреНрдпрдерд╛, рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд╛рдо Student , Course , Enrollment ред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рдмрд╛рдд рдкрд░ рдмрд╣рд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд╛рдореЛрдВ рдХрд╛ рдмрд╣реБрд╡рдЪрди рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╣рдо рдПрдХ рд╣реА рдлреЙрд░реНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдХреЛрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

(рдпрд╣ рдХреНрд▓рд╛рд╕ рдиреЗрдорд╕реНрдкреЗрд╕ рдореЙрдбрд▓реНрд╕ рдореЗрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ, рдХреЛрдб рдлрд░реНрд╕реНрдЯ рдПрдкреНрд░реЛрдЪ рдореЗрдВ рдПрдХ рд╣реА рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдПрдВрдЯрд┐рдЯреА рдХреНрд▓рд╛рд╕реЗрд╕ рдФрд░ рд╕рдВрджрд░реНрдн рдвреВрдВрдврдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред)

рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░рд┐рднрд╛рд╖рд╛;


рдЖрдкрдХреЛ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ SQL рд╕рд░реНрд╡рд░ рдПрдХреНрд╕рдкреНрд░реЗрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдПрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдо SQL рд╕рд░реНрд╡рд░ рдХреЙрдореНрдкреИрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдЖрдкрдХреЛ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

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

 <add name="SchoolContext" connectionString="Data Source=|DataDirectory|School.sdf" providerName="System.Data.SqlServerCe.4.0"/> 

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн рд╡рд░реНрдЧ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ App_data рдФрд░ SQL рд╕рд░реНрд╡рд░ рдХреЙрдореНрдкреИрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд School.sdf рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╢реБрд░реБрдЖрдд


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

DAL рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдПрдХ рдирдпрд╛ SchoolInitializer рд╡рд░реНрдЧ рдмрдирд╛рдПрдБ ред рдЙрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕реАрдПрд╕ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рд╕реЗ рднрд░рд╛ рд╣реЛред

 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; using ContosoUniversity.Models; namespace ContosoUniversity.DAL { public class SchoolInitializer : DropCreateDatabaseIfModelChanges<SchoolContext> { protected override void Seed(SchoolContext context) { var students = new List<Student> { new Student { FirstMidName = "Carson", LastName = "Alexander", EnrollmentDate = DateTime.Parse("2005-09-01") }, new Student { FirstMidName = "Meredith", LastName = "Alonso", EnrollmentDate = DateTime.Parse("2002-09-01") }, new Student { FirstMidName = "Arturo", LastName = "Anand", EnrollmentDate = DateTime.Parse("2003-09-01") }, new Student { FirstMidName = "Gytis", LastName = "Barzdukas", EnrollmentDate = DateTime.Parse("2002-09-01") }, new Student { FirstMidName = "Yan", LastName = "Li", EnrollmentDate = DateTime.Parse("2002-09-01") }, new Student { FirstMidName = "Peggy", LastName = "Justice", EnrollmentDate = DateTime.Parse("2001-09-01") }, new Student { FirstMidName = "Laura", LastName = "Norman", EnrollmentDate = DateTime.Parse("2003-09-01") }, new Student { FirstMidName = "Nino", LastName = "Olivetto", EnrollmentDate = DateTime.Parse("2005-09-01") } }; students.ForEach(s => context.Students.Add(s)); context.SaveChanges(); var courses = new List<Course> { new Course { Title = "Chemistry", Credits = 3, }, new Course { Title = "Microeconomics", Credits = 3, }, new Course { Title = "Macroeconomics", Credits = 3, }, new Course { Title = "Calculus", Credits = 4, }, new Course { Title = "Trigonometry", Credits = 4, }, new Course { Title = "Composition", Credits = 3, }, new Course { Title = "Literature", Credits = 4, } }; courses.ForEach(s => context.Courses.Add(s)); context.SaveChanges(); var enrollments = new List<Enrollment> { new Enrollment { StudentID = 1, CourseID = 1, Grade = 1 }, new Enrollment { StudentID = 1, CourseID = 2, Grade = 3 }, new Enrollment { StudentID = 1, CourseID = 3, Grade = 1 }, new Enrollment { StudentID = 2, CourseID = 4, Grade = 2 }, new Enrollment { StudentID = 2, CourseID = 5, Grade = 4 }, new Enrollment { StudentID = 2, CourseID = 6, Grade = 4 }, new Enrollment { StudentID = 3, CourseID = 1 }, new Enrollment { StudentID = 4, CourseID = 1, }, new Enrollment { StudentID = 4, CourseID = 2, Grade = 4 }, new Enrollment { StudentID = 5, CourseID = 3, Grade = 3 }, new Enrollment { StudentID = 6, CourseID = 4 }, new Enrollment { StudentID = 7, CourseID = 5, Grade = 2 }, }; enrollments.ForEach(s => context.Enrollments.Add(s)); context.SaveChanges(); } } } 

Seed рд╡рд┐рдзрд┐ рдЗрдирдкреБрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдЖрдзрд╛рд░ рд╕рдВрджрд░реНрдн рд╡рд╕реНрддреБ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирдИ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЗрдХрд╛рдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП, рдХреЛрдб рдирдИ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдмрдВрдзрд┐рдд DbSet рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдмрдЪрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХреЗ рдмрд╛рдж SaveChanges рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдЕрдкрд╡рд╛рдж рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИред

рдЧреНрд▓реЛрдмрд▓ рдмрджрд▓реЗрдВ ред asaxред рд╕реАрдПрд╕ рддрд╛рдХрд┐ рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рд╣рдорд╛рд░рд╛ рдХреЛрдб рдХрд╣рд╛ рдЬрд╛рдП:

 using System.Data.Entity; using ContosoUniversity.Models; using ContosoUniversity.DAL; 

 Database.SetInitializer<SchoolContext>(new SchoolInitializer()); 

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣рд░ рдкрд╣рд▓реА рдкрд╣реБрдВрдЪ, рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рддреБрд▓рдирд╛ рдореЙрдбрд▓ ( SchoolContext рд╡рд░реНрдЧ) рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ, рдФрд░ SchoolContext рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рдкрд░ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдкреЗрдЬ рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рдбреЗрдЯрд╛ рдЕрдиреБрд░реЛрдз рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рд╢реБрд░реБрдЖрдд рдХрд░реЗрдЧреАред рдЖрдк рдПрдХ рдирдП рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦреЗрдВ рддрд╛рдХрд┐ рдореЙрдбрд▓ рдФрд░ рд╕рдВрджрд░реНрдн рдХрдХреНрд╖рд╛рдПрдВ MVC рдирд┐рдпрдВрддреНрд░рдХ рдордЪрд╛рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПрдВред

рдПрдХ рдЫрд╛рддреНрд░ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдирд╛


рдПрдХ Student рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рдзрд╛рди рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдХ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ , рдЬреЛрдбрд╝реЗрдВ , рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдПрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХреНрд╢рди рдФрд░ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ рдФрд░ рдРрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:

clip_image012

рдУрдкрди рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ \ рд╕реНрдЯреВрдбреЗрдВрдЯрдХрдВрдЯреНрд░реЛрд▓рд░ред рд╕реАрдПрд╕ , рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрджрд░реНрдн рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ:

  рдирд┐рдЬреА рд╕реНрдХреВрд▓рдХреЛрдЯреЗрдХреНрд╕реНрдЯ db = new SchoolContext (); 

Index рдХрд╛рд░реНрд░рд╡рд╛рдИ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрджрд░реНрдн рдЙрджрд╛рд╣рд░рдг рд╕реЗ Students рд╕рдВрдкрддреНрддрд┐ рд╕реЗ рдЫрд╛рддреНрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдПрдХрддреНрд░ рдХрд░рддреА рд╣реИ:

 public ViewResult Index() { return View(db.Students.ToList()); } 

рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ Student рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдордЪрд╛рди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╢реАрд░реНрд╖рдХреЛрдВ рдФрд░ рд╕реНрддрдВрдн рдЕрдиреБрдХреНрд░рдо рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреГрд╢реНрдп \ рдЫрд╛рддреНрд░ \ рд╕реВрдЪрдХрд╛рдВрдХ рдЦреЛрд▓реЗрдВ ред cshtml рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдб рдмрджрд▓реЗрдВ:

 @model IEnumerable<ContosoUniversity.Models.Student> @{ ViewBag.Title = "Students"; } <h2>Students</h2> <p> @Html.ActionLink("Create New", "Create") </p> <table> <tr> <th></th> <th>Last Name</th> <th>First Name</th> <th>Enrollment Date</th> </tr> @foreach (var item in Model) { <tr> <td> @Html.ActionLink("Edit", "Edit", new { id=item.StudentID }) | @Html.ActionLink("Details", "Details", new { id=item.StudentID }) | @Html.ActionLink("Delete", "Delete", new { id=item.StudentID }) </td> <td> @Html.DisplayFor(modelItem => item.LastName) </td> <td> @Html.DisplayFor(modelItem => item.FirstMidName) </td> <td> @Html.DisplayFor(modelItem => item.EnrollmentDate) </td> </tr> } </table> 

рд╕рд╛рдЗрдЯ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ, рдЫрд╛рддреНрд░ рдЯреИрдм рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

clip_image002[1]

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдВрдж рдХрд░реЗрдВред рд╕рдорд╛рдзрд╛рди рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ, ContosoUniversity рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ ред рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ рджрд┐рдЦрд╛рдПрдБ , рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ App_Data рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред

clip_image013

рд╕реНрдХреВрд▓ рдкрд░ рдбрдмрд▓ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред рд╕рд░реНрд╡рд░ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ , рдФрд░ рдЯреЗрдмрд▓реНрд╕ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП sdf ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк School.sdf рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ SQL Server рдХреЙрдореНрдкреИрдХреНрдЯ 4.0 рдХреЗ рд▓рд┐рдП Visual Studio 2010 SP1 рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ Visual Studio рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред

clip_image014

рдкреНрд░рддреНрдпреЗрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдЕрдкрдирд╛ рд╕реЗрдЯ рд╣реИ + рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╛рд▓рд┐рдХрд╛ред EdmMetadata рдЙрдкрдпреЛрдЧ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдореЙрдбрд▓ рдФрд░ рдЖрдзрд╛рд░ рд╕рд┐рдВрдХ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрддреЗ рд╣реИрдВред

SchoolInitializer рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛ рджрд┐рдЦрд╛рдПрдВ ред

clip_image015

рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

clip_image016

рд╕рдордЭреМрддрд╛


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

рдЖрдкрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЗрди рд╕рдордЭреМрддреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╣реБрд╡рдЪрди рдХреЛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдФрд░ рдЖрдк рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рд╕реЗ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдХреЙрдореНрдкреИрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ред рдЕрдЧрд▓рд╛, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕рд░рд▓ CRUD рдХреИрд╕реЗ рдмрдирд╛рдПрдВ (рдмрдирд╛рдПрдВ, рдкрдврд╝реЗрдВ, рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, рд╣рдЯрд╛рдПрдВ) рдСрдкрд░реЗрд╢рди рдХреИрд╕реЗ рдХрд░реЗрдВред

рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдмреЗрд▓реЛрдЯреЗрд░реНрд╕рдХреЛрд╡рд╕реНрдХреА ( рдПрд╣рд░рд┐рдорди ) рдХреЗ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдкреВрд░рд╛ рдРрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ | рдкреАрдбреАрдПрдл рдореИрдиреБрдЕрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

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


All Articles