рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд╛рдареНрдпрдХреНрд░рдоред ASP.NET MVC рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЬрдЯрд┐рд▓ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдмрдирд╛рдирд╛, рднрд╛рдЧ 1

рдпрд╣ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ ASP.NET MVC 3 рд╡рд┐рдХрд╛рд╕ рд▓реЗрдЦ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдзреНрдпрд╛рдпреЛрдВ рдореЗрдВ рдкрд╣рд▓рд╛ рдЕрдзреНрдпрд╛рдп рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдкрд┐рдЫрд▓реЗ рдкрд╛рдареЛрдВ рдореЗрдВ, рдЖрдкрдиреЗ рд╕реАрдЦрд╛ рдХрд┐ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рддреАрди рд╕рдВрд╕реНрдерд╛рдУрдВ рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕ рдкрд╛рда рдореЗрдВ, рдЖрдк рдХрдИ рд╕рдВрд╕реНрдерд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдХреЗ рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдФрд░ рдореЙрдбрд▓ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗред

рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

image

рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрд╡рд░реВрдкрдг, рд╕рддреНрдпрд╛рдкрди рдФрд░ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


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

рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛


рдЫрд╛рддреНрд░ рдкреНрд░рд╡реЗрд╢ рддрд┐рдерд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕рднреА рдкреГрд╖реНрда рдЕрдм рддрд╛рд░реАрдЦ рдХреЗ рд╕рд╛рде рд╕рдордп рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рддрд╛рд░реАрдЦ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдПрдХ рдЬрдЧрд╣ рдПрдХ рд╕реЗрдЯрд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдм рдХреБрдЫ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдЧреАред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЫрд╛рддреНрд░ рд╡рд░реНрдЧ рдореЗрдВ EnrolmentDate рдЧреБрдг рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВред

рдореЙрдбрд▓ \ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рдореЗрдВ ред System.ComponentModel.DataAnnotations рдФрд░ EnrollmentDod рдЧреБрдг рдХреЗ рд▓рд┐рдП DisplayFormat рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд▓рд┐рдП cs рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace ContosoUniversity.Models { public class Student { public int StudentID { get; set; } public string LastName { get; set; } public string FirstMidName { get; set; } [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)] public DateTime EnrollmentDate { get; set; } public virtual ICollection<Enrollment> Enrollments { get; set; } } } 

рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреА рддрд╛рд░реАрдЦ рдХрд╛ рдХреЗрд╡рд▓ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред ApplyFormatInEditMode рд╕реЗрдЯрд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреА рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрд╡рд░реВрдкрдг рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЗрдЪреНрдЫрд┐рдд рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдореВрд▓реНрдпреЛрдВ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рдореБрджреНрд░рд╛, рдореБрджреНрд░рд╛ рдЪрд┐рд╣реНрди рд╕реЗ рдЬреБрдбрд╝реЗ рдореВрд▓реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВ)

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЕрдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЫрд╛рддреНрд░ рдкреГрд╖реНрда рддрд┐рдерд┐рдпреЛрдВ рдореЗрдВ рджрд┐рдирд╛рдВрдХ рдирд╣реАрдВ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред

image

MaxLength рд╡рд┐рд╢реЗрд╖рддрд╛


рдЧреБрдг рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдореЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдореВрд▓реНрдп рдХреЛ 50 рд╡рд░реНрдгреЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП, LastName рдФрд░ FirstMidName рдЧреБрдгреЛрдВ рдореЗрдВ рд╢реНрд░реЗрдгреА рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВ:

 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace ContosoUniversity.Models { public class Student { public int StudentID { get; set; } [MaxLength(50)] public string LastName { get; set; } [MaxLength(50, ErrorMessage = "First name cannot be longer than 50 characters.")] public string FirstMidName { get; set; } [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)] public DateTime EnrollmentDate { get; set; } public virtual ICollection<Enrollment> Enrollments { get; set; } } } 

рдпрджрд┐ рдЖрдк 50 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдЕрдВрддрд┐рдо рдирд╛рдо рджрд░реНрдЬ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдорд╛рдирдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдирд╛рдо рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░рд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛ред

рдмрдирд╛рдПрдБ рдкреГрд╖реНрда рдЦреЛрд▓реЗрдВ рдФрд░ 50 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдгреЛрдВ рдХреЗ рджреЛ рдирд╛рдореЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдлрд┐рд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рддреНрдпрд╛рдкрди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

image

рдЗрдирдкреБрдЯ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдореВрд▓реНрдп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЕрдЪреНрдЫреА рдкреНрд░рдерд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрдиреНрдпрдерд╛, рдпрджрд┐ рдХреЛрдб рдкреНрд░рдердо рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╕рдордп, рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрд▓рдо рдХреЗ рдирд╛рдореЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рдЕрдиреБрдореЗрдп рд▓рдВрдмрд╛рдИ рд╣реЛрдЧреАред

рд╕реНрддрдВрдн рд╡рд┐рд╢реЗрд╖рддрд╛


рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░рдг рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдкрдиреЗ рдирд╛рдо рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП FirstMidName рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдПрдХ рдордзреНрдп рдирд╛рдо рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрд▓рдо рдХреЛ FirstName рдХрд╣рд╛ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдЗрд╕ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдк Column Feature рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреЙрд▓рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддреЗ рд╕рдордп, FirstMidName рдкреНрд░реЙрдкрд░реНрдЯреА рдкрд░ рдореИрдк рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЫрд╛рддреНрд░ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдХреЙрд▓рдо рдХреЛ рдлрд░реНрд╕реНрдЯ рдирд╛рдо рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

FirstMidName рдЧреБрдг рдореЗрдВ рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝реЗрдВ:

 [Column("FirstName")] public string FirstMidName { get; set; } 

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

image

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

image

рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдЗрдХрд╛рдИ рдмрдирд╛рдирд╛


image

рдореЙрдбрд▓ \ рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдмрдирд╛рдПрдВ ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕реАрдПрд╕ :

 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace ContosoUniversity.Models { public class Instructor { public Int32 InstructorID { get; set; } [Required(ErrorMessage = "Last name is required.")] [Display(Name="Last Name")] [MaxLength(50)] public string LastName { get; set; } [Required(ErrorMessage = "First name is required.")] [Column("FirstName")] [Display(Name = "First Name")] [MaxLength(50)] public string FirstMidName { get; set; } [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)] [Required(ErrorMessage = "Hire date is required.")] [Display(Name = "Hire Date")] public DateTime? HireDate { get; set; } public string FullName { get { return LastName + ", " + FirstMidName; } } public virtual ICollection<Course> Courses { get; set; } public virtual OfficeAssignment OfficeAssignment { get; set; } } } 

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреБрдЫ рдЧреБрдг рдЫрд╛рддреНрд░ рдЗрдХрд╛рдИ рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ, рд╣рдо рдЕрддрд┐рд░реЗрдХ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЖрд╡рд╢реНрдпрдХ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ

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

 [Required(ErrorMessage = "Last name is required.")] [Display(Name="Last Name")] [MaxLength(50)] public string LastName { get; set; } 

рдХрдВрдкреНрдпреВрдЯреЗрдб рдлреБрд▓рдиреЗрдо рдкреНрд░реЙрдкрд░реНрдЯреА

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

 public string FullName { get { return LastName + ", " + FirstMidName; } } 

рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреБрдг рдкрд╛рдареНрдпрдХреНрд░рдо рдФрд░ OfficeAssignment

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

рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рд╢рд┐рдХреНрд╖рдХ рдХрдИ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреЛ рдкрдврд╝рд╛ рд╕рдХрддрд╛ рд╣реИ, рдкрд╛рдареНрдпрдХреНрд░рдо рдЪрд░ рдХреЛ рдкрд╛рдареНрдпрдХреНрд░рдо рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдПрдХ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░реНрдпрд╛рд▓рдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП OfficeAsignment рдХреЛ рдХреЗрд╡рд▓ OfficeAssignment рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреЛ рд╢рд┐рдХреНрд╖рдХ рдХреЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЕрд╢рдХреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред

 public virtual ICollection<Course> Courses { get; set; } public virtual OfficeAssignment OfficeAssignment { get; set; } 

рдПрдХ OfficeAssignment рдЗрдХрд╛рдИ рдмрдирд╛рдирд╛


image

рдореЙрдбрд▓ \ OfficeAssignment рдмрдирд╛рдПрдБ ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд╕реАрдПрд╕ :

 using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace ContosoUniversity.Models { public class OfficeAssignment { [Key] public int InstructorID { get; set; } [MaxLength(50)] [Display(Name = "Office Location")] public string Location { get; set; } public virtual Instructor Instructor { get; set; } } } 

рдореБрдЦреНрдп рдЧреБрдг

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

 [Key] public int InstructorID { get; set; } 

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

рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐

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

рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП ...

рдзрдиреНрдпрд╡рд╛рдж


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

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


All Articles