рдЖрдзрд╛рд░ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг
рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА, рдПрд▓реЗрдХреНрд╡реЗрд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ .Net рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рджреЛрдиреЛрдВ рдХреЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛, рдЬрд┐рд╕рд╕реЗ рдЙрдирдХреЗ рдХрдИ рдорддрднреЗрдж рдЦрддреНрдо рд╣реЛ рдЧрдПред рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдПрд▓рдХреНрд╡реЗрд░рд╛ .Net рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░рд┐рд╡рд╛рд░ рд╕реЗ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдЕрднреА рддрдХ рдХреЗрд╡рд▓ C # рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд╕реЗрдЧрдореЗрдВрдЯ (100+ рдЬреАрдмреА) рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдореБрдЦреНрдп рдлреЛрдХрд╕, рдФрд░ рдПрдореНрдмреЗрдбреЗрдб рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░ рдирд╣реАрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╛рдж рд╡рд╛рд▓реЗ рднреА рдзреНрдпрд╛рди рд╕реЗ рд╡рдВрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВред
рдПрд▓реЛрдХреЗрд░рд╛ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИрдВ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдпрд╣рд╛рдВ рдПрдХ рдмрд╣реБрдд рд╣реА рдЫреЛрдЯреА рд╕реВрдЪреА рд╣реИ:
- рд╡рд┐рд╢реЗрд╖ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдПрдбреЗрдкреНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ C # рдСрдмреНрдЬреЗрдХреНрдЯ (.Net рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдХреА рдХреЛрдИ рднреА рд╡рд╕реНрддреБ) рдмрдЪрд╛рддрд╛ рд╣реИред
- рдбрд╛рдпрдирд╛рдорд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХрд┐рд╕реА рднреА рдлрд╝реАрд▓реНрдб \ рдЧреБрдг рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдореИрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИред
- рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдпрдерд╛рд╕рдВрднрд╡ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рдХрд░реАрдм рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд░рд┐рд▓реЗрд╢рдирд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкреНрд▓рд╕ LINQ рд╕рдорд░реНрдердиред
- рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрд╕ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЧрдП рдереЗ (рдЗрдиреНрдпреБрдорд░реЗрдЯреЗрдб рдкреНрд░рдХрд╛рд░ рд╕рд╣рд┐рдд)
- рд╕реВрдЪрд┐рдпреЛрдВ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди
- рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рдирд┐рдпрдорд┐рдд рднрд╛рд╡ред
- рдЯреЗрдореНрдкрд▓реЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
- рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдФрд░ рдЧреБрдг рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
- рд╡рд╕реНрддреБрдУрдВ рдХреА рдЖрдВрд╢рд┐рдХ рд╡рд╛рдкрд╕реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдлрд╝реЛрд░рдореЙрдкрд┐рдХ рдХреНрд▓рд╛рд╕ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рддреЛ рдЖрдк рдлрд╝реЛрд░рдо рдореЗрд╕реЗрдЬреЗрд╕ рдХреЗ рд╕рднреА рд▓рд┐рдВрдХ рдирд╣реАрдВ рдЦреАрдВрдЪ рд╕рдХрддреЗред
- рдЖрдк рдЕрдиреБрд░реЛрдз рдореЗрдВ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЧрд╣рд░рд╛рдИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐рдпрд╛рдБред
рд╕реНрдерд╛рдкрдирд╛
рдЖрдк рдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд╛рдж рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ
www.eloquera.com рд╕реЗ рдЖрдзрд╛рд░ рд╡рд┐рддрд░рдг
рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред рдбреЗрд╕реНрдХрдЯреЙрдк рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (x86 рдпрд╛ x64)ред рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрд▓рдХреНрд╡реЗрд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдХреЛрдИ рдиреБрдХрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
рдХрд┐рд╕реА рднреА рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЖрдзреБрдирд┐рдХ рдорд╢реАрди рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ 5 рдорд┐рдирдЯ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд▓рдЧреЗрдЧрд╛ред рддреЛ рдЖрдкрдХреЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рд╣реЛрдЧрд╛:
- рдПрд▓реЛрд╡реЗрд░рд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕реНрдЯреВрдбрд┐рдпреЛ;
- рдПрд▓реЛрдХреЗрд░рд╛ рдбреАрдмреА рд╕реНрдЯреВрдбрд┐рдпреЛ;
- рдЖрдзрд╛рд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рд╕реНрд╡рдпрдВ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рдбреЗрд╕реНрдХрдЯреЙрдк рд╕рдВрд╕реНрдХрд░рдг рдПрдХреНрд╕-рдХреЙрдкреА рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╡рд╛рдВрдЫрд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдерд╛рдкрд┐рдд .Net 4 рдкреВрд░реНрдг рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, NuGet рдкреИрдХреЗрдЬ рдХрд╛рдлреА рдЕрдкреЗрдХреНрд╖рд┐рдд рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рд╕реЗ рдЕрд╡рдЧрдд рд╣реИрдВ рдФрд░ рдЬрд▓реНрдж рд╣реА рдПрдХ рдмрдирд╛рдиреЗ рдХреА рдзрдордХреА рджреЗ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕реЗ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП, рдХрд░реНрдиреЗрд▓ рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВред
рдмреЗрд╕ рдореЛрдбреНрд╕
рдПрд▓реЛрдХреЗрд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдИ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
- рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдо рдбреЗрдЯрд╛рдмреЗрд╕, рдорд╛рдирдХ рдореЛрдбред
- рдЗрди-рдореЗрдореЛрд░реА рдореЛрдбред
- рдбреЗрд╕реНрдХрдЯреЙрдк - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЖрдзрд╛рд░ рдХрд╛ рдореЛрдб
рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб:
private const string DBName = "ServiceDatabase"; using (var eloquera = new DB("server=localhost:43962;options=none;")) { eloquera.CreateDatabase(DBName); eloquera.OpenDatabase(DBName); eloquera.Close(); }
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП
DB рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
ред рдХрдиреЗрдХреНрд╢рди рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдХреНрд▓рд╛рд╕ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдХрдиреЗрдХреНрд╢рди рд╕реЗрд╡рд╛ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдФрд░ рдЬрдм рдСрдлрд╝рд▓рд╛рдЗрди (рдбреЗрд╕реНрдХрдЯреЙрдк рдореЛрдб) рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрд▓рдХреНрд╡реЗрд░рд╛ рдЗрди-рдореЗрдореЛрд░реА рдореЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдлреНрд░реА рд╡рд░реНрдЬрди рдореЗрдВ рдореИрдореЛрд░реА рдмреЗрд╕ 1 рдЬреАрдмреА рддрдХ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд░реИрдо рдХреА рднреМрддрд┐рдХ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЛ рдпрд╛рдж рд░рдЦрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рднреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЖрдХрд╛рд░ рдРрд╕рд╛ рд╣реЛ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдЗрд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрд╡реИрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпрд╣ рдЧрддрд┐ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдЗрдВрдЬрди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдо рд░реИрдо рдореЗрдВ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреИрд░рд╛рдореАрдЯрд░
рдЗрдирдореЗрдореЛрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
new DB("server=(local); options=inmemory;"))
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗрд╡рд▓ RAM рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐,
рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрднреА рднреА рдПрдХ рдЦрд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА ред рдРрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ
рджреГрдврд╝рддрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдбреЗрд╕реНрдХрдЯреЙрдк рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧреА:
new DB("server=(local); options=none;"))
рдПрд▓реЛрдХреНрд╡реЗрд░рд╛ рдХреЗ рд▓рд┐рдП рдбреЗрд╕реНрдХрдЯреЙрдк рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрд▓реЛрд╡реЗрд░рд╛рдбреАрдмреА рд╕реЗрд╡рд╛ рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА рдХрд┐ рдкрддреЗ
(рд╕реНрдерд╛рдиреАрдп) рдкрд░ рд╕реЗрд╡рд╛ рд╕реЗ рдЬреБрдбрд╝рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ
редрдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд▓реЛрдЧреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред
рдорд┐рд▓рддреА рд╣реИ
рдПрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ:
SELECT Alias1,Alias2 FROM Type1 Alias1 [ LEFT | RIGHT| INNER | FULL ] JOIN Type2 Alias2 ONSomeFunction(Alias1.Field1, Alias2.Field2)
рдпрджрд┐ SELECT рдореЗрдВ JOIN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХреНрд╡реЗрд░реА рдмрдирд╛рдиреЗ рдореЗрдВ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдЕрдзрд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдСрдкрд░реЗрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдПрдХ рдирдИ рд╡рд╕реНрддреБ IEnumerable <Dictionary <string, object >> рд╣реЛрдЧрд╛ред
рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рддрд░рд╣, рдЕрдиреБрд░реЛрдз рдирд╛рдорд╛рдВрдХрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╣рд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкрд░ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реАрдорд╛рдПрдБ рд╣реИрдВ:
- рдХреНрд╡реЗрд░реА рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдирд╛рдорд╛рдВрдХрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЪрдпрди рдЪрдпрди рдХрдерди рдореЗрдВ рдЯрд╛рдЗрдк рдирд╛рдореЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛рдиреА рдЪрдпрди рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд╛рд╣рд░ рд╣реЛрдЧрд╛ред
рдЕрд▓рдЧ-рдЕрд▓рдЧ, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЬреЙрдп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд╡рдВрд╢рдЬреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдПрдХ рдХреНрд╡реЗрд░реА рдореЗрдВ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджрд┐рдП рдЧрдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ TypeC рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐:
SELECT a, b FROM TypeA a INNER JOIN TypeB b ON b.id = a.id
рдпрджрд┐ рд╡реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЯрд╛рдЗрдкрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ "рдП" рдлреАрд▓реНрдб рдореЗрдВ рд▓реМрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд╕рднреА рд╡рдВрд╢рдЬреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╛рдиреА рдЗрд╕ рддрд░рд╣ рдЕрдиреБрд░реЛрдз рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВ:
SELECT a, b FROM ONLY TypeA a INNER JOIN TypeB b ON b.id = a.id
рдЕрдм рдХреНрд╖реЗрддреНрд░ "рдП" рдореЗрдВ рдХреЗрд╡рд▓ рдЯрд╛рдЗрдкрд╛ рдХреА рд╡рд╕реНрддреБрдПрдВ рд╣реЛрдВрдЧреАред
рдЗрдирд░ рдЬреЙрдЗрди рдХреЗ рдХрд╛рдо рдкрд░ рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдгред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ:

рд╣рдо рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд┐рдд рд╕рднреА рд╕реНрдХреВрд▓реЛрдВ рдФрд░ рдиреМрдХрд░рд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рдХрд╛рд░реНрдп рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдХреЛрдб:
var queryResult = (IEnumerable<Dictionary<string,object>>) db.ExecuteQuery("SELECT sch, wp FROM School sch INNER JOIN WorkPlace wp ONch.Location=wp.Location");
рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рджрд░реНрд╢рд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
#
| queryResult ["sch"]
| queryResult ["wp"]
|
1
| School1
| wPlace2
|
2
| School2
| wPlace2
|
3
| рд╕реНрдХреВрд▓ рдХреЗ рд▓рд┐рдП 3
| wPlace3
|
4
| рд╕реНрдХреВрд▓ рдХреЗ рд▓рд┐рдП 3
| wPlace4
|
рдорд╛рдкрджрдВрдбреЛрдВ
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдХреЛ рдЕрдиреБрд░реЛрдз рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдмреЗрдХрд╛рд░ рд╣реИред
рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
Parameters param = db.CreateParameters(); param["name"] = "John"
рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
var res = db.ExecuteQuery("SELECT BasicUser WHERE Name = @name", param);
рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рдиреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕рд░рд▓ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
Parameters param = db.CreateParameters(); param.AddList("emails", new string[]{"john@gmail.com", "david@hotmail.com"}); var res = db.ExecuteQuery("SELECT BasicUser WHERE ALL @emails in Emails", param);
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЙрдк, рд╕реНрдХрд┐рдк рдФрд░ рдСрд░реНрдбрд░ рдмрд╛рдп рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЕрд╢рдХреНрдд рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐рдпрд╛рдБ
рд╕рдВрд╕реНрдХрд░рдг 4.0 рдХреЗ рд╕рд╛рде рд╢реБрд░реВ, рдПрд▓реЛрдХреЗрд░рд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рд╕реА # рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреА рдХрд┐рд╕реА рднреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдмреЛрд▓реА рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рд▓реЗрдЦрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рд╕рднреА .Net рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдкрд░реНрдпрд╛рдкреНрдд рд╢рдмреНрдж, рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдХреИрд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВред
рдкрд╣рд▓рд╛ рдХрджрдо рд╡рд╛рдВрдЫрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
public interface ICityStatisticSP{ CityCars GetCityCars(string cityName); }
рдлрд┐рд░ рд╣рдо рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд╛рд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ Lib рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐рдпреЛрдВ рд╡рд╛рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдкрде рдХреЛ
StoredProceduresPath рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
public class CityStatisticSP: StoredProcedure, ICityStatisticSP { public CityCars GetCityCars(string cityName) { Parameters parms = db.CreateParameters(); parms["city"] = cityName; var cars = db.ExecuteQuery("SELECT Car FROM Car JOIN Seller ON Car.SellerID = Seller.ID WHERE Seller.City = @city", parms) .OfType<Car>() .ToList(); тАж } }
рдирдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
рдЬрдм рдЖрдк рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
ICityStatisticSP procedures = db.GetStoredProcedureClass<ICityStatisticSP>(); string cityName = "Chicago"; CityCars cars = procedures.GetCityCars(cityName);
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдмрд╣реБрдд рд╣реА рд╡рд╕реНрддреБ рдкреНрд░рдХреГрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдкрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдореИрдкрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ-рдЕрдиреНрдп-рдЪреАрдЬреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдЙрдирдХреЗ рдореМрдЬреВрджрд╛ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдореМрдЬреВрджрдЧреА, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рд╡рд╛рдкрд╕ рд▓реЗрдиреЗ рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИред рдпрд╣ рдЬреЛрд░ рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐
рд╕рднреА рдХреЛрдб рдХреЛ рдЖрдзрд╛рд░ рдХреА рдУрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдпрд╛рдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд▓реЛрдб рдХреЛ рдмрд╣реБрдд рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдбреЗрдЯрд╛ рдХреЛ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирдП рддрддреНрд╡ рдмрдирд╛рдПрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рддрддреНрд╡реЛрдВ рдХреЛ рдХреБрдЫ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкреБрд░рд╛рдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рдЕрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рд╢рд░реНрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдирдП рдбреЗрдЯрд╛ рдХреЛ рдУрд╡рд░рдЯреЗрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рд╣рд▓ рдХрд░реЗрдЧреАред
рдЧрддрд┐рд╢реАрд▓ рд╡рд╕реНрддреБрдПрдБ (рдбрд╛рдпрдирд╛рдорд┐рдХ)
рдПрд▓реЛрд╡реЗрд░рд╛ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЙрдиреНрд╣реЛрдВрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмреЗрд╕ рдореЗрдВ рдХреБрдЫ рдЬрд╛рджреВ рдЬреЛрдбрд╝рд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдорд┐рд▓рд╛, рдЬрд┐рд╕реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рдбрд╛рдпрдирд╛рдорд┐рдХ рдХрд╣рд╛ред рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рд╕реЗ рдкреИрд░ рдХрд╣рд╛рдБ рдмрдврд╝рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ C # рдореЗрдВ рд╕рдордиреНрд╡рд┐рдд рд╣реИред рдЧрддрд┐рд╢реАрд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрд░рдЪрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрдж рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реА # рдХреЛрдб рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрдХреНрд╖рд╛рдПрдВ рдФрд░ рд╕рдВрд░рдЪрдирд╛рдПрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд░рдЪрдирд╛ рдХреА рдЧрдИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрди рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореБрдЦреНрдп рд▓рд╛рдн рд╕рд╣реЗрдЬреЗ рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдлрд╝реАрд▓реНрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдФрд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ - рдбреЗрдЯрд╛ рдЬрд╛рджреБрдИ рд░реВрдк рд╕реЗ рд╕рдВрд▓рдЧреНрди рд╣реИ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реИред
рдЧрддрд┐рд╢реАрд▓ рд╡рд╕реНрддреБрдПрдВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓рд╛рдн:
- рд╡реЗ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИрдВред рд▓рд╛рдкрддрд╛ рдЦреЗрддреЛрдВ рдФрд░ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдХреЛ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдХреНрд╖рдорддрд╛рдУрдВ рдФрд░ рд╕реАрдорд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдбрд╛рдпрдирд╛рдорд┐рдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреНрд░рдордг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
- рд╡реЗ рдПрдХ рджреВрд╕рд░реЗ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдореЗрдВ рд╕рдорд╛рд╣рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
- рдЧрддрд┐рд╢реАрд▓ рд╡рд╕реНрддреБрдПрдВ рдмрд╣реБрдд рддреЗрдЬ рд╣реЛрддреА рд╣реИрдВред
- рдЙрдиреНрд╣реЗрдВ рдордХреНрдЦреА рдкрд░ "рдореВрд▓" рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд ред
- рдХрд╛рдо рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреЗрдЯрд╛ рдпреЛрдЬрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╡реНрдпрд╛рдкрдХ рдХреНрд╖реЗрддреНрд░ рджреЗрддрд╛ рд╣реИред
- рдмреНрд▓реЙрдЧ рдЗрдВрдЬрди, рд╕реАрдПрдордПрд╕, рд╡рд┐рдХреА
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдФрд░ рдкрдВрдЬреАрдХрд░рдг
- рд░рд┐рдХреЙрд░реНрдб рдЗрддрд┐рд╣рд╛рд╕ рд╕рдВрдЧреНрд░рд╣
- рдорд╛рдорд▓реЗ рдЬрдм рдбреЗрдЯрд╛ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдпрд╛ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЪрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧред
рдЕрдВрддрд┐рдо рджреЛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдЕрд░реНрде рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВред рд╡рд┐рд╕реНрдлреЛрдЯрдХ рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рдмрд┐рдирд╛ рдРрд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдЦреНрдд рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рддрд░реНрдХрд╕рдВрдЧрдд рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдбрд╛рдпрдиреЗрдорд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдирдВрдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╢реИрд▓реА рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рд╡реЗрдм 2.0 рд╣реИ, рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рд░ рдЪреАрдЬ, рд╕рд╣рдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА, рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде, рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рдХрдареЛрд░ рд╡рд┐рд╡рд░рдг, рдРрд╕реА рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рдпрд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред
рдЧрддрд┐рд╢реАрд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рдЕрд╡рд▓реЛрдХрди
рдХрд┐рд╕реА рднреА рд╕рдордп рдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЧрддрд┐рд╢реАрд▓ рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд╕рд╛рде, рдпрд╣ рдбреЗрдЯрд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
Dynamic @do = new Dynamic(); @do["Title"] = "Some title"; @do["Price"] = 14.99; @do["DateAdded"] = DateTime.Now; db.Store(@do); Dynamic res = (from Dynamic d in db where d["Price"] == 14.99 select d).First<Dynamic>();
.Net 4 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдкреНрд░рдХрд╛рд░ рдбрд╛рдпрдирд╛рдорд┐рдХ рдХреЗ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
dynamic @do = new Dynamic(); @do.Title = "Some title"; @do.Price = 14.99; @do.DateAdded = DateTime.Now; db.Store(@do); dynamic res = (from Dynamic d in db where d["Price"] == 14.99 select d).First<Dynamic>();
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ LINQ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЯреНрд░реА рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рдВрдХреЗрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
d ["рдореВрд▓реНрдп"] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЧрддрд┐рд╢реАрд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп, рдЙрди рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рдирдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рд╢рд╛рдорд┐рд▓ рд╣реИ:
Dynamic @do = dynamics[0]; foreach (var field in @do) { Console.WriteLine(String.Format("Field Name {0} Value {1} Type {2}", field.Key, field.Value, field.Type)); }
рд╡реНрдпрд╛рдкрдХ рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рд╕реАрдорд╛рдПрдВ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдРрд╕реЗ рдкрд╛рддреНрд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬреЛ рдлрд╝реАрд▓реНрдб рдирд╛рдореЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ SQL рдХреНрд╡реЗрд░реА рд▓рд┐рдЦрддреЗ рд╕рдордп рдЯрдХрд░рд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣рд╛рдБ рдЖрд░рдХреНрд╖рд┐рдд рдкрд╛рддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ:
ред,%] [+ - $! * ()
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЖрдзрд╛рд░ рдореЗрдВ рд░реБрдЪрд┐ рд╣реЛрдЧреА рдФрд░ рдХрдо рд╕реЗ рдХрдо рдШрд░реЗрд▓реВ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдиреЛрдЯ рд▓реЗ рд▓реЗрдВред
рдореИрдВ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЖрдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрджрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рддреИрдпрд╛рд░ рд╕рд╛рдордЧреНрд░реА рд╣реИред