MSSQL рд╕реЗ MySQL рдФрд░ BLToolkit рдХреА рдУрд░ рдЬрд╛рддреЗ рд╕рдордп рдиреБрдХрд╕рд╛рди

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ MSSQL 2008 рд╣реИ
рд╣рдо MySQL рд╕рдВрд╕реНрдХрд░рдг 5.x рдЪрд╛рд╣рддреЗ рд╣реИрдВ

рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдХреНрдпреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

.NET рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП, MySQL рдХреЗ рд▓рд┐рдП MSSQL рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рд╕рдВрднрд╡рддрдГ рдорд░реНрд╕рд┐рдбреАрдЬ рд╕реЗ рдХреБрдЫ рдЖрд╕рд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдЕрдЪреНрдЫреЗ рдХреА рдЖрджрдд рдбрд╛рд▓ рд▓реЗрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдХрдо рд╕реЗ рдХрдо рджреЛ рдХрд╛рд░рдг рд╣реИрдВред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ MSSQL рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо LINQ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕рдВрдХреНрд░рдордг рд╣реЛрдиреЗ рдкрд░, рдореИрдВ рдЗрд╕ рдЕрд╡рд╕рд░ рдХреЛ рдирд╣реАрдВ рдЦреЛрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк BLToolkit рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред

рд╣рдо рдкрд▓рд╛рдпрди рдХрд░рддреЗ рд╣реИрдВ

рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмрд╛рдд рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИред MS рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, BLToolkit, рдкреНрд░рдХрд╛рд╢ ORM рдХреЗ рд╡рд░реНрдЧ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрдиреЗрдХреНрд╢рди рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реИрдВ, рд▓реЗрдХрд┐рди LINQ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╕рдорд╛рди рд░рд╣реЗрдВрдЧреАред

рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреИрд╕реЗред


рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░реЗрдВ

рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ MySQL рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреНрд░рдХрд╛рд░ рдХреЗ MSSQL рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐ рдХрдЯ рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрд░реЛрдд рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ, рд╣рдордиреЗ varchar рдХреЛ nvarchar, рдФрд░ datetime2 рдХреЛ datetime рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдкрд╣рд▓реЗ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдлрд╝реАрд▓реНрдб рдиреЗ рдХреЗрд╡рд▓ рдпреВрдирд┐рдХреЛрдб рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рдерд╛ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдбреЗрдЯрд╛рдЯрд╛рдЗрдо рдХреЛ 100 рдиреИрдиреЛрд╕реЗрдХрдВрдб рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА, рдЗрд╕ рддрдереНрдп рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд┐ рдЕрдЧрд░ рд╣рдо рдбреЗрдЯрд╛рдЗрдо рдбрд╛рд▓рддреЗ рд╣реИрдВред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдирд┐рдХрд╛рд▓реЗрдВ, рдлрд┐рд░ рдЧреЛрд▓рд╛рдИ рдХреЗ рдХрд╛рд░рдг рдорд╛рди рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ (рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдЧрд┐рд░ рдЧрдпрд╛ рдФрд░ рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдбреЗрдЯрдЯрд╛рдЗрдо 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛)ред

LINQ рдореИрдкрд┐рдВрдЧ

рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЗ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред
MSSQL рдХреЗ рд▓рд┐рдП .NET рдХреНрд▓рд╛рд╕ рдореЗрдВ, рдЗрд╕реЗ рдХреБрдЫ рдЕрдзреВрд░реЗ рдмрд╛рдпрдирд░реА рдЯрд╛рдЗрдк рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЖрдкрдХреЛ LINQ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рд╣реИрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
MySQL рдореЗрдВ, рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдбреЗрдЯрдЯрд╛рдЗрдо рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреЛ рдиреБрдХрд╕рд╛рди рд╣реИрдВ
  1. рдирд┐рд░реНрдпрд╛рдд рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╕рднреА рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рд╕реЗрдЯ), рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд░реНрдпрд╛рдд рдХреЗ рдмрд╛рдж рдареЛрд╕ рд╢реВрдиреНрдп рд╣реЛрдЧрд╛ рдЬреЛ BLToolkit рдХреЛ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ
  2. рдирд┐рд░реНрдзрд╛рд░рд┐рдд DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP рд╕реЗрдЯ рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рдлрд╝реАрд▓реНрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо MSSQL рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред ( MySQL рдореЗрдВ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝реЗрдВ)

рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЪрд▓ рд░рд╣реА рд╣реИ рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрджрд┐ рдорд╛рдирдЪрд┐рддреНрд░рдг рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рдХреЗ рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ MS LINQ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд░реНрдЧ рдлрд╝реАрд▓реНрдб рдХреЛ [Column] рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ BLToolkit рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝реАрд▓реНрдб рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред [MapIgnore]

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

рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд╛рднреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

рдпрджрд┐ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИред
рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬрд┐рд╕рдиреЗ рдЬрд╛рдБрдЪ рдХреА рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ NULL рдлрд╝реАрд▓реНрдб .NET .NET рдореЗрдВ рдПрдХ рдЕрд╢рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдпрд╣ рдирд┐рдХрд▓рд╛ рдХрд┐ BLToolkit defaults to string.Emptyред
рдпрд╣ рдПрдХ рдЕрдкреНрд░рд┐рдп рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХрд╣реАрдВ рдЦрдбрд╝рд╛ рд╣реИ if(value == null) ред

рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдореИрдкрд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛
[NullValue(typeof(string), null)]

рдЖрдЦрд┐рд░реА рдЦрд░рд╛рдмреА рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдмрд╛рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ рдПрдХ рдЧрд╛рдЗрдб рдЯрд╛рдЗрдк рдлреАрд▓реНрдб рдореИрдкрд┐рдВрдЧред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк MySQL рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЧрд╛рдЗрдбрд┐рдВрдЧ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИред
рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╡рд╣рд╛рдБ рдЪрд╛рд░ (36) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдкрд░ Guid.Parse рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рдХреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдЪрд╛рд░ (36) рдлрд╝реАрд▓реНрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
 [TableName("Boxes")] public class Box: { [PrimaryKey] public Guid BoxId { get; set; } } 

рдЬрдм рддрдХ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдбрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рддрдм рддрдХ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред
рдФрд░ рднрд▓реЗ рд╣реА рдореИрдкрд┐рдВрдЧ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдЖрдк рдЗрд╕ рдлреАрд▓реНрдб рдХреЛ string рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди BLToolkit рдЕрднреА рднреА Guide.Parse рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧреА
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рдХреЛрдб рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬрдм StringMayContainsGuid рдХреЛ рдЪрд╛рд░ (36) рд╕реЗ рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЧрд╛рдЗрдб рдирд╣реАрдВ рд╣реИред
 [TableName("Boxes")] public class Box: { public string StringMayContainsGuid { get; set; } } 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рдХреЛ varchar рдореЗрдВ рдмрджрд▓рдирд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ:
 [TestFixture, Category("Functional")] public class DbFunctionalTest { private readonly IMysqlClient mysqlClient = new MysqlClient(); //        [Test] public void ReadAllTables() { var dbMappingClasses = from classType in Assembly.GetExecutingAssembly().GetTypes() where classType.IsClass && classType.GetCustomAttributes(typeof(TableNameAttribute), true).Length > 0 && classType.Namespace == typeof(DbFunctionalTest).Namespace select classType; mysqlClient.PerformRequest(db => { foreach (Type dbMappingClass in dbMappingClasses) { var tableName = ((TableNameAttribute) dbMappingClass.GetCustomAttributes(typeof (TableNameAttribute), true).First()).Name; try { db.SetCommand(CommandType.Text, string.Format("SELECT * FROM {0}", tableName)).ExecuteList(dbMappingClass); }catch(Exception e) { throw new Exception(string.Format("Can not read all records from table {0}", tableName), e); } } }); } } 


рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ

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

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


All Articles