рд╕рднреА рдЧрдВрднреАрд░ рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣, рд╣рдордиреЗ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред MSpec рдХреЛ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдПрдХ рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдХреБрдЫ рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рддрдереНрдп рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдирд╛рдо рдРрд╕реЗ рджрд┐рдЦрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдЖрдк рдкрд╛рда рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЦреАрд░реЗ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдкрдХреЛ рднрд╛рд░реА рдкрд╛рд░реНрд╕рд░ рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рд╣реИред
рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдореЛрдХреА рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдореИрдВ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╛рдВ, рдФрд░ рдореИрдВ рдПрдХ рд╕реНрдЯреЙрдк рдХреЗ рдордЪрд╛рди рдХреЛ рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдкреВрд░реЗ рднрд╛рд░реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд┐рдП рдмрд┐рдирд╛ рд╡рд╣рд╛рдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдзрд╛рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереАред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рд╣рдордиреЗ SQLite рдЖрдЬрд╝рдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЫреЛрдЯреЗ, рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рд░ рдХреЛрдИ рдЙрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рдмрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рдХрд┐ SQLite рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ EntityFramework рдХреНрд╡реЗрд░реАрдЬрд╝ SQL рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд▓реЛрдЧреЛрдВ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ - рдпрд╣ рдЬрдбрд╝реЛрдВ рдХреЗ рдХрд░реАрдм рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - Microsoft рдХреЗ рд▓рд┐рдПред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ .NET рджреБрдирд┐рдпрд╛ рдореЗрдВ, рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рдХрд╛рдлреА рдЧрдВрднреАрд░ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, SQL Server CE рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рддреБрд░рдВрдд рдПрдХ рдХрдард┐рдирд╛рдИ рд╣реИред рд╣рдо MSSQL рдХреЗ рддрд╣рдд edmx рдлрд╝рд╛рдЗрд▓ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЗрд╕рдореЗрдВ SQL CE рдХрд╛ рдХреЛрдИ рд╕рдВрджрд░реНрдн рди рд╣реЛред рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдкрд░реАрдХреНрд╖рдг t4 рдЯреЗрдореНрдкрд▓реЗрдЯ (.tt) рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рд╣рд╛рде рд╕реЗ рд╣рдо рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рд░рдЦрддреЗ рд╣реИрдВ
Install-Package SqlServerCompact Install-Package EntityFramework.SqlServerCompact
рдЕрдЧрд▓рд╛, рд╣рдо SSDL рдХреЛ edmx рд╕реЗ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдЗрд╕рдореЗрдВ SQL CE рдХреЗ рд╕рд╛рде рдмрджрд▓рддреЗ рд╣реИрдВ, рдФрд░ SQL рд╕рд░реНрд╡рд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ SQL CE рд╕рдмрд╕реЗрдЯ рд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддреЗ рд╣реИрдВред
... <# var di = new DirectoryInfo(Host.ResolvePath("..\\DataAccessLayer\\")).FullName; var xmlDocument = new XmlDocument(); xmlDocument.Load(Path.Combine(di,"Entities.edmx")); var xmlNamespaceManager = new XmlNamespaceManager(xmlDocument.NameTable); xmlNamespaceManager.AddNamespace("edmx", "http://schemas.microsoft.com/ado/2009/11/edmx"); xmlNamespaceManager.AddNamespace("ssdl", "http://schemas.microsoft.com/ado/2009/11/edm/ssdl"); // SSDL EDMX var selectSingleNode = xmlDocument.SelectSingleNode("//ssdl:Schema[@Namespace='___']", xmlNamespaceManager); // Provider ((XmlElement) selectSingleNode).SetAttribute("Provider", "System.Data.SqlServerCe.4.0"); // // foreach (XmlElement node in xmlDocument.SelectNodes("//ssdl:Property[@Type='varbinary(max)']", xmlNamespaceManager)) { node.SetAttribute("Type","image"); } #>
рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ ssdl рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдЦрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рддреЗ рд╣реИрдВ - рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рд▓реЙрдЬрд┐рдХрд▓рдиреЗрдо рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдорд╛рдирдХ рдирд╛рдо рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╛рдиреЗ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
<EmbeddedResource Include="SqlCompact.ssdl"> <AutoGen>True</AutoGen> <DesignTime>True</DesignTime> <DependentUpon>SqlCompact.tt</DependentUpon> <LogicalName>SqlCompact.ssdl</LogicalName> </EmbeddedResource>
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП EF рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ, рд╣рдордиреЗ рдбрд┐рдлреЙрд▓реНрдЯ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рдирд┐рдЬреА рдмрдирд╛ рджрд┐рдпрд╛, рдФрд░ рд╣рдордиреЗ рдЬреЛ рдкрдмреНрд▓рд┐рдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдЬреЛрдбрд╝рд╛, рдЙрд╕реЗ рд╣рдореЗрд╢рд╛ IConnectionString рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЗ рд▓рд┐рдП ConnectionString рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдореЗрдВ, рдпрд╣ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдПрдХ рдорд╛рдирдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдк рдХрд░рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП, IConnectionString рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреНрд░рджрд╛рддрд╛ рдХреЛ System.Data.SqlServerCe.4.0 рдФрд░ Persist Security Info = True рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдЕрдиреНрдпрдерд╛ рдпрд╣ рдмрдВрдж рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, connectionString рдореЗрдВ, рдЖрдкрдХреЛ рдореВрд▓ ssdl рдХреЛ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдФрд░ рдКрдкрд░ рд╕рдВрд╕рд╛рдзрди рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рдо рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрдХрд╛рдЗрдпрд╛рдВ рдмрдирд╛рддреЗ рд╣реИрдВред Database.Create () рдФрд░ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВред
рдХреБрд▓:
1) рд╣рдо рдкреИрдХреЗрдЬ рдбрд╛рд▓рддреЗ рд╣реИрдВ
2) рд╣рдо рдПрд╕рдПрд╕рдбреАрдПрд▓ рдХреЛ рдЯреА 4 рд╕реЗ рдХрд╛рдЯрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдкреНрд░рдХрд╛рд░ рдмрджрд▓рддреЗ рд╣реИрдВ
3) SSDL рдореЗрдВ рдФрд░ рдмрджрд▓реЗ рдореЗрдВ рдкреНрд░рджрд╛рддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ (рдпрджрд┐ nuget рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╣реИ, рддреЛ App.config рдореЗрдВ рднреА)
рдпрджрд┐ рдЖрдк рдЕрднреА рднреА SQLite рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рдПрдХ рдСрдЯреЛрдЗрдирдХреНрд░рд┐рдордореЗрдВрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдирд╛рдбрд╝реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХрд╛рд░рдг рдЕрдкрдиреЗ рдЖрдк рдЯреЗрдмрд▓ рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдк рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред