рдпрд╣ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ ASP.NET MVC 3 рд╡рд┐рдХрд╛рд╕ рд▓реЗрдЦ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИред рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдзреНрдпрд╛рдпреЛрдВ рдореЗрдВ рдкрд╣рд▓рд╛ рдЕрдзреНрдпрд╛рдп рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдкрд┐рдЫрд▓реЗ рдкрд╛рдареЛрдВ рдореЗрдВ, рдЖрдкрдиреЗ рд╕реАрдЦрд╛ рдХрд┐ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рддреАрди рд╕рдВрд╕реНрдерд╛рдУрдВ рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕ рдкрд╛рда рдореЗрдВ, рдЖрдк рдХрдИ рд╕рдВрд╕реНрдерд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдХреЗ рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВрдЧреЗ рдФрд░ рдореЙрдбрд▓ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕реАрдЦреЗрдВрдЧреЗред
рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рд╕рд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди
рдореЙрдбрд▓ \ рдХреЛрд░реНрд╕ рдореЗрдВ ред рд╕реАрдПрд╕ рдкрд╣рд▓реЗ рд╕реЗ рдЙрддреНрдкрдиреНрди рдХреЛрдб рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ:
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace ContosoUniversity.Models { public class Course { [DatabaseGenerated(DatabaseGeneratedOption.None)] [Display(Name = "Number")] public int CourseID { get; set; } [Required(ErrorMessage = "Title is required.")] [MaxLength(50)] public string Title { get; set; } [Required(ErrorMessage = "Number of credits is required.")] [Range(0,5,ErrorMessage="Number of credits must be between 0 and 5.")] public int Credits { get; set; } [Display(Name = "Department")] public int DepartmentID { get; set; } public virtual Department Department { get; set; } public virtual ICollection<Enrollment> Enrollments { get; set; } public virtual ICollection<Instructor> Instructors { get; set; } } }
рдбреЗрдЯрд╛рдмреЗрд╕ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЧреБрдг
рдХреЛрд░реНрд╕ рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЛрдИ рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕рд░реЗрдЯреЗрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
[DatabaseGenerated(DatabaseGeneratedOption.None)] [Display(Name = "Number")] public int CourseID { get; set; }
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдХреЗ рдСрдЯреЛ-рдкреАрдврд╝реА рдХреЛ рдорд╛рдирддрд╛ рд╣реИ, рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╛рдареНрдпрдХреНрд░рдо рдЗрдХрд╛рдИ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рд╕рдВрдХрд╛рдп рдХреЗ рд▓рд┐рдП 1000, рджреВрд╕рд░реЗ рдХреЗ рд▓рд┐рдП 2000 рдФрд░ рдЗрд╕реА рддрд░рд╣ред
рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреБрдг
рдкрд╛рдареНрдпрдХреНрд░рдо рдЗрдХрд╛рдИ рдореЗрдВ рд╡рд┐рджреЗрд╢реА рдкреНрд░рдореБрдЦ рдЧреБрдг рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреБрдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ:
рдкрд╛рдареНрдпрдХреНрд░рдо рдПрдХ рд╕рдВрдХрд╛рдп рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рд╡рд┐рднрд╛рдЧреАрдп рдФрд░ рд╡рд┐рднрд╛рдЧ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ рд╣реИ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int рд╡рд┐рднрд╛рдЧ {рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ; рд╕реЗрдЯ; }
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрднрд╛рд╕реА рд╡рд┐рднрд╛рдЧ рд╡рд┐рднрд╛рдЧ {рдорд┐рд▓рддрд╛ рд╣реИ; рд╕реЗрдЯ; }
рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдЫрд╛рддреНрд░реЛрдВ рдХреА рдПрдХ рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд╣рд╛рдБ рдирд╛рдорд╛рдВрдХрди рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ рд╣реИ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЪреБрдЕрд▓ ICollection рдирд╛рдорд╛рдВрдХрди {рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ; рд╕реЗрдЯ; }
рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╢рд┐рдХреНрд╖рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ рд╣реИ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЪреБрдЕрд▓ ICollection <рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░> рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ {get; рд╕реЗрдЯ; }
рдПрдХ рд╡рд┐рднрд╛рдЧ рдЗрдХрд╛рдИ рдмрдирд╛рдирд╛
рдореЙрдбрд▓ \ рд╡рд┐рднрд╛рдЧ рдмрдирд╛рдПрдБ
ред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЗ рд╕рд╛рде
рд╕реАрдПрд╕ :
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace ContosoUniversity.Models { public class Department { public int DepartmentID { get; set; } [Required(ErrorMessage = "Department name is required.")] [MaxLength(50)] public string Name { get; set; } [DisplayFormat(DataFormatString="{0:c}")] [Required(ErrorMessage = "Budget is required.")] [Column(TypeName="money")] public decimal? Budget { get; set; } [DisplayFormat(DataFormatString="{0:d}", ApplyFormatInEditMode=true)] [Required(ErrorMessage = "Start date is required.")] public DateTime StartDate { get; set; } [Display(Name="Administrator")] public int? InstructorID { get; set; } public virtual Instructor Administrator { get; set; } public virtual ICollection<Course> Courses { get; set; } } }
рд╕реНрддрдВрдн рд╡рд┐рд╢реЗрд╖рддрд╛
рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдХреЙрд▓рдо рдирд╛рдо рдХреА рдореИрдкрд┐рдВрдЧ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред рд╡рд┐рднрд╛рдЧ рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдореЗрдВ, рдЗрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ SQL рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреА рдореИрдкрд┐рдВрдЧ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдХреЙрд▓рдо рдХреЛ SQL рд╕рд░реНрд╡рд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
[Column(TypeName="money")] public decimal? Budget { get; set; }
рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╕реАрдПрд▓рдЖрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ CLR рджрд╢рдорд▓рд╡ рдкреНрд░рдХрд╛рд░ SQL рд╕рд░реНрд╡рд░ рджрд╢рдорд▓рд╡ рдкреНрд░рдХрд╛рд░ рдмрди рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдореБрджреНрд░рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдВрдЦреНрдпрд╛рдПрдВ рд╣реЛрдВрдЧреА, рдФрд░ рдЗрд╕ рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдкреИрд╕рд╛ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛ред
рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреБрдг
рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреБрдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ:
рд╕рдВрдХрд╛рдп рдореЗрдВ рдПрдХ рдкреНрд░рд╢рд╛рд╕рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╣рдореЗрд╢рд╛ = рд╢рд┐рдХреНрд╖рдХ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдЗрдХрд╛рдИ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрдВрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рдж рдкреНрд░рд╢реНрди рдЪрд┐рд╣реНрди рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдкрддреНрддрд┐ рдЕрд╢рдХреНрдд рд╣реЛ рд╕рдХрддреА рд╣реИред рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкреНрд░реЙрдкрд░реНрдЯреА рдПрдбрдорд┐рдирд┐рд╕реНрдЯреНрд░реЗрдЯрд░ рдореЗрдВ рдЗрдХрд╛рдИ рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ int? рдкреНрд░рд╢рд┐рдХреНрд╖рдХ {рдкреНрд░рд╛рдкреНрдд; рд╕реЗрдЯ; }
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрднрд╛рд╕реА рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдкреНрд░рд╢рд╛рд╕рдХ {рдорд┐рд▓рддрд╛ рд╣реИ; рд╕реЗрдЯ; }
рд╕рдВрдХрд╛рдп рдореЗрдВ рдХрдИ рдкрд╛рдареНрдпрдХреНрд░рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╛рдареНрдпрдХреНрд░рдо рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ рдореМрдЬреВрдж рд╣реИ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрднрд╛рд╕реА ICollection рдкрд╛рдареНрдпрдХреНрд░рдо {рдорд┐рд▓рддрд╛ рд╣реИ; рд╕реЗрдЯ; }
рдиреЛрдЯ рдХрдиреНрд╡реЗрдВрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреИрд╕реНрдХреЗрдб рдЧреИрд░-рдЕрд╢рдХреНрдд рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдФрд░ рдХрдИ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдзреЛрдВ рдореЗрдВ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкреБрдирд░рд╛рд╡рд░реНрддреА рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рд╡рд┐рд▓реЛрдкрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╕рдордп рдЕрдкрд╡рд╛рдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╡рд┐рднрд╛рдЧ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЕрд╡рд░реЛрдзрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╢рдХреНрдд рд╣реЛрдиреЗ рдкрд░, рдЖрдкрдХреЛ рдирд┐рдореНрди рдЕрдкрд╡рд╛рдж рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ рдЬрдм: "рд╕рдВрджрд░реНрднрд╛рддреНрдордХ рд╕рдВрдмрдВрдз рдПрдХ рдЪрдХреНрд░реАрдп рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрдЧрд╛ рдЬрд┐рд╕рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред"
рдЫрд╛рддреНрд░ рдЗрдХрд╛рдИ рдмрджрд▓рддреА рд╣реИ
рдореЙрдбрд▓ \ рд╡рд┐рджреНрдпрд╛рд░реНрдереА рдореЗрдВ ред рд╕реАрдПрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ:
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace ContosoUniversity.Models { public class Student { public int StudentID { 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; } [Required(ErrorMessage = "Enrollment date is required.")] [DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)] [Display(Name = "Enrollment Date")] public DateTime? EnrollmentDate { get; set; } public string FullName { get { return LastName + ", " + FirstMidName; } } public virtual ICollection<Enrollment> Enrollments { get; set; } } }
рдирд╛рдорд╛рдВрдХрди рдЗрдХрд╛рдИ рдкрд░рд┐рд╡рд░реНрддрди
рдореЙрдбрд▓ \ рдПрдирд░реЛрд▓рдореЗрдВрдЯ рдореЗрдВ ред рд╕реАрдПрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ:
using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace ContosoUniversity.Models { public class Enrollment { public int EnrollmentID { get; set; } public int CourseID { get; set; } public int StudentID { get; set; } [DisplayFormat(DataFormatString="{0:#.#}",ApplyFormatInEditMode=true,NullDisplayText="No grade")] public decimal? Grade { get; set; } public virtual Course Course { get; set; } public virtual Student Student { get; set; } } }
рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреБрдг
рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреБрдг рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ:
рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рдареНрдпрдХреНрд░рдо рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЗрдХрд╛рдИ рдПрдХ рдкрд╛рдареНрдпрдХреНрд░рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдХреЛрд░реНрд╕рдЖрдИрдбреА рдФрд░ рдХреЛрд░реНрд╕ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ рд╣реИ:
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯ рдХреЛрд░реНрд╕рд┐рдб {рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ; рд╕реЗрдЯ; }
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрднрд╛рд╕реА рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд╛рдареНрдпрдХреНрд░рдо {рдорд┐рд▓рддрд╛ рд╣реИ; рд╕реЗрдЯ; }
рдкреНрд░рддреНрдпреЗрдХ рдЫрд╛рддреНрд░ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдЗрдХрд╛рдИ рдПрдХ рдЫрд╛рддреНрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЫрд╛рддреНрд░ рдХреА рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рдФрд░ рдЫрд╛рддреНрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрддреНрддрд┐ рд╣реИ:
рдкрдмреНрд▓рд┐рдХ рдЗрдВрдЯ рд╕реНрдЯреВрдбреЗрдВрдЯ {рдкрд╛рдиреЗ; рд╕реЗрдЯ; }
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЖрднрд╛рд╕реА рдЫрд╛рддреНрд░ рдЫрд╛рддреНрд░ {рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ; рд╕реЗрдЯ; }
рдХрдИ-рдХрдИ рд░рд┐рд╢реНрддреЗ
рдЫрд╛рддреНрд░ рдФрд░ рдкрд╛рдареНрдпрдХреНрд░рдо рд╕рдВрд╕реНрдерд╛рдПрдВ рдХрдИ-рд╕реЗ-рдХрдИ рд░рд┐рд╢реНрддреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдФрд░ рдирд╛рдорд╛рдВрдХрди рд╕рдВрд╕реНрдерд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ
рдкреЗрд▓реЛрдб рдХреЗ рд╕рд╛рде рдХрдИ-рд╕реЗ-рдХрдИ рд╕рдореНрдорд┐рд▓рд┐рдд рддрд╛рд▓рд┐рдХрд╛
рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдПрдирд░реЛрд▓рдореЗрдВрдЯ рдЯреЗрдмрд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рдФрд░ рдЧреНрд░реЗрдб рд╕рдВрдкрддреНрддрд┐) рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐ рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдбрд┐рдЬрд╛рдЗрдирд░ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдПрдХ рдЗрдХрд╛рдИ рдЖрд░реЗрдЦ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИред

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

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдЬреЙрдЗрди рдЯреЗрдмрд▓ рдХреА рдЬрд░реВрд░рдд рд╣реИ:

рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдХреЛрд░реНрд╕рдЗрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЯреЗрдмрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░.рдХреЛрд░реНрд╕ рдФрд░ рдХреЛрд░реНрд╕.рдЗрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдкреНрд░реЙрдкрд░реНрдЯреАрдЬрд╝ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛
рдЧреНрд░реЗрдб рдЧреБрдг рдХреЗ рд▓рд┐рдП DisplayFormat рд╡рд┐рд╢реЗрд╖рддрд╛ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд░реВрдкрдг рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ:
[DisplayFormat(DataFormatString="{0:#.#}",ApplyFormatInEditMode=true,NullDisplayText="No grade")] public decimal? Grade { get; set; }
- рд╕реНрдХреЛрд░ "3.5" рдпрд╛ "4.0" рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдореЛрдб рдореЗрдВ рд╕рдорд╛рди рд╕реНрд╡рд░реВрдкрдг рд╣реИред
- рдпрджрд┐ рдХреЛрдИ рд░реЗрдЯрд┐рдВрдЧ рдирд╣реАрдВ рд╣реИ, рддреЛ "рдиреЛ рдЧреНрд░реЗрдб" рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдПрдВрдЯрд┐рдЯреА рдбрд╛рдпрдЧреНрд░рд╛рдо рдореЗрдВ рд╕рдВрдмрдВрдз
рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЪрд┐рддреНрд░ рд╕реНрдХреВрд▓ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдз рдкреНрд░рдгрд╛рд▓реА рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рдХрдИ-рд╕реЗ-рдХрдИ рд░рд┐рд╢реНрддреЛрдВ (* - *) рдФрд░ рдПрдХ-рд╕реЗ-рдХрдИ рд░рд┐рд╢реНрддреЛрдВ (1- *) рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдФрд░ OfficeAssignment рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ-рд╕реЗ-рд╢реВрдиреНрдп-рдпрд╛-рдПрдХ рд╕рдВрдмрдВрдз (1-0..1) рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрд╢рдХреНрдд-рд╕реЗ-рдПрдХ-рд╕реЗ-рдХрдИ (0..1 - *) рд╡рд┐рднрд╛рдЧ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдХред
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрджрд░реНрдн рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЕрдЧрд▓рд╛, рд╣рдо 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<Course> Courses { get; set; } public DbSet<Department> Departments { get; set; } public DbSet<Enrollment> Enrollments { get; set; } public DbSet<Instructor> Instructors { get; set; } public DbSet<Student> Students { get; set; } public DbSet<OfficeAssignment> OfficeAssignments { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); modelBuilder.Entity<Instructor>() .HasOptional(p => p.OfficeAssignment).WithRequired(p => p.Instructor); modelBuilder.Entity<Course>() .HasMany(c => c.Instructors).WithMany(i => i.Courses) .Map(t => t.MapLeftKey("CourseID") .MapRightKey("InstructorID") .ToTable("CourseInstructor")); modelBuilder.Entity<Department>() .HasOptional(x => x.Administrator); } } }
OnModelCreating рд╡рд┐рдзрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ:
рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдФрд░ OfficeAssignment рдХреЗ рдмреАрдЪ рдПрдХ-рд╕реЗ-рд╢реВрдиреНрдп рдпрд╛ рдПрдХ:
modelBuilder.Entity <рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░> () .рд╣реИрд╕рдСрдкрд╢рдирд▓ (p => p.OfficeAssignment) .WithRequired (p => p.Instructor);
рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдФрд░ рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдмреАрдЪ рдХрдИ-рдХрдИред рдХреЛрдб рд╢рд╛рдорд┐рд▓ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рд╕реНрддрдВрднреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреЛрдб рдкрд╣рд▓реЗ рдмрд┐рдирд╛ рдХреЛрдб рдХреЗ рдХрдИ-рд╕реЗ-рдХрдИ рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдирд╛рдо рд▓рд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рдЬреИрд╕реЗ рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░рдЗрдиреНрд╕реНрдЯреНрд░реЛрд░рд┐рдбред
modelBuilder.Entity <рдХреЛрд░реНрд╕> ()
.HMMany (c => c.Instructors) .WithMany (i => i.Courses)
.Map (t => t.MapLeftKey ("рдХреЛрд░реНрд╕рд┐рдб")
.MapRightKey ("рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░рдЖрдИрдбреА")
.ToTable ("рдХреЛрд░реНрд╕рдЗрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░"));
рд╡рд┐рднрд╛рдЧ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдХреЗ рдмреАрдЪ рдПрдХ-рд╕реЗ-рд╢реВрдиреНрдп-рдПрдХ, рд╡рд┐рднрд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред
modelBuilder.Entity <рд╡рд┐рднрд╛рдЧ> () .HasOptional (x => x.Administrator);
"рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ" рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЖрдк ASP.NET рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢рд┐рдХреНрд╖рд╛ рджрд▓ рдмреНрд▓реЙрдЧ рдкрд░
рдзрд╛рд░рд╛рдкреНрд░рд╡рд╛рд╣ рдПрдкреАрдЖрдИ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднрд░рдирд╛
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдиреЗ
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 instructors = new List<Instructor> { new Instructor { FirstMidName = "Kim", LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11") }, new Instructor { FirstMidName = "Fadi", LastName = "Fakhouri", HireDate = DateTime.Parse("2002-07-06") }, new Instructor { FirstMidName = "Roger", LastName = "Harui", HireDate = DateTime.Parse("1998-07-01") }, new Instructor { FirstMidName = "Candace", LastName = "Kapoor", HireDate = DateTime.Parse("2001-01-15") }, new Instructor { FirstMidName = "Roger", LastName = "Zheng", HireDate = DateTime.Parse("2004-02-12") } }; instructors.ForEach(s => context.Instructors.Add(s)); context.SaveChanges(); var departments = new List<Department> { new Department { Name = "English", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), InstructorID = 1 }, new Department { Name = "Mathematics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), InstructorID = 2 }, new Department { Name = "Engineering", Budget = 350000, StartDate = DateTime.Parse("2007-09-01"), InstructorID = 3 }, new Department { Name = "Economics", Budget = 100000, StartDate = DateTime.Parse("2007-09-01"), InstructorID = 4 } }; departments.ForEach(s => context.Departments.Add(s)); context.SaveChanges(); var courses = new List<Course> { new Course { CourseID = 1050, Title = "Chemistry", Credits = 3, DepartmentID = 3, Instructors = new List<Instructor>() }, new Course { CourseID = 4022, Title = "Microeconomics", Credits = 3, DepartmentID = 4, Instructors = new List<Instructor>() }, new Course { CourseID = 4041, Title = "Macroeconomics", Credits = 3, DepartmentID = 4, Instructors = new List<Instructor>() }, new Course { CourseID = 1045, Title = "Calculus", Credits = 4, DepartmentID = 2, Instructors = new List<Instructor>() }, new Course { CourseID = 3141, Title = "Trigonometry", Credits = 4, DepartmentID = 2, Instructors = new List<Instructor>() }, new Course { CourseID = 2021, Title = "Composition", Credits = 3, DepartmentID = 1, Instructors = new List<Instructor>() }, new Course { CourseID = 2042, Title = "Literature", Credits = 4, DepartmentID = 1, Instructors = new List<Instructor>() } }; courses.ForEach(s => context.Courses.Add(s)); context.SaveChanges(); courses[0].Instructors.Add(instructors[0]); courses[0].Instructors.Add(instructors[1]); courses[1].Instructors.Add(instructors[2]); courses[2].Instructors.Add(instructors[2]); courses[3].Instructors.Add(instructors[3]); courses[4].Instructors.Add(instructors[3]); courses[5].Instructors.Add(instructors[3]); courses[6].Instructors.Add(instructors[3]); context.SaveChanges(); var enrollments = new List<Enrollment> { new Enrollment { StudentID = 1, CourseID = 1050, Grade = 1 }, new Enrollment { StudentID = 1, CourseID = 4022, Grade = 3 }, new Enrollment { StudentID = 1, CourseID = 4041, Grade = 1 }, new Enrollment { StudentID = 2, CourseID = 1045, Grade = 2 }, new Enrollment { StudentID = 2, CourseID = 3141, Grade = 4 }, new Enrollment { StudentID = 2, CourseID = 2021, Grade = 4 }, new Enrollment { StudentID = 3, CourseID = 1050 }, new Enrollment { StudentID = 4, CourseID = 1050, }, new Enrollment { StudentID = 4, CourseID = 4022, Grade = 4 }, new Enrollment { StudentID = 5, CourseID = 4041, Grade = 3 }, new Enrollment { StudentID = 6, CourseID = 1045 }, new Enrollment { StudentID = 7, CourseID = 3141, Grade = 2 }, }; enrollments.ForEach(s => context.Enrollments.Add(s)); context.SaveChanges(); var officeAssignments = new List<OfficeAssignment> { new OfficeAssignment { InstructorID = 1, Location = "Smith 17" }, new OfficeAssignment { InstructorID = 2, Location = "Gowan 27" }, new OfficeAssignment { InstructorID = 3, Location = "Thompson 304" }, }; officeAssignments.ForEach(s => context.OfficeAssignments.Add(s)); context.SaveChanges(); } } }
рдХреЛрд░реНрд╕ рдЗрдХрд╛рдИ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЬреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдХ рдЗрдХрд╛рдИ рдХреЗ рд╕рд╛рде рдХрдИ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдзреЛрдВ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ:
var courses = new List { new Course { CourseID = 1050, Title = "Chemistry", Credits = 3, DepartmentID = 3, Instructors = new List() }, ... }; courses.ForEach(s => context.Courses.Add(s)); context.SaveChanges(); courses[0].Instructors.Add(instructors[0]); ... context.SaveChanges();
рдЦрд╛рд▓реА рд╕рдВрдЧреНрд░рд╣ (рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ = рдирдИ рд╕реВрдЪреА ()) рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдХреЛрд░реНрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп, рдЬреЛ рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдЗрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред () рд╡рд┐рдзрд┐ред рдпрджрд┐ рдЖрдкрдиреЗ рдХреЛрдИ рд░рд┐рдХреНрдд рд╕реВрдЪреА рдирд╣реАрдВ рдмрдирд╛рдИ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝ рдкрд╛рдПрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╢рд┐рдХреНрд╖рдХреЛрдВ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╢реВрдиреНрдп рд╣реЛрдЧреА рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рдРрдб рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдЧреАред
рдиреЛрдЯ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдирд╛ рди рднреВрд▓реЗрдВред
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╣рдЯрд╛рдПрдБ рдФрд░ рдкреБрдирдГ рдмрдирд╛рдПрдБ
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪрд▓рд╛рдПрдВ рдФрд░ рд╕реНрдЯреВрдбреЗрдВрдЯ рдЗрдВрдбреЗрдХреНрд╕ рдкреЗрдЬ рдЪреБрдиреЗрдВред

рдпрд╣ рдкреГрд╖реНрда рд╡реИрд╕рд╛ рд╣реА рджрд┐рдЦрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдкрд╣рд▓реЗ рджрд┐рдЦрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди "рджреГрд╢реНрдпреЛрдВ рдХреЗ рдкреАрдЫреЗ" рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдпрджрд┐ рдкреГрд╖реНрда рдирд╣реАрдВ рдЦреБрд▓рддрд╛ рд╣реИ рдпрд╛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ рдХрд┐ School.sdf рдлрд╝рд╛рдЗрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИ (рдиреАрдЪреЗ рджреА рдЧрдИ рдЫрд╡рд┐), рддреЛ рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдкреГрд╖реНрда рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рд░реНрд╡рд░ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдЦреЛрд▓реЗрдВ рдФрд░ рдЯреЗрдмрд▓реНрд╕ рдореЗрдВ рдирдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВред

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

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