рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ 5 рд╕реЗ 6 рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕-рдлрд░реНрд╕реНрдЯ = рдХреЛрдб-рдлрд░реНрд╕реНрдЯ + рдЪрд╛рд░реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕

рдореИрдВ DataBase-First рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ EFW 5 рд╕реЗ 6 рддрдХ рд╕рдВрдХреНрд░рдордг рдХрд╛ рдПрдХ рд░реЗрдХ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

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

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рд╡реА.рдПрд╕. 2012 рд╕рдорд╛рдзрд╛рди .NET 4.5 рдкрд░ рдмрд┐рдЦрд░реЗ рд╣реБрдП рдбреЗрдЯрд╛рдмреЗрд╕-рдлрд░реНрд╕реНрдЯ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдХреЗ 6 рдЯреБрдХрдбрд╝реЗ рд╣реИрдВред рдФрд░ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ EFW 6 рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рддреЛ рдХреНрдпрд╛ рдФрд░ рдХрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

1. NuGet рдореИрдиреЗрдЬрд░ рдкрд░ рдЬрд╛рдПрдВ (NuGet Package рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ), рдЕрдкрдбреЗрдЯ рдЯреИрдм рдЦреЛрд▓реЗрдВ рдФрд░ Entity Framework 6 (6.0.1) рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреБрд░рд╛рдиреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рд╣рдЯрд╛ рджреЗрдЧреА рдФрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рджреЛ рдирдИ рдЕрд╕реЗрдВрдмрд▓реА рдЬреЛрдбрд╝ рджреЗрдЧреА (EntityFramework.dll, EntityFramework.SqlServer.dll)
рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рдИрдПрдлрдбрдмреНрд▓реНрдпреВ рд╣реИред рдпрджрд┐ рдпрд╣ рд╕рдм рдЕрдВрддрддрдГ рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ - рддреЛ рдЖрдкрдХреЛ app.config (web.config) рдореЗрдВ рд╕рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

2. рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреАред рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рдХрд░рдиреЗ рдореЗрдВ рдЬрд▓реНрджрдмрд╛рдЬреА рди рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрдХрд╛рдИ рдЬрдирд░реЗрдЯрд░ рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗ рдФрд░, рдЗрд╕рд▓рд┐рдП, рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЬрдирд░реЗрдЯрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдЯрд╛рдПрдВ (рдЦреЛрдЬ рдХрд░реЗрдВ рдФрд░ рд╣рдЯрд╛рдПрдВред *)
рд╣рдо рдЪрд╛рд░реНрдЯ рджреГрд╢реНрдп рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рджрд╛рдпрд╛рдБ рдкреЗрдбрд▓ рджрдмрд╛рддреЗ рд╣реИрдВ рдФрд░ "рдХреЛрдб рдЬрдирд░реЗрд╢рди рдЖрдЗрдЯрдо рдЬреЛрдбрд╝реЗрдВ" рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ "EF 6.x DBContextGenerator" рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдкрдиреЗ рд╡реАрдПрд╕ 2012 (рдФрд░ 2013 рдирд╣реАрдВ) рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдЯреВрд▓реНрд╕ 6 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

3. рдЕрдм рд╣рдо рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ рдХрд┐ рдирд╛рдо рд╕реНрдерд╛рди рдмрджрд▓ рдЧрдпрд╛ рд╣реИред
рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкреИрдЯрд░реНрди рдпрд╣ рд╣реИ: System.Data, .Entity.Core рдХреЗ рдмрд╛рджред

рд╕рдм рдХреБрдЫ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред

рдФрд░ рдЕрдм рд░реЗрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

1. рдЦреЛ рджрд┐рдпрд╛ (рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд) рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЬреЛ рдХреЛрдб рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
Context.DeleteObject () рдЕрдм рдФрд░ рдирд╣реАрдВ рд╣реИ, рдЕрдм рд╡рд╛рдВрдЫрд┐рдд DbSet рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рдирд┐рдХрд╛рд▓реЗрдВ () рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред

context.Delete(user); // context.Users.Remove(user); // 


рдкреНрд░рд╕рдВрдЧ.рдЕрдзреНрдпрд╛рдкрди *** рдЕрдм рднреА рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд DbSet рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рдРрдб () рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред
 context.AddToUsers(user); // context.Users.Add(user); // 


DbSet.AddObject рд╡рд┐рдзрд┐ рднреА рдЧрд╛рдпрдм рд╣реЛ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдЖрдк рдЗрд╕реЗ AutoCorrect [AddObject] => [Add] рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдиреНрдирдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред

2. рдЖрдВрддрд░рд┐рдХ рдкреНрд░рдХрд╛рд░ рдмрджрд▓ рдЧрдП рд╣реИрдВред
рдпрджрд┐ рдкрд╣рд▓реЗ рд╕рдВрджрд░реНрдн рдерд╛
рдЕрдм SqlConnection рд╡рд╣рд╛рдВ рдЕрдЪрд╛рдирдХ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ред
рдореЗрд░реЗ рдХреЛрдб рдХрд╛ рдХреНрдпрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЯреВрдЯ рдЧрдпрд╛ (рдХреЛрдб рдХрд╛ рдЕрд░реНрде "рдЕрдбрд╝рдЪрдиреЛрдВ" рдореЗрдВ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдерд╛ рдФрд░ ADO.Net рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдЪреАрдЬреЗрдВ рдХрд░рдирд╛)

3. рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдВрджрд░реНрдн рдореЗрдВ рдШрдЯрдирд╛рдПрдВ рдЧрд╛рдпрдм рд╣реЛ рдЧрдИрдВред
рдпрд╛рдиреА рдЕрдм рд╕рдВрджрд░реНрдн рд╣реИред рд╢рд┐рдВрдЧрдЪреЗрдВрдЬ рдЗрд╡реЗрдВрдЯреНрд╕ рдмрд╕ рдЪрд▓реЗ рдЧрдП рд╣реИрдВред

4. рдЕрдм рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдкреВрд░реНрд╡ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╡реЗ рдЕрдм рд╕рдВрд░рдЪрдирд╛рдУрдВ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИрдВред
рдЙрдиреНрд╣реЗрдВ EntityObject рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред
рдпреБрдкреАрдбреА
рд▓реЗрдЦрдХ рд╕реЗрд▓реНрдл-рдЯреНрд░реИрдХрд┐рдВрдЧ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдпрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рдкреНрд░рдорд╛рдг

5. рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рджреЛ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдереЗред рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рдЯреЗрдмрд▓ рдереЗред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдПрдХ рд╣реА рдирд╛рдо рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрдХреНрд╖рд╛рдПрдВ рдереАрдВред рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ 5 рдкрд░, рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рд▓реЗрдХрд┐рди рдХреЛрдб 6 рдкрд░, рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рдЕрдкрд╡рд╛рдж рдкрдХрдбрд╝рд╛, рдирд╛рдо рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЕрд╕рдВрднрд╡рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (рдпреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдорд╕реНрдерд╛рди рд╕реЗ рдПрдХ рд╣реА рд╡рд░реНрдЧ рд╕рдВрджреЗрд╢ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП)

рдкреИрд░рд╛рдЧреНрд░рд╛рдл 3 рдФрд░ 4 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ DataBase-First рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреЛ рдХреБрдЫ рднреА рд░рд╣рддрд╛ рд╣реИ рд╡рд╣ рдХреЛрдб-рдкреНрд░рдердо + рд╕реНрдХреНрд░реАрди рдПрдХ рд╡рд░реНрдЧ рдЖрд░реЗрдЦ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИред

рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдШрд╛рддрдХ - 6.0.1 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореЗрд░рд╛ рдХреЛрдб рдЕрдзрд┐рдХ рдзреАрд░реЗ-рдзреАрд░реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред
рд╢рд╛рдпрдж рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЕрдиреНрдп, рдЕрдзрд┐рдХ рдЗрд╖реНрдЯрддрдо рдкреНрд░рд╢реНрди рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд▓рдЧреЗ рдФрд░ рд╡реЗ EFW 5 рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рдЕрдиреБрдХреНрд░рдорд┐рддреЛрдВ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдПред
рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдмрд╕ рдЕрдзрд┐рдХ рдЦрд╛рд▓реА рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕рдВрдХреНрд░рдордг рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рджрд┐рдпрд╛ред

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


All Articles