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

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



рдпреВрдЖрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╢реИрд▓реА рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдореБрджреНрджреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрдХрд╛рдИ рдврд╛рдВрдЪреЗ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдЖрд░реЗрдЦ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЗрдХрд╛рдИ рдврд╛рдВрдЪреЗ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ:
рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рдердо ,
рдореЙрдбрд▓ рдкреНрд░рдердо , рдФрд░
рдХреЛрдб рдкреНрд░рдердоред
рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд╣рд▓реЗ
рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ (рдЬреИрд╕реЗ рдЯреЗрдмрд▓ рдФрд░ рдХреЙрд▓рдо) рдХреЗ рдЕрдиреБрд░реВрдк рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдПрдХ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ (рд╕реНрдЯреЛрд░ рд╕реНрдХреАрдорд╛), рдбреЗрдЯрд╛ рдореЙрдбрд▓ (
рд╡реИрдЪрд╛рд░рд┐рдХ рдореЙрдбрд▓ ) рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдореИрдкрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА XML рдореЗрдВ
.edmx рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
рд╕рдорд╛рд╣рд┐рдд рд╣реИред рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдЧреНрд░рд╛рдлрд┐рдХ рдбрд┐рдЬрд╛рдЗрдирд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк
.edmx рдХреЛ рджреЗрдЦ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдФрд░ рд╡реЗрдм рдлреЙрд░реНрдо рд╕рд╛рдордЧреНрд░реА рдореЗрдВ
рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рднрд╛рдЧреЛрдВ рдХреЗ
рд╕рд╛рде рдХрдВрдЯреАрдиреНрдпреВ рдХрд░рдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд░реНрд╕реНрдЯ рдПрдкреНрд░реЛрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдореЙрдбрд▓ рдкрд╣рд▓реЗ
рдпрджрд┐ рдХреЛрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдбрд┐рдЬрд╛рдЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореЙрдбрд▓ рдкрд░ рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдбрд┐рдЬрд╛рдЗрдирд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреАрдбреАрдПрд▓ (
рдбреЗрдЯрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рднрд╛рд╖рд╛ ) рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ,
.edmx рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЙрдбрд▓ рдФрд░ рдореИрдкрд┐рдВрдЧ
рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ 4 рдореЗрдВ
рдирдпрд╛ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЫреЛрдЯрд╛ рд╡рд┐рдХрд╛рд╕ рдЙрджрд╛рд╣рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред
рдкрд╣рд▓реЗ рдХреЛрдб
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдЕрдиреБрд░реВрдк рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдХреЛрдб рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрдХрд╛рдИ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
ред edmx рдЗрд╕реАрд▓рд┐рдП рдЖрдк рдХрднреА-рдХрднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ
рдХреЗрд╡рд▓ рдХреЛрдб рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд╛рдо рдХреЛрдб рдлрд░реНрд╕реНрдЯ рд╣реИред рд╕реНрдЯреЛрд░ рд╕реНрдХреАрдорд╛ рдФрд░ рд╡реИрдЪрд╛рд░рд┐рдХ рдореЙрдбрд▓ рдХреЗ рдмреАрдЪ рдЕрдкрдиреЗ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдП рдЧрдП рдореИрдкрд┐рдВрдЧ рдХреЛ рдХрдиреНрд╡реЗрдВрд╢рди рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдореИрдкрд┐рдВрдЧ рдПрдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрднреА рддрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЙрдбрд▓ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕реЗ рдмрдирд╛, рд╣рдЯрд╛ рдпрд╛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреЛрдб рдлрд░реНрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдПрдкреАрдЖрдИ
DbContext
рдХреНрд▓рд╛рд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд░реНрд╕реНрдЯ рдФрд░ рдореЙрдбрд▓ рдлрд░реНрд╕реНрдЯ рдПрдкреНрд░реЛрдЪ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рднреА рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреЗрдЦреЗрдВ
рдХреЛрдб рдкрд╣рд▓реЗ рдХреЛрдб рдХрдм рдирд╣реАрдВ рд╣реИ? рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдмреНрд▓реЙрдЧред
POCO (рд╕рд╛рджрд╛ рдкреБрд░рд╛рдиреА рд╕реАрдПрд▓рдЖрд░ рд╡рд╕реНрддреБрдПрдБ)
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдбреЗрдЯрд╛рдмреЗрд╕ рдлрд░реНрд╕реНрдЯ рдФрд░ рдореЙрдбрд▓ рдлрд░реНрд╕реНрдЯ рдПрдкреНрд░реЛрдЪ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреНрд▓рд╛рд╕реЗрд╕
EntityObject рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ
рдорд┐рд▓реА , рдЬреЛ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпреЗ рд╡рд░реНрдЧ
рдЕрдЬреНрдЮрд╛рдирддрд╛ рд╕реЗ рдЧреНрд░рд╕реНрдд рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЗрд╕ рддрд░рд╣
рдбреЛрдореЗрди-рд╕рдВрдЪрд╛рд▓рд┐рдд рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рд╢рд░реНрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд╕рднреА рд╡рд┐рдХрд╛рд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг POCO (
рд╕рд╛рджреЗ рдкреБрд░рд╛рдиреА рд╕реАрдПрд▓рдЖрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ ) рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐
EntityObject
рдХреА рд╡рд┐рд░рд╛рд╕рдд рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рд╡реЗ рджреГрдврд╝рддрд╛-рдЕрдЬреНрдЮрд╛рди рд╣реИрдВред
MVC рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдирд╛
Visual Studio рдЦреЛрд▓реЗрдВ рдФрд░
ASP.NET MVC 3 рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ "ContosoUniversity" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ:
рдиреНрдпреВ рдПрдПрд╕рдкреА рдореЗрдВред NET MVC 3 рдкреНрд░реЛрдЬреЗрдХреНрдЯ, рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░
рд░реЗрдЬрд╝рд░ рд╡реНрдпреВ рдЗрдВрдЬрди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ,
рдПрдХ рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреЗрдХрдмреЙрдХреНрд╕ рдЕрдирдЪреЗрдХ рдХрд░реЗрдВ рдФрд░
рдареАрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рд╢реИрд▓реА рдЕрдиреБрдХреВрд▓рди
рдХреБрдЫ рдорд╛рдореВрд▓реА рд╕реБрдзрд╛рд░ рд╕рд╛рдЗрдЯ рдХреЗ рдореЗрдиреВ, рдЖрдЗрдЯрдо рд▓реЗрдЖрдЙрдЯ рдФрд░ рд╣реЛрдордкреЗрдЬ рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗред
рдХрдВрдЯреЛрд╕реЛ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдиреВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рджреГрд╢реНрдп \ рд╕рд╛рдЭрд╛ \ _ рд▓реЗрдЖрдЙрдЯ рдореЗрдВред 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
рдЬреЛрдбрд╝реЗрдВ clear: both
:
#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; }
#menucontainer
рдФрд░ #menucontainer
clear: both; float: left
clear: both; float: left
clear: both; float: left
:
nav, #menucontainer { margin-top: 40px; clear: both; float: left; }
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪрд▓рд╛рдПрдВред
![clip_image001 [1] clip_image001 [1]](https://habrastorage.org/getpro/habr/post_images/ec5/1c2/3d7/ec51c23d77f7fc6c2583d38c5d71e423.png)
рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдмрдирд╛рдирд╛
рдЗрд╕рдХреЗ рдмрд╛рдж, рдХреЙрдиреНрдЯреЛрд╕реЛ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдЗрдХрд╛рдИ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдПрдВред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреАрди рд╕рдВрд╕реНрдерд╛рдУрдВ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВрдЧреЗ:

Student
рдФрд░
Enrollment
рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдФрд░
Course
рдФрд░
Enrollment
рдмреАрдЪ рдПрдХ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдПрдХ рдЫрд╛рддреНрд░ рдХрд┐рд╕реА рднреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдЫрд╛рддреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЖрдк рдЗрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдПрдВрдЧреЗред
рдиреЛрдЯ: рдЗрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрдХрд▓рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред
рд╕рд╛рд░ рдЫрд╛рддреНрд░
рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ,
рдЫрд╛рддреНрд░ рдмрдирд╛рдПрдБ
ред рд╕реАрдПрд╕ рдФрд░ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ:
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
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрдХрд╛рдИ рдирд╛рдорд╛рдВрдХрди
рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдПрдХ
рдирд╛рдорд╛рдВрдХрди рдмрдирд╛рдПрдБ
ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде
рд╕реАрдПрд╕ :
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
рдЗрдХрд╛рдИ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред
рд╕рд╛рд░ рдкрд╛рдареНрдпрдХреНрд░рдо
рдореЙрдбрд▓ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ, рдПрдХ
рдХреЛрд░реНрд╕ рдмрдирд╛рдПрдВ
ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде
рд╕реАрдПрд╕ :
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
рдЬреЛрдбрд╝реЗрдВ:
using System.Data.Entity; using ContosoUniversity.Models; using ContosoUniversity.DAL;
Application_Start
рдкрджреНрдзрддрд┐ рдореЗрдВ, рдЗрдХрд╛рдИ рдлрд╝реНрд░реЗрдорд╡рд░реНрдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛрдб рдЪрд▓рд╛рддрд╛ рд╣реИ:
Database.SetInitializer<SchoolContext>(new SchoolInitializer());
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╣рд░ рдкрд╣рд▓реА рдкрд╣реБрдВрдЪ, рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рддреБрд▓рдирд╛ рдореЙрдбрд▓ (
SchoolContext
рд╡рд░реНрдЧ) рдХреЗ рд╕рд╛рде рдХрд░рддрд╛ рд╣реИ, рдФрд░
SchoolContext
рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рдкрд░ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрди рд╕рднреА рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдкреЗрдЬ рдмрдирд╛рдПрдВрдЧреЗ, рдФрд░ рдбреЗрдЯрд╛ рдЕрдиреБрд░реЛрдз рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рд╢реБрд░реБрдЖрдд рдХрд░реЗрдЧреАред рдЖрдк рдПрдХ рдирдП рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рд╕рд╛рде рд░рдЦреЗрдВ рддрд╛рдХрд┐ рдореЙрдбрд▓ рдФрд░ рд╕рдВрджрд░реНрдн рдХрдХреНрд╖рд╛рдПрдВ MVC рдирд┐рдпрдВрддреНрд░рдХ рдордЪрд╛рди рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПрдВред
рдПрдХ рдЫрд╛рддреНрд░ рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдирд╛
рдПрдХ
Student
рдирд┐рдпрдВрддреНрд░рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП,
рд╕рдорд╛рдзрд╛рди рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ
рдирд┐рдпрдВрддреНрд░рдХ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдХреНрд▓рд┐рдХ
рдХрд░реЗрдВ ,
рдЬреЛрдбрд╝реЗрдВ ,
рдирд┐рдпрдВрддреНрд░рдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдПрдб рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХреНрд╢рди рдФрд░ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВ рдФрд░
рдРрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:
- рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛ рдирд╛рдо: StudentController ред
- рдЯреЗрдореНрдкреНрд▓реЗрдЯ: рдХрдВрдЯреНрд░реЛрд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдХ ред (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗред)
- рдореЙрдбрд▓ рд╡рд░реНрдЧ: рдЫрд╛рддреНрд░ (ContosoUniversity.Models) ред (рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ)
- рдбреЗрдЯрд╛ рд╕рдВрджрд░реНрдн рд╡рд░реНрдЧ: SchoolContext (ContosoUniversity.Models) ред
- рджреГрд╢реНрдп: рд░реЗрдЬрд░ (CSHTML) ред (рдбрд┐рдлрд╝реЙрд▓реНрдЯ)

рдУрдкрди
рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ \ рд╕реНрдЯреВрдбреЗрдВрдЯрдХрдВрдЯреНрд░реЛрд▓рд░ред рд╕реАрдПрд╕ , рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрджрд░реНрдн рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдП рдЧрдП рд╡реИрд░рд┐рдПрдмрд▓ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ:
рдирд┐рдЬреА рд╕реНрдХреВрд▓рдХреЛрдЯреЗрдХреНрд╕реНрдЯ 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] clip_image002[1]](https://habrastorage.org/getpro/habr/post_images/af2/ab1/d13/af2ab1d130fa6b33053e07e66e828e9a.png)
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдВрдж рдХрд░реЗрдВред
рд╕рдорд╛рдзрд╛рди рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ, ContosoUniversity рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ ред
рд╕рднреА рдлрд╝рд╛рдЗрд▓реЗрдВ рджрд┐рдЦрд╛рдПрдБ ,
рддрд╛рдЬрд╝рд╛ рдХрд░реЗрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░
App_Data рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВред
рд╕реНрдХреВрд▓ рдкрд░ рдбрдмрд▓ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
ред рд╕рд░реНрд╡рд░ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ , рдФрд░
рдЯреЗрдмрд▓реНрд╕ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП
sdf ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк School.sdf рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ
SQL Server рдХреЙрдореНрдкреИрдХреНрдЯ 4.0 рдХреЗ рд▓рд┐рдП Visual Studio 2010 SP1 рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рддреЛ Visual Studio рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред

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

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

рд╕рдордЭреМрддрд╛
рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдХреА рдорд╛рддреНрд░рд╛ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ
рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХрд╛рд░рдг рдиреНрдпреВрдирддрдо рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рдЗрдХрд╛рдИ рд╡рд░реНрдЧ рдирд╛рдореЛрдВ рдХрд╛ рдмрд╣реБрд╡рдЪрди рд░реВрдк рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдЗрдХрд╛рдИ рдирд╛рдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдХрд╛рдИ рдЧреБрдг рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
ID
рдпрд╛ рдХреНрд▓рд╛рд╕рдирд╛рдо ID
рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк ID
рдорд╛рдиреНрдпрддрд╛ рджреА рдЬрд╛рддреА рд╣реИред- рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рдВрджрд░реНрдн рд╡рд░реНрдЧ (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ,
SchoolContext
) рдХреЗ рд╕рдорд╛рди рдирд╛рдо рдХреЗ рд╕рд╛рде SchoolContext
ред
рдЖрдкрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЗрди рд╕рдордЭреМрддреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╣реБрд╡рдЪрди рдХреЛ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рдФрд░ рдЖрдк
рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рд╕реЗ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рди рд╕рдХрддреЗ рд╣реИрдВред
рдЖрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдХреЙрдореНрдкреИрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ред рдЕрдЧрд▓рд╛, рд╣рдо рд╕реАрдЦреЗрдВрдЧреЗ рдХрд┐ рд╕рд░рд▓ CRUD рдХреИрд╕реЗ рдмрдирд╛рдПрдВ (рдмрдирд╛рдПрдВ, рдкрдврд╝реЗрдВ, рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, рд╣рдЯрд╛рдПрдВ) рдСрдкрд░реЗрд╢рди рдХреИрд╕реЗ рдХрд░реЗрдВред
рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдмреЗрд▓реЛрдЯреЗрд░реНрд╕рдХреЛрд╡рд╕реНрдХреА (
рдПрд╣рд░рд┐рдорди ) рдХреЗ рдЕрдиреБрд╡рд╛рдж рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдкреВрд░рд╛ рдРрдк рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ |
рдкреАрдбреАрдПрдл рдореИрдиреБрдЕрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ