WCF RIA рд╕реЗрд╡рд╛рдПрдБред рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рднрд╛рдЧ реи

WCF RIA рд╕реЗрд╡рд╛рдПрдБред рдкреНрд░рд╛рд░рдВрднред рднрд╛рдЧ 1
WCF RIA рд╕реЗрд╡рд╛рдПрдБред рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рднрд╛рдЧ реи
WCF RIA рд╕реЗрд╡рд╛рдПрдБред рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯред рднрд╛рдЧ рей
WCF RIA рд╕реЗрд╡рд╛рдПрдБред рдкреЗрд╢ рд╣реИ рдореЙрдбрд▓-рд╡реНрдпреВ-рд╡реНрдпреВрдореЙрдбрд▓ (рдПрдорд╡реАрд╡реАрдПрдо) рдкреИрдЯрд░реНрдиред рднрд╛рдЧ рек

рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА


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

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

рдЪрд░рдг 1: рдбреЛрдореЗрди рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдиреБрд░реЛрдз рдЬреЛрдбрд╝рдирд╛


рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдкрд╛рда рдореЗрдВ рдбреЛрдореЗрди рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рджреЗрдЦрд╛ рдерд╛:
public IQueryable<Task> GetTasks() { return this.ObjectContext.Tasks; } 

рдпрд╣ рд╡рд┐рдзрд┐ рдХрд╛рд░реНрдп рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ IQueryable рдХреЗ рдкреНрд░рдЧрдгрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддреА рд╣реИ рдФрд░ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдбреЛрдореЗрди рд╕реЗрд╡рд╛ рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред IEnumerable рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдореБрдЦреНрдп рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рддрд╛ (Entity Framework рдпрд╛ LINQ to SQL) IQueryable рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдзреБрдирд┐рдХреАрдХрд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рдХрд┐рд╕реА рдирд┐рд╢реНрдЪрд┐рдд рддрд┐рдерд┐ рд╕реАрдорд╛ рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХреЛрдб рдХреЛ рдбреЛрдореЗрди рд╕реЗрд╡рд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
 public IQueryable<Task> GetTasksByStartDate( DateTime lowerDateTimeInclusive, DateTime upperDateTimeInclusive) { return this.ObjectContext.Tasks.Where( t => t.StartDate >= lowerDateTimeInclusive && t.StartDate <= upperDateTimeInclusive); } 

рдЪрд░рдг 2: рддрддреНрдХрд╛рд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП UI рдмрджрд▓реЗрдВред


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



рд╕рд╛рдордЧреНрд░реА рдмрдЯрди рдХреЛ "рддрд┐рдерд┐ рддрдХ рдЦреЛрдЬреЗрдВ" рдореЗрдВ рдмрджрд▓реЗрдВред


рдЪрд░рдг 3: DomainContext рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛


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

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

рдирдП рдмрдирд╛рдП рдЧрдП рдмрдЯрди рдкрд░ "рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ" рдШрдЯрдирд╛ рдЬреЛрдбрд╝реЗрдВред рдФрд░ рдЗрд╕ рдИрд╡реЗрдВрдЯ рдХреЗ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:
 private void searchButton_Click(object sender, RoutedEventArgs e) { DateTime lowerDateVal; DateTime upperDateVal; GetDates(out lowerDateVal, out upperDateVal); TasksDomainContext context = new TasksDomainContext(); taskDataGrid.ItemsSource = context.Tasks; EntityQuery<Task> query = context.GetTasksByStartDateQuery(lowerDateVal, upperDateVal); LoadOperation<Task> loadOp = context.Load(query); } 

рдХреЛрдб рдХреА рдЕрдВрддрд┐рдо 4 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ 3 рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ рдХреЗрд╡рд▓ рджрд░реНрдЬ рдХреА рдЧрдИ рддрд╛рд░реАрдЦ рдорд┐рд▓ рд░рд╣реА рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
  private void GetDates(out DateTime lowerDateVal, out DateTime upperDateVal) { lowerDateVal = DateTime.MinValue; upperDateVal = DateTime.MaxValue; if (!string.IsNullOrWhiteSpace(lowerDate.Text)) { lowerDateVal = DateTime.Parse(lowerDate.Text); } if (!string.IsNullOrWhiteSpace(upperDate.Text)) { upperDateVal = DateTime.Parse(upperDate.Text); } } 

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

рдПрдХ рдбреЛрдореЗрди рд╕рдВрджрд░реНрдн рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмрд╛рдж рд╕реЗрд╡рд╛ рдбреЛрдореЗрди рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╕реЗрд╡рд╛ рдбреЛрдореЗрди рдЯрд╛рд╕реНрдХ рдЯреЗрдмрд▓ рд╕реЗ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдХреЛрдб DataGrid рдореЗрдВ ItemSource рдХреЛ рдХрд╛рд░реНрдп рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдбреЛрдореЗрди рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЧрдП рдЕрдиреБрд░реЛрдз рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИрдВ рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд╕рдВрдЧреНрд░рд╣ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╕рдВрдЧреНрд░рд╣ INotifyCollectionChanged рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП DataGrid (рдпрд╛ рдХрд┐рд╕реА рднреА рд╕рдВрдмрджреНрдз рддрддреНрд╡) рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред

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

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рд╡рд╣реА рдЪреАрдЬрд╝ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рдкрд╛рда рд╕реЗ DomainDataSource рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддреА рд╣реИред

рдЪрд░рдг 4: рдПрдХ рдПрдХрд▓ рд╡рд╕реНрддреБ рдХреЛ рд▓реМрдЯрд╛рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝рдирд╛


рддрд╛рдХрд┐ рд╡рд┐рдзрд┐ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╡рд╛рдкрд╕ рди рдХрд░реЗ, рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВред рд╕рдВрдХрд▓рди рдХреЗ рдмрд╛рдж, рдпрд╣ рдЧреНрд░рд╛рд╣рдХ рдХреА рдУрд░ рд╕реЗ рднреА рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛:
 public Task GetTask(int taskId) { return this.ObjectContext.Tasks.FirstOrDefault(t => t.TaskId == taskId); } 

рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрдиреНрд╡реЗрдВрд╢рди


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

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

рдХрд╕реНрдЯрдо рдбреЛрдореЗрди рд╕реЗрд╡рд╛рдПрдБ


рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк LINQ to SQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЗрдХрд╛рдИ рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛ред рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдкреБрд░рд╛рдиреЗ рдХреЗ рд╕рд╛рдеред

LINQ to SQL рдЯреВрд▓рдХрд┐рдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ WCF RIA рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрдИ рдЕрдиреНрдп рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ nHibernate рдФрд░ рдЕрдиреНрдп рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЬреИрд╕реЗ рдХрд┐ Oracle, MySQL рдФрд░ рдХрдИ рдЕрдиреНрдпред рдпрд╣ рд╕рдм рдбрдмреНрд▓реНрдпреВрд╕реАрдПрдл рдЖрд░рдЖрдИрдП рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕рд░рд▓ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреЛрдб рдореЗрдВ рдЖрдЧреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдлрд┐рдЯ рджреЗрдЦрддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ POCO (Plain Old CLR Objects) рдбреЛрдореЗрди рд╕реЗрд╡рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдРрд╕реА рдбреЛрдореЗрди рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реЗрд╡рд╛ рдбреЛрдореЗрди рд╡рд░реНрдЧ рдХреЛ рд╕реАрдзреЗ DomainService рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ LinqToEntitiesDomainService рд╕реЗред рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдореЗрдВ, рд╕реЗрд╡рд╛ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрдирд╛рдПрдВ, "рдЙрдкрд▓рдмреНрдз рд╕рдВрджрд░реНрдн рд╡рд░реНрдЧ" рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдореЗрдВ "рдЦрд╛рд▓реА рдбреЛрдореЗрди рд╕реЗрд╡рд╛ рд╡рд░реНрдЧ" рдЪреБрдиреЗрдВред рддрдм рдЖрдк рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдкрдХреЗ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд IQueryable рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рдЬреЛ рдХреБрдЫ рднреА рдХрд░рдирд╛ рд╣реИ, рдЗрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ IEnumerable рд╕рдВрдЧреНрд░рд╣ рд▓реМрдЯрд╛рдПрдВред



рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдХреЛ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд╛рдо рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдпрд╛ рд╕реЗрдЯ-рдЗрди .NET рд╕рдорд░реНрдерд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЧреБрдг рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

рдЬрд┐рд╕ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдЖрдк рдЕрдкрдиреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдлреНрд░реЗрдо рдХрд░рддреЗ рд╣реИрдВ, рд╡рд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЧреБрдг рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдирдХреА рдкрд╣рдЪрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░ "рдЗрдВрдЯ" рдпрд╛ "рдЧрд╛рдЗрдб"ред рдЗрд╕ рдЧреБрдг рдХреЛ [Key] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред

рдиреАрдЪреЗ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╕реЗрд╡рд╛ рдФрд░ рдЙрд╕рдХреА рдЗрдХрд╛рдИ рдХрд╛ POCO рдбреЛрдореЗрди рдХреИрд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП:
 public class Foo { [Key] public int FooId { get; set; } public string Name { get; set; } } [EnableClientAccess()] public class MyPOCODomainService : DomainService { public IEnumerable<Foo> GetFoos() { return new List<Foo> { new Foo { FooId = 42, Name = "Fred" } }; } } 


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

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╡рд┐рдВрдбреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдЬрд╣рд╛рдБ рдЖрдк рддрд┐рдерд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рд╡реАрдбрд┐рдпреЛ




рд╕реНрд░реЛрдд рдХреЛрдб


рдЧреАрдереВрдм рдкрд░

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


All Articles