diff --git a/9781430250258.jpg b/9781430250258.jpg new file mode 100644 index 0000000..a16b43a Binary files /dev/null and b/9781430250258.jpg differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService.sln b/ApressBook SourceCode/ApressCloudService/ApressCloudService.sln new file mode 100644 index 0000000..e58841d --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService.sln @@ -0,0 +1,38 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{CC5FD16D-436D-48AD-A40C-5A424C6E3E79}") = "ApressCloudService", "ApressCloudService\ApressCloudService.ccproj", "{E0B1B362-C19B-4007-9377-4A58E6193C4D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApressODataService", "ApressODataService\ApressODataService.csproj", "{30B501C7-CE73-49DD-B95F-88A98D6C5461}" +EndProject +Global + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 3 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = https://samidipbasu.visualstudio.com/defaultcollection + SccLocalPath0 = . + SccProjectUniqueName1 = ApressCloudService\\ApressCloudService.ccproj + SccProjectName1 = ApressCloudService + SccLocalPath1 = ApressCloudService + SccProjectUniqueName2 = ApressODataService\\ApressODataService.csproj + SccProjectName2 = ApressODataService + SccLocalPath2 = ApressODataService + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E0B1B362-C19B-4007-9377-4A58E6193C4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0B1B362-C19B-4007-9377-4A58E6193C4D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0B1B362-C19B-4007-9377-4A58E6193C4D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0B1B362-C19B-4007-9377-4A58E6193C4D}.Release|Any CPU.Build.0 = Release|Any CPU + {30B501C7-CE73-49DD-B95F-88A98D6C5461}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30B501C7-CE73-49DD-B95F-88A98D6C5461}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30B501C7-CE73-49DD-B95F-88A98D6C5461}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30B501C7-CE73-49DD-B95F-88A98D6C5461}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService.v11.suo b/ApressBook SourceCode/ApressCloudService/ApressCloudService.v11.suo new file mode 100644 index 0000000..8fc336b Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService.v11.suo differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService.vssscc b/ApressBook SourceCode/ApressCloudService/ApressCloudService.vssscc new file mode 100644 index 0000000..6cb031b --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/ApressCloudService.ccproj b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ApressCloudService.ccproj new file mode 100644 index 0000000..99770cf --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ApressCloudService.ccproj @@ -0,0 +1,59 @@ + + + + + Debug + AnyCPU + 1.8 + e0b1b362-c19b-4007-9377-4a58e6193c4d + Library + Properties + ApressCloudService + ApressCloudService + True + ApressCloudService + SAK + SAK + SAK + SAK + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + ApressODataService + {30b501c7-ce73-49dd-b95f-88a98d6c5461} + True + Web + ApressODataService + True + + + + + 10.0 + $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Windows Azure Tools\1.8\ + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/ApressCloudService.ccproj.user b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ApressCloudService.ccproj.user new file mode 100644 index 0000000..e8880ae --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ApressCloudService.ccproj.user @@ -0,0 +1,8 @@ + + + + Cloud + Release + False + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/ApressCloudService.ccproj.vspscc b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ApressCloudService.ccproj.vspscc new file mode 100644 index 0000000..b6d3289 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ApressCloudService.ccproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/ServiceConfiguration.Cloud.cscfg b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ServiceConfiguration.Cloud.cscfg new file mode 100644 index 0000000..be6f1a7 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ServiceConfiguration.Cloud.cscfg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/ServiceConfiguration.Local.cscfg b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ServiceConfiguration.Local.cscfg new file mode 100644 index 0000000..be6f1a7 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ServiceConfiguration.Local.cscfg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/ServiceDefinition.csdef b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ServiceDefinition.csdef new file mode 100644 index 0000000..392c04f --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/ServiceDefinition.csdef @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Debug/ServiceConfiguration.cscfg b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Debug/ServiceConfiguration.cscfg new file mode 100644 index 0000000..74a90ba --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Debug/ServiceConfiguration.cscfg @@ -0,0 +1,18 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Debug/ServiceDefinition.csdef b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Debug/ServiceDefinition.csdef new file mode 100644 index 0000000..f517005 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Debug/ServiceDefinition.csdef @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/ServiceConfiguration.cscfg b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/ServiceConfiguration.cscfg new file mode 100644 index 0000000..df0150a --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/ServiceConfiguration.cscfg @@ -0,0 +1,18 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/ServiceDefinition.csdef b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/ServiceDefinition.csdef new file mode 100644 index 0000000..f517005 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/ServiceDefinition.csdef @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/ValidationIssues.xml b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/ValidationIssues.xml new file mode 100644 index 0000000..28de546 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/ValidationIssues.xml @@ -0,0 +1,14 @@ + + + + + ApressODataService + ServiceConfiguration.Cloud.cscfg + WAT170 + bin\Release\ServiceConfiguration.cscfg + True + Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString;ApressODataService;ServiceConfiguration.Cloud.cscfg + WATValidationIssueWarning + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/app.publish/ApressCloudService.cspkg b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/app.publish/ApressCloudService.cspkg new file mode 100644 index 0000000..2235f4d Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/app.publish/ApressCloudService.cspkg differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/app.publish/ServiceConfiguration.Cloud.cscfg b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/app.publish/ServiceConfiguration.Cloud.cscfg new file mode 100644 index 0000000..df0150a --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/bin/Release/app.publish/ServiceConfiguration.Cloud.cscfg @@ -0,0 +1,18 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/ServiceDefinition.csdef b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/ServiceDefinition.csdef new file mode 100644 index 0000000..eea00c6 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/ServiceDefinition.csdef @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/ServiceDefinition.rd b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/ServiceDefinition.rd new file mode 100644 index 0000000..4bc7877 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/ServiceDefinition.rd @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/ServiceDefinition.rdsc b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/ServiceDefinition.rdsc new file mode 100644 index 0000000..41351d3 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/ServiceDefinition.rdsc @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/RoleModel.xml b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/RoleModel.xml new file mode 100644 index 0000000..ebd3f0d --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/RoleModel.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/RuntimeSetup.Manifest b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/RuntimeSetup.Manifest new file mode 100644 index 0000000..26b8afa --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/RuntimeSetup.Manifest @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/__entrypoint.txt b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/__entrypoint.txt new file mode 100644 index 0000000..a02093d --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/__entrypoint.txt @@ -0,0 +1 @@ +bin\ApressODataService.dll \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/ApressBookModel.edmx.diagram b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/ApressBookModel.edmx.diagram new file mode 100644 index 0000000..53270d8 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/ApressBookModel.edmx.diagram @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/ApressOData.svc b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/ApressOData.svc new file mode 100644 index 0000000..a8103fb --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/ApressOData.svc @@ -0,0 +1,3 @@ + + +<%@ ServiceHost Language="C#" Factory="System.Data.Services.DataServiceHostFactory, Microsoft.Data.Services, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Service="ApressODataService.ApressOData" %> diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/Web.config b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/Web.config new file mode 100644 index 0000000..1dab85d --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/Web.config @@ -0,0 +1,74 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/ApressODataService.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/ApressODataService.dll new file mode 100644 index 0000000..2106a91 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/ApressODataService.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/EntityFramework.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/EntityFramework.dll new file mode 100644 index 0000000..2618485 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/EntityFramework.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.Edm.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.Edm.dll new file mode 100644 index 0000000..4b116d4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.Edm.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.OData.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.OData.dll new file mode 100644 index 0000000..6d9d0b9 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.OData.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.Services.Client.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.Services.Client.dll new file mode 100644 index 0000000..bed06b7 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.Services.Client.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.Services.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.Services.dll new file mode 100644 index 0000000..a9add63 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.Data.Services.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.WindowsAzure.Configuration.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.WindowsAzure.Configuration.dll new file mode 100644 index 0000000..c5e7797 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.WindowsAzure.Configuration.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.WindowsAzure.Diagnostics.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.WindowsAzure.Diagnostics.dll new file mode 100644 index 0000000..665da2a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.WindowsAzure.Diagnostics.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.WindowsAzure.StorageClient.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.WindowsAzure.StorageClient.dll new file mode 100644 index 0000000..a2760d4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/Microsoft.WindowsAzure.StorageClient.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/System.Spatial.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/System.Spatial.dll new file mode 100644 index 0000000..6a8ee88 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/bin/System.Spatial.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/packages.config b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/packages.config new file mode 100644 index 0000000..0c31569 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/approot/packages.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/Diagnostics.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/Diagnostics.dll new file mode 100644 index 0000000..e3a58eb Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/Diagnostics.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/IISConfigurator.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/IISConfigurator.exe new file mode 100644 index 0000000..d75d499 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/IISConfigurator.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/Microsoft.WindowsAzure.Internal.RuntimeServer.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/Microsoft.WindowsAzure.Internal.RuntimeServer.dll new file mode 100644 index 0000000..403941d Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/Microsoft.WindowsAzure.Internal.RuntimeServer.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/Microsoft.WindowsAzure.ServiceRuntime.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/Microsoft.WindowsAzure.ServiceRuntime.dll new file mode 100644 index 0000000..2b9b23e Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/Microsoft.WindowsAzure.ServiceRuntime.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaHostBootstrapper.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaHostBootstrapper.exe new file mode 100644 index 0000000..04433b4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaHostBootstrapper.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaHostBootstrapper.exe.config b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaHostBootstrapper.exe.config new file mode 100644 index 0000000..0368135 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaHostBootstrapper.exe.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaIISHost.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaIISHost.exe new file mode 100644 index 0000000..ea5412c Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaIISHost.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaIISHost.exe.config b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaIISHost.exe.config new file mode 100644 index 0000000..5052598 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaIISHost.exe.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaRuntimeProxy.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaRuntimeProxy.dll new file mode 100644 index 0000000..fc91a7a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaRuntimeProxy.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaWebHost.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaWebHost.exe new file mode 100644 index 0000000..f93a8c3 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaWebHost.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaWorkerHost.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaWorkerHost.exe new file mode 100644 index 0000000..861f309 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/WaWorkerHost.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/msshrtmi.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/msshrtmi.dll new file mode 100644 index 0000000..60475d4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/msshrtmi.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/mswasr.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/mswasr.dll new file mode 100644 index 0000000..cfad26f Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/mswasr.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/mswasri.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/mswasri.dll new file mode 100644 index 0000000..75501b3 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x64/mswasri.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/Diagnostics.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/Diagnostics.dll new file mode 100644 index 0000000..183cf15 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/Diagnostics.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/IISConfigurator.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/IISConfigurator.exe new file mode 100644 index 0000000..30c61e5 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/IISConfigurator.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/Microsoft.WindowsAzure.Internal.RuntimeServer.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/Microsoft.WindowsAzure.Internal.RuntimeServer.dll new file mode 100644 index 0000000..74c573a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/Microsoft.WindowsAzure.Internal.RuntimeServer.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/Microsoft.WindowsAzure.ServiceRuntime.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/Microsoft.WindowsAzure.ServiceRuntime.dll new file mode 100644 index 0000000..316a279 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/Microsoft.WindowsAzure.ServiceRuntime.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaHostBootstrapper.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaHostBootstrapper.exe new file mode 100644 index 0000000..d22e741 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaHostBootstrapper.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaHostBootstrapper.exe.config b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaHostBootstrapper.exe.config new file mode 100644 index 0000000..0368135 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaHostBootstrapper.exe.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaIISHost.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaIISHost.exe new file mode 100644 index 0000000..71dd3f5 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaIISHost.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaRuntimeProxy.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaRuntimeProxy.dll new file mode 100644 index 0000000..f04d926 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaRuntimeProxy.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaWebHost.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaWebHost.exe new file mode 100644 index 0000000..c59ca4d Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaWebHost.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaWorkerHost.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaWorkerHost.exe new file mode 100644 index 0000000..d9ea751 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/WaWorkerHost.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/msshrtmi.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/msshrtmi.dll new file mode 100644 index 0000000..82c6e6a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/msshrtmi.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/mswasr.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/mswasr.dll new file mode 100644 index 0000000..23222dd Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/mswasr.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/mswasri.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/mswasri.dll new file mode 100644 index 0000000..1e6ebc8 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/base/x86/mswasri.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/FileListener.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/FileListener.dll new file mode 100644 index 0000000..b52ae91 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/FileListener.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonAgent.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonAgent.dll new file mode 100644 index 0000000..95204ac Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonAgent.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonAgentHost.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonAgentHost.exe new file mode 100644 index 0000000..8cc846a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonAgentHost.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonConfig.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonConfig.dll new file mode 100644 index 0000000..b1a9131 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonConfig.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonDiagnostics.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonDiagnostics.dll new file mode 100644 index 0000000..87791cf Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonDiagnostics.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonEvents.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonEvents.dll new file mode 100644 index 0000000..cf76e51 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonEvents.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonNetTransport.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonNetTransport.dll new file mode 100644 index 0000000..4008eef Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonNetTransport.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonQuery.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonQuery.dll new file mode 100644 index 0000000..4178243 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonQuery.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonTables.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonTables.dll new file mode 100644 index 0000000..dae64ef Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/MonTables.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/SysCounterListener.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/SysCounterListener.dll new file mode 100644 index 0000000..e6ba146 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/SysCounterListener.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/SystemEventsListener.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/SystemEventsListener.dll new file mode 100644 index 0000000..dd8fbfc Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/SystemEventsListener.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/ma.xsd b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/ma.xsd new file mode 100644 index 0000000..60a01c0 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/ma.xsd @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/maStatic.xsd b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/maStatic.xsd new file mode 100644 index 0000000..3067173 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/maStatic.xsd @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/query.xsd b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/query.xsd new file mode 100644 index 0000000..a3882d3 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/query.xsd @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/shared.xsd b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/shared.xsd new file mode 100644 index 0000000..649cb9c --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/schema/1.0/shared.xsd @@ -0,0 +1,921 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/secutil.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/secutil.dll new file mode 100644 index 0000000..144e86e Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/diagnostics/x64/monitor/secutil.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/Diagnostics.csplugin b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/Diagnostics.csplugin new file mode 100644 index 0000000..4912808 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/Diagnostics.csplugin @@ -0,0 +1,12 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/DiagnosticsAgent.exe b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/DiagnosticsAgent.exe new file mode 100644 index 0000000..7054863 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/DiagnosticsAgent.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/DiagnosticsAgent.exe.config b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/DiagnosticsAgent.exe.config new file mode 100644 index 0000000..ba459ad --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/DiagnosticsAgent.exe.config @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/Microsoft.WindowsAzure.Diagnostics.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/Microsoft.WindowsAzure.Diagnostics.dll new file mode 100644 index 0000000..3b97c5c Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/Microsoft.WindowsAzure.Diagnostics.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/Microsoft.WindowsAzure.StorageClient.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/Microsoft.WindowsAzure.StorageClient.dll new file mode 100644 index 0000000..8ac92f2 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/Microsoft.WindowsAzure.StorageClient.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/mswapd.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/mswapd.dll new file mode 100644 index 0000000..1596961 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/csx/Release/roles/ApressODataService/plugins/Diagnostics/mswapd.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Debug/ApressCloudService.ccproj.FileListAbsolute.txt b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Debug/ApressCloudService.ccproj.FileListAbsolute.txt new file mode 100644 index 0000000..2ced6e1 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Debug/ApressCloudService.ccproj.FileListAbsolute.txt @@ -0,0 +1,2 @@ +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\bin\Debug\ServiceConfiguration.cscfg +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\bin\Debug\ServiceDefinition.csdef diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressCloudService.ccproj.FileListAbsolute.txt b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressCloudService.ccproj.FileListAbsolute.txt new file mode 100644 index 0000000..5cadec4 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressCloudService.ccproj.FileListAbsolute.txt @@ -0,0 +1,17 @@ +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\bin\Release\ServiceConfiguration.cscfg +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\bin\Release\ServiceDefinition.csdef +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\bin\Release\ValidationIssues.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\ApressBookModel.edmx.diagram +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\ApressOData.svc +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\bin\ApressODataService.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\bin\EntityFramework.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\bin\Microsoft.Data.Edm.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\bin\Microsoft.Data.OData.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\bin\Microsoft.Data.Services.Client.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\bin\Microsoft.Data.Services.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\bin\Microsoft.WindowsAzure.Configuration.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\bin\Microsoft.WindowsAzure.Diagnostics.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\bin\Microsoft.WindowsAzure.StorageClient.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\bin\System.Spatial.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\packages.config +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressCloudService\obj\Release\ApressODataService\Web.config diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/ApressBookModel.edmx.diagram b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/ApressBookModel.edmx.diagram new file mode 100644 index 0000000..53270d8 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/ApressBookModel.edmx.diagram @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/ApressOData.svc b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/ApressOData.svc new file mode 100644 index 0000000..a8103fb --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/ApressOData.svc @@ -0,0 +1,3 @@ + + +<%@ ServiceHost Language="C#" Factory="System.Data.Services.DataServiceHostFactory, Microsoft.Data.Services, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Service="ApressODataService.ApressOData" %> diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/Web.config b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/Web.config new file mode 100644 index 0000000..1dab85d --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/Web.config @@ -0,0 +1,74 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/ApressODataService.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/ApressODataService.dll new file mode 100644 index 0000000..2106a91 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/ApressODataService.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/EntityFramework.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/EntityFramework.dll new file mode 100644 index 0000000..2618485 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/EntityFramework.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.Edm.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.Edm.dll new file mode 100644 index 0000000..4b116d4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.Edm.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.OData.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.OData.dll new file mode 100644 index 0000000..6d9d0b9 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.OData.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.Services.Client.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.Services.Client.dll new file mode 100644 index 0000000..bed06b7 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.Services.Client.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.Services.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.Services.dll new file mode 100644 index 0000000..a9add63 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.Data.Services.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.WindowsAzure.Configuration.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.WindowsAzure.Configuration.dll new file mode 100644 index 0000000..c5e7797 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.WindowsAzure.Configuration.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.WindowsAzure.Diagnostics.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.WindowsAzure.Diagnostics.dll new file mode 100644 index 0000000..665da2a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.WindowsAzure.Diagnostics.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.WindowsAzure.StorageClient.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.WindowsAzure.StorageClient.dll new file mode 100644 index 0000000..a2760d4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/Microsoft.WindowsAzure.StorageClient.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/System.Spatial.dll b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/System.Spatial.dll new file mode 100644 index 0000000..6a8ee88 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/bin/System.Spatial.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/packages.config b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/packages.config new file mode 100644 index 0000000..0c31569 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressCloudService/obj/Release/ApressODataService/packages.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBook.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBook.cs new file mode 100644 index 0000000..0ddee8c --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBook.cs @@ -0,0 +1,24 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ApressODataService +{ + using System; + using System.Collections.Generic; + + public partial class ApressBook + { + public int ID { get; set; } + public string ApressBookISBN { get; set; } + public string ApressBookName { get; set; } + public string ApressBookTechnology { get; set; } + public string ApressBookAuthor { get; set; } + public System.DateTime ApressBookPublishedDate { get; set; } + } +} diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.Context.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.Context.cs new file mode 100644 index 0000000..6ad31fb --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.Context.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ApressODataService +{ + using System; + using System.Data.Entity; + using System.Data.Entity.Infrastructure; + + public partial class ApressBookDBEntities : DbContext + { + public ApressBookDBEntities() + : base("name=ApressBookDBEntities") + { + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + + public DbSet ApressBooks { get; set; } + } +} diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.Context.tt b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.Context.tt new file mode 100644 index 0000000..16e393d --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.Context.tt @@ -0,0 +1,735 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"ApressBookModel.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var loader = new EdmMetadataLoader(textTransform.Host, textTransform.Errors); +var itemCollection = loader.CreateEdmItemCollection(inputFile); +var modelNamespace = loader.GetModelNamespace(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +var container = itemCollection.OfType().FirstOrDefault(); +if (container == null) +{ + return string.Empty; +} +#> +//------------------------------------------------------------------------------ +// +// <#=GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ + +<# + +var codeNamespace = code.VsNamespaceSuggestion(); +if (!String.IsNullOrEmpty(codeNamespace)) +{ +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<# + PushIndent(" "); +} + +#> +using System; +using System.Data.Entity; +using System.Data.Entity.Infrastructure; +<# +if (container.FunctionImports.Any()) +{ +#> +using System.Data.Objects; +using System.Data.Objects.DataClasses; +using System.Linq; +<# +} +#> + +<#=Accessibility.ForType(container)#> partial class <#=code.Escape(container)#> : DbContext +{ + public <#=code.Escape(container)#>() + : base("name=<#=container.Name#>") + { +<# +if (!loader.IsLazyLoadingEnabled(container)) +{ +#> + this.Configuration.LazyLoadingEnabled = false; +<# +} +#> + } + + protected override void OnModelCreating(DbModelBuilder modelBuilder) + { + throw new UnintentionalCodeFirstException(); + } + +<# + foreach (var entitySet in container.BaseEntitySets.OfType()) + { +#> + <#=codeStringGenerator.DbSet(entitySet)#> +<# + } + + foreach (var edmFunction in container.FunctionImports) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: false); + } +#> +} +<# + +if (!String.IsNullOrEmpty(codeNamespace)) +{ + PopIndent(); +#> +} +<# +} +#> +<#+ + +private void WriteFunctionImport(TypeMapper typeMapper, CodeStringGenerator codeStringGenerator, EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) +{ + if (typeMapper.IsComposable(edmFunction)) + { +#> + + [EdmFunction("<#=edmFunction.NamespaceName#>", "<#=edmFunction.Name#>")] + <#=codeStringGenerator.ComposableFunctionMethod(edmFunction, modelNamespace)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ComposableCreateQuery(edmFunction, modelNamespace)#> + } +<#+ + } + else + { +#> + + <#=codeStringGenerator.FunctionMethod(edmFunction, modelNamespace, includeMergeOption)#> + { +<#+ + codeStringGenerator.WriteFunctionParameters(edmFunction, WriteFunctionParameter); +#> + <#=codeStringGenerator.ExecuteFunction(edmFunction, modelNamespace, includeMergeOption)#> + } +<#+ + if (typeMapper.GenerateMergeOptionFunction(edmFunction, includeMergeOption)) + { + WriteFunctionImport(typeMapper, codeStringGenerator, edmFunction, modelNamespace, includeMergeOption: true); + } + } +} + +public void WriteFunctionParameter(string name, string isNotNull, string notNullInit, string nullInit) +{ +#> + var <#=name#> = <#=isNotNull#> ? + <#=notNullInit#> : + <#=nullInit#>; + +<#+ +} + +public const string TemplateId = "CSharp_DbContext_Context_EF5"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navigationProperty) + { + var endType = _typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForProperty(navigationProperty)), + navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navigationProperty), + _code.SpaceAfter(Accessibility.ForGetter(navigationProperty)), + _code.SpaceAfter(Accessibility.ForSetter(navigationProperty))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + parameter.RawClrTypeName + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => p.FunctionParameterType + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => p.FunctionParameterType + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public class EdmMetadataLoader +{ + private readonly IDynamicHost _host; + private readonly System.Collections.IList _errors; + + public EdmMetadataLoader(IDynamicHost host, System.Collections.IList errors) + { + ArgumentNotNull(host, "host"); + ArgumentNotNull(errors, "errors"); + + _host = host; + _errors = errors; + } + + public IEnumerable CreateEdmItemCollection(string sourcePath) + { + ArgumentNotNull(sourcePath, "sourcePath"); + + if (!ValidateInputPath(sourcePath)) + { + return new EdmItemCollection(); + } + + var schemaElement = LoadRootElement(_host.ResolvePath(sourcePath)); + if (schemaElement != null) + { + using (var reader = schemaElement.CreateReader()) + { + IList errors; + var itemCollection = MetadataItemCollectionFactory.CreateEdmItemCollection(new[] { reader }, out errors); + + ProcessErrors(errors, sourcePath); + + return itemCollection; + } + } + return new EdmItemCollection(); + } + + public string GetModelNamespace(string sourcePath) + { + ArgumentNotNull(sourcePath, "sourcePath"); + + if (!ValidateInputPath(sourcePath)) + { + return string.Empty; + } + + var model = LoadRootElement(_host.ResolvePath(sourcePath)); + if (model == null) + { + return string.Empty; + } + + var attribute = model.Attribute("Namespace"); + return attribute != null ? attribute.Value : ""; + } + + private bool ValidateInputPath(string sourcePath) + { + if (sourcePath == "$" + "edmxInputFile" + "$") + { + _errors.Add( + new CompilerError(_host.TemplateFile ?? sourcePath, 0, 0, string.Empty, + GetResourceString("Template_ReplaceVsItemTemplateToken"))); + return false; + } + + return true; + } + + public XElement LoadRootElement(string sourcePath) + { + ArgumentNotNull(sourcePath, "sourcePath"); + + var root = XElement.Load(sourcePath, LoadOptions.SetBaseUri | LoadOptions.SetLineInfo); + return root.Elements() + .Where(e => e.Name.LocalName == "Runtime") + .Elements() + .Where(e => e.Name.LocalName == "ConceptualModels") + .Elements() + .Where(e => e.Name.LocalName == "Schema") + .FirstOrDefault() + ?? root; + } + + private void ProcessErrors(IEnumerable errors, string sourceFilePath) + { + foreach (var error in errors) + { + _errors.Add( + new CompilerError( + error.SchemaLocation ?? sourceFilePath, + error.Line, + error.Column, + error.ErrorCode.ToString(CultureInfo.InvariantCulture), + error.Message) + { + IsWarning = error.Severity == EdmSchemaErrorSeverity.Warning + }); + } + } + + public bool IsLazyLoadingEnabled(EntityContainer container) + { + string lazyLoadingAttributeValue; + var lazyLoadingAttributeName = MetadataConstants.EDM_ANNOTATION_09_02 + ":LazyLoadingEnabled"; + bool isLazyLoading; + return !MetadataTools.TryGetStringMetadataPropertySetting(container, lazyLoadingAttributeName, out lazyLoadingAttributeValue) + || !bool.TryParse(lazyLoadingAttributeValue, out isLazyLoading) + || isLazyLoading; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} + +private static readonly Lazy ResourceManager = + new Lazy( + () => new System.Resources.ResourceManager("System.Data.Entity.Design", typeof(MetadataItemCollectionFactory).Assembly), isThreadSafe: true); + +public static string GetResourceString(string resourceName) +{ + ArgumentNotNull(resourceName, "resourceName"); + + return ResourceManager.Value.GetString(resourceName, null); +} + +#> \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.Designer.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.Designer.cs new file mode 100644 index 0000000..ece10a0 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.Designer.cs @@ -0,0 +1,4 @@ +// Default code generation is disabled for model 'C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\ApressBookModel.edmx'. +// To enable default code generation, change the value of the 'Code Generation Strategy' designer +// property to an alternate value. This property is available in the Properties Window when the model is +// open in the designer. \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.cs new file mode 100644 index 0000000..0c4c97d --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.cs @@ -0,0 +1,9 @@ +//------------------------------------------------------------------------------ +// +// This code was generated from a template. +// +// Manual changes to this file may cause unexpected behavior in your application. +// Manual changes to this file will be overwritten if the code is regenerated. +// +//------------------------------------------------------------------------------ + diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.edmx b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.edmx new file mode 100644 index 0000000..6b3da12 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.edmx @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.edmx.diagram b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.edmx.diagram new file mode 100644 index 0000000..53270d8 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.edmx.diagram @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.tt b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.tt new file mode 100644 index 0000000..6ac3521 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressBookModel.tt @@ -0,0 +1,845 @@ +<#@ template language="C#" debug="false" hostspecific="true"#> +<#@ include file="EF.Utility.CS.ttinclude"#><#@ + output extension=".cs"#><# + +const string inputFile = @"ApressBookModel.edmx"; +var textTransform = DynamicTextTransformation.Create(this); +var code = new CodeGenerationTools(this); +var ef = new MetadataTools(this); +var typeMapper = new TypeMapper(code, ef, textTransform.Errors); +var fileManager = EntityFrameworkTemplateFileManager.Create(this); +var itemCollection = new EdmMetadataLoader(textTransform.Host, textTransform.Errors).CreateEdmItemCollection(inputFile); +var codeStringGenerator = new CodeStringGenerator(code, typeMapper, ef); + +if (!typeMapper.VerifyCaseInsensitiveTypeUniqueness(typeMapper.GetAllGlobalItems(itemCollection), inputFile)) +{ + return string.Empty; +} + +WriteHeader(codeStringGenerator, fileManager); + +foreach (var entity in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(entity.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false)#> +<#=codeStringGenerator.EntityClassOpening(entity)#> +{ +<# + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(entity); + var collectionNavigationProperties = typeMapper.GetCollectionNavigationProperties(entity); + var complexProperties = typeMapper.GetComplexProperties(entity); + + if (propertiesWithDefaultValues.Any() || collectionNavigationProperties.Any() || complexProperties.Any()) + { +#> + public <#=code.Escape(entity)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var navigationProperty in collectionNavigationProperties) + { +#> + this.<#=code.Escape(navigationProperty)#> = new HashSet<<#=typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType())#>>(); +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(entity); + if (simpleProperties.Any()) + { + foreach (var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var complexProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(complexProperty)#> +<# + } + } + + var navigationProperties = typeMapper.GetNavigationProperties(entity); + if (navigationProperties.Any()) + { +#> + +<# + foreach (var navigationProperty in navigationProperties) + { +#> + <#=codeStringGenerator.NavigationProperty(navigationProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var complex in typeMapper.GetItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(complex.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<#=Accessibility.ForType(complex)#> partial class <#=code.Escape(complex)#> +{ +<# + var complexProperties = typeMapper.GetComplexProperties(complex); + var propertiesWithDefaultValues = typeMapper.GetPropertiesWithDefaultValues(complex); + + if (propertiesWithDefaultValues.Any() || complexProperties.Any()) + { +#> + public <#=code.Escape(complex)#>() + { +<# + foreach (var edmProperty in propertiesWithDefaultValues) + { +#> + this.<#=code.Escape(edmProperty)#> = <#=typeMapper.CreateLiteral(edmProperty.DefaultValue)#>; +<# + } + + foreach (var complexProperty in complexProperties) + { +#> + this.<#=code.Escape(complexProperty)#> = new <#=typeMapper.GetTypeName(complexProperty.TypeUsage)#>(); +<# + } +#> + } + +<# + } + + var simpleProperties = typeMapper.GetSimpleProperties(complex); + if (simpleProperties.Any()) + { + foreach(var edmProperty in simpleProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } + + if (complexProperties.Any()) + { +#> + +<# + foreach(var edmProperty in complexProperties) + { +#> + <#=codeStringGenerator.Property(edmProperty)#> +<# + } + } +#> +} +<# + EndNamespace(code); +} + +foreach (var enumType in typeMapper.GetEnumItemsToGenerate(itemCollection)) +{ + fileManager.StartNewFile(enumType.Name + ".cs"); + BeginNamespace(code); +#> +<#=codeStringGenerator.UsingDirectives(inHeader: false, includeCollections: false)#> +<# + if (typeMapper.EnumIsFlags(enumType)) + { +#> +[Flags] +<# + } +#> +<#=codeStringGenerator.EnumOpening(enumType)#> +{ +<# + var foundOne = false; + + foreach (MetadataItem member in typeMapper.GetEnumMembers(enumType)) + { + foundOne = true; +#> + <#=code.Escape(typeMapper.GetEnumMemberName(member))#> = <#=typeMapper.GetEnumMemberValue(member)#>, +<# + } + + if (foundOne) + { + this.GenerationEnvironment.Remove(this.GenerationEnvironment.Length - 3, 1); + } +#> +} +<# + EndNamespace(code); +} + +fileManager.Process(); + +#> +<#+ + +public void WriteHeader(CodeStringGenerator codeStringGenerator, EntityFrameworkTemplateFileManager fileManager) +{ + fileManager.StartHeader(); +#> +//------------------------------------------------------------------------------ +// +// <#=GetResourceString("Template_GeneratedCodeCommentLine1")#> +// +// <#=GetResourceString("Template_GeneratedCodeCommentLine2")#> +// <#=GetResourceString("Template_GeneratedCodeCommentLine3")#> +// +//------------------------------------------------------------------------------ +<#=codeStringGenerator.UsingDirectives(inHeader: true)#> +<#+ + fileManager.EndBlock(); +} + +public void BeginNamespace(CodeGenerationTools code) +{ + var codeNamespace = code.VsNamespaceSuggestion(); + if (!String.IsNullOrEmpty(codeNamespace)) + { +#> +namespace <#=code.EscapeNamespace(codeNamespace)#> +{ +<#+ + PushIndent(" "); + } +} + +public void EndNamespace(CodeGenerationTools code) +{ + if (!String.IsNullOrEmpty(code.VsNamespaceSuggestion())) + { + PopIndent(); +#> +} +<#+ + } +} + +public const string TemplateId = "CSharp_DbContext_Types_EF5"; + +public class CodeStringGenerator +{ + private readonly CodeGenerationTools _code; + private readonly TypeMapper _typeMapper; + private readonly MetadataTools _ef; + + public CodeStringGenerator(CodeGenerationTools code, TypeMapper typeMapper, MetadataTools ef) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(typeMapper, "typeMapper"); + ArgumentNotNull(ef, "ef"); + + _code = code; + _typeMapper = typeMapper; + _ef = ef; + } + + public string Property(EdmProperty edmProperty) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + Accessibility.ForProperty(edmProperty), + _typeMapper.GetTypeName(edmProperty.TypeUsage), + _code.Escape(edmProperty), + _code.SpaceAfter(Accessibility.ForGetter(edmProperty)), + _code.SpaceAfter(Accessibility.ForSetter(edmProperty))); + } + + public string NavigationProperty(NavigationProperty navigationProperty) + { + var endType = _typeMapper.GetTypeName(navigationProperty.ToEndMember.GetEntityType()); + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2} {{ {3}get; {4}set; }}", + AccessibilityAndVirtual(Accessibility.ForProperty(navigationProperty)), + navigationProperty.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many ? ("ICollection<" + endType + ">") : endType, + _code.Escape(navigationProperty), + _code.SpaceAfter(Accessibility.ForGetter(navigationProperty)), + _code.SpaceAfter(Accessibility.ForSetter(navigationProperty))); + } + + public string AccessibilityAndVirtual(string accessibility) + { + return accessibility + (accessibility != "private" ? " virtual" : ""); + } + + public string EntityClassOpening(EntityType entity) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1}partial class {2}{3}", + Accessibility.ForType(entity), + _code.SpaceAfter(_code.AbstractOption(entity)), + _code.Escape(entity), + _code.StringBefore(" : ", _typeMapper.GetTypeName(entity.BaseType))); + } + + public string EnumOpening(SimpleType enumType) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} enum {1} : {2}", + Accessibility.ForType(enumType), + _code.Escape(enumType), + _code.Escape(_typeMapper.UnderlyingClrType(enumType))); + } + + public void WriteFunctionParameters(EdmFunction edmFunction, Action writeParameter) + { + var parameters = FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + foreach (var parameter in parameters.Where(p => p.NeedsLocalVariable)) + { + var isNotNull = parameter.IsNullableOfT ? parameter.FunctionParameterName + ".HasValue" : parameter.FunctionParameterName + " != null"; + var notNullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", " + parameter.FunctionParameterName + ")"; + var nullInit = "new ObjectParameter(\"" + parameter.EsqlParameterName + "\", typeof(" + parameter.RawClrTypeName + "))"; + writeParameter(parameter.LocalVariableName, isNotNull, notNullInit, nullInit); + } + } + + public string ComposableFunctionMethod(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "{0} IQueryable<{1}> {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + _code.Escape(edmFunction), + string.Join(", ", parameters.Select(p => p.FunctionParameterType + " " + p.FunctionParameterName).ToArray())); + } + + public string ComposableCreateQuery(EdmFunction edmFunction, string modelNamespace) + { + var parameters = _typeMapper.GetParameters(edmFunction); + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.CreateQuery<{0}>(\"[{1}].[{2}]({3})\"{4});", + _typeMapper.GetTypeName(_typeMapper.GetReturnType(edmFunction), modelNamespace), + edmFunction.NamespaceName, + edmFunction.Name, + string.Join(", ", parameters.Select(p => "@" + p.EsqlParameterName).ToArray()), + _code.StringBefore(", ", string.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray()))); + } + + public string FunctionMethod(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var paramList = String.Join(", ", parameters.Select(p => p.FunctionParameterType + " " + p.FunctionParameterName).ToArray()); + if (includeMergeOption) + { + paramList = _code.StringAfter(paramList, ", ") + "MergeOption mergeOption"; + } + + return string.Format( + CultureInfo.InvariantCulture, + "{0} {1} {2}({3})", + AccessibilityAndVirtual(Accessibility.ForMethod(edmFunction)), + returnType == null ? "int" : "ObjectResult<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + _code.Escape(edmFunction), + paramList); + } + + public string ExecuteFunction(EdmFunction edmFunction, string modelNamespace, bool includeMergeOption) + { + var parameters = _typeMapper.GetParameters(edmFunction); + var returnType = _typeMapper.GetReturnType(edmFunction); + + var callParams = _code.StringBefore(", ", String.Join(", ", parameters.Select(p => p.ExecuteParameterName).ToArray())); + if (includeMergeOption) + { + callParams = ", mergeOption" + callParams; + } + + return string.Format( + CultureInfo.InvariantCulture, + "return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction{0}(\"{1}\"{2});", + returnType == null ? "" : "<" + _typeMapper.GetTypeName(returnType, modelNamespace) + ">", + edmFunction.Name, + callParams); + } + + public string DbSet(EntitySet entitySet) + { + return string.Format( + CultureInfo.InvariantCulture, + "{0} DbSet<{1}> {2} {{ get; set; }}", + Accessibility.ForReadOnlyProperty(entitySet), + _typeMapper.GetTypeName(entitySet.ElementType), + _code.Escape(entitySet)); + } + + public string UsingDirectives(bool inHeader, bool includeCollections = true) + { + return inHeader == string.IsNullOrEmpty(_code.VsNamespaceSuggestion()) + ? string.Format( + CultureInfo.InvariantCulture, + "{0}using System;{1}" + + "{2}", + inHeader ? Environment.NewLine : "", + includeCollections ? (Environment.NewLine + "using System.Collections.Generic;") : "", + inHeader ? "" : Environment.NewLine) + : ""; + } +} + +public class TypeMapper +{ + private const string ExternalTypeNameAttributeName = @"http://schemas.microsoft.com/ado/2006/04/codegeneration:ExternalTypeName"; + + private readonly System.Collections.IList _errors; + private readonly CodeGenerationTools _code; + private readonly MetadataTools _ef; + + public TypeMapper(CodeGenerationTools code, MetadataTools ef, System.Collections.IList errors) + { + ArgumentNotNull(code, "code"); + ArgumentNotNull(ef, "ef"); + ArgumentNotNull(errors, "errors"); + + _code = code; + _ef = ef; + _errors = errors; + } + + public string GetTypeName(TypeUsage typeUsage) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace: null); + } + + public string GetTypeName(EdmType edmType) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: null); + } + + public string GetTypeName(TypeUsage typeUsage, string modelNamespace) + { + return typeUsage == null ? null : GetTypeName(typeUsage.EdmType, _ef.IsNullable(typeUsage), modelNamespace); + } + + public string GetTypeName(EdmType edmType, string modelNamespace) + { + return GetTypeName(edmType, isNullable: null, modelNamespace: modelNamespace); + } + + public string GetTypeName(EdmType edmType, bool? isNullable, string modelNamespace) + { + if (edmType == null) + { + return null; + } + + var collectionType = edmType as CollectionType; + if (collectionType != null) + { + return String.Format(CultureInfo.InvariantCulture, "ICollection<{0}>", GetTypeName(collectionType.TypeUsage, modelNamespace)); + } + + var typeName = _code.Escape(edmType.MetadataProperties + .Where(p => p.Name == ExternalTypeNameAttributeName) + .Select(p => (string)p.Value) + .FirstOrDefault()) + ?? (modelNamespace != null && edmType.NamespaceName != modelNamespace ? + _code.CreateFullName(_code.EscapeNamespace(edmType.NamespaceName), _code.Escape(edmType)) : + _code.Escape(edmType)); + + if (edmType is StructuralType) + { + return typeName; + } + + if (edmType is SimpleType) + { + var clrType = UnderlyingClrType(edmType); + if (!IsEnumType(edmType)) + { + typeName = _code.Escape(clrType); + } + + return clrType.IsValueType && isNullable == true ? + String.Format(CultureInfo.InvariantCulture, "Nullable<{0}>", typeName) : + typeName; + } + + throw new ArgumentException("edmType"); + } + + public Type UnderlyingClrType(EdmType edmType) + { + ArgumentNotNull(edmType, "edmType"); + + var primitiveType = edmType as PrimitiveType; + if (primitiveType != null) + { + return primitiveType.ClrEquivalentType; + } + + if (IsEnumType(edmType)) + { + return GetEnumUnderlyingType(edmType).ClrEquivalentType; + } + + return typeof(object); + } + + public object GetEnumMemberValue(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var valueProperty = enumMember.GetType().GetProperty("Value"); + return valueProperty == null ? null : valueProperty.GetValue(enumMember, null); + } + + public string GetEnumMemberName(MetadataItem enumMember) + { + ArgumentNotNull(enumMember, "enumMember"); + + var nameProperty = enumMember.GetType().GetProperty("Name"); + return nameProperty == null ? null : (string)nameProperty.GetValue(enumMember, null); + } + + public System.Collections.IEnumerable GetEnumMembers(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var membersProperty = enumType.GetType().GetProperty("Members"); + return membersProperty != null + ? (System.Collections.IEnumerable)membersProperty.GetValue(enumType, null) + : Enumerable.Empty(); + } + + public bool EnumIsFlags(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + var isFlagsProperty = enumType.GetType().GetProperty("IsFlags"); + return isFlagsProperty != null && (bool)isFlagsProperty.GetValue(enumType, null); + } + + public bool IsEnumType(GlobalItem edmType) + { + ArgumentNotNull(edmType, "edmType"); + + return edmType.GetType().Name == "EnumType"; + } + + public PrimitiveType GetEnumUnderlyingType(EdmType enumType) + { + ArgumentNotNull(enumType, "enumType"); + + return (PrimitiveType)enumType.GetType().GetProperty("UnderlyingType").GetValue(enumType, null); + } + + public string CreateLiteral(object value) + { + if (value == null || value.GetType() != typeof(TimeSpan)) + { + return _code.CreateLiteral(value); + } + + return string.Format(CultureInfo.InvariantCulture, "new TimeSpan({0})", ((TimeSpan)value).Ticks); + } + + public bool VerifyCaseInsensitiveTypeUniqueness(IEnumerable types, string sourceFile) + { + ArgumentNotNull(types, "types"); + ArgumentNotNull(sourceFile, "sourceFile"); + + var hash = new HashSet(StringComparer.InvariantCultureIgnoreCase); + if (types.Any(item => !hash.Add(item))) + { + _errors.Add( + new CompilerError(sourceFile, -1, -1, "6023", + String.Format(CultureInfo.CurrentCulture, GetResourceString("Template_CaseInsensitiveTypeConflict")))); + return false; + } + return true; + } + + public IEnumerable GetEnumItemsToGenerate(IEnumerable itemCollection) + { + return GetItemsToGenerate(itemCollection) + .Where(e => IsEnumType(e)); + } + + public IEnumerable GetItemsToGenerate(IEnumerable itemCollection) where T: EdmType + { + return itemCollection + .OfType() + .Where(i => !i.MetadataProperties.Any(p => p.Name == ExternalTypeNameAttributeName)) + .OrderBy(i => i.Name); + } + + public IEnumerable GetAllGlobalItems(IEnumerable itemCollection) + { + return itemCollection + .Where(i => i is EntityType || i is ComplexType || i is EntityContainer || IsEnumType(i)) + .Select(g => GetGlobalItemName(g)); + } + + public string GetGlobalItemName(GlobalItem item) + { + if (item is EdmType) + { + return ((EdmType)item).Name; + } + else + { + return ((EntityContainer)item).Name; + } + } + + public IEnumerable GetSimpleProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetSimpleProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetComplexProperties(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is ComplexType && p.DeclaringType == type); + } + + public IEnumerable GetPropertiesWithDefaultValues(EntityType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetPropertiesWithDefaultValues(ComplexType type) + { + return type.Properties.Where(p => p.TypeUsage.EdmType is SimpleType && p.DeclaringType == type && p.DefaultValue != null); + } + + public IEnumerable GetNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type); + } + + public IEnumerable GetCollectionNavigationProperties(EntityType type) + { + return type.NavigationProperties.Where(np => np.DeclaringType == type && np.ToEndMember.RelationshipMultiplicity == RelationshipMultiplicity.Many); + } + + public FunctionParameter GetReturnParameter(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var returnParamsProperty = edmFunction.GetType().GetProperty("ReturnParameters"); + return returnParamsProperty == null + ? edmFunction.ReturnParameter + : ((IEnumerable)returnParamsProperty.GetValue(edmFunction, null)).FirstOrDefault(); + } + + public bool IsComposable(EdmFunction edmFunction) + { + ArgumentNotNull(edmFunction, "edmFunction"); + + var isComposableProperty = edmFunction.GetType().GetProperty("IsComposableAttribute"); + return isComposableProperty != null && (bool)isComposableProperty.GetValue(edmFunction, null); + } + + public IEnumerable GetParameters(EdmFunction edmFunction) + { + return FunctionImportParameter.Create(edmFunction.Parameters, _code, _ef); + } + + public TypeUsage GetReturnType(EdmFunction edmFunction) + { + var returnParam = GetReturnParameter(edmFunction); + return returnParam == null ? null : _ef.GetElementType(returnParam.TypeUsage); + } + + public bool GenerateMergeOptionFunction(EdmFunction edmFunction, bool includeMergeOption) + { + var returnType = GetReturnType(edmFunction); + return !includeMergeOption && returnType != null && returnType.EdmType.BuiltInTypeKind == BuiltInTypeKind.EntityType; + } +} + +public class EdmMetadataLoader +{ + private readonly IDynamicHost _host; + private readonly System.Collections.IList _errors; + + public EdmMetadataLoader(IDynamicHost host, System.Collections.IList errors) + { + ArgumentNotNull(host, "host"); + ArgumentNotNull(errors, "errors"); + + _host = host; + _errors = errors; + } + + public IEnumerable CreateEdmItemCollection(string sourcePath) + { + ArgumentNotNull(sourcePath, "sourcePath"); + + if (!ValidateInputPath(sourcePath)) + { + return new EdmItemCollection(); + } + + var schemaElement = LoadRootElement(_host.ResolvePath(sourcePath)); + if (schemaElement != null) + { + using (var reader = schemaElement.CreateReader()) + { + IList errors; + var itemCollection = MetadataItemCollectionFactory.CreateEdmItemCollection(new[] { reader }, out errors); + + ProcessErrors(errors, sourcePath); + + return itemCollection; + } + } + return new EdmItemCollection(); + } + + public string GetModelNamespace(string sourcePath) + { + ArgumentNotNull(sourcePath, "sourcePath"); + + if (!ValidateInputPath(sourcePath)) + { + return string.Empty; + } + + var model = LoadRootElement(_host.ResolvePath(sourcePath)); + if (model == null) + { + return string.Empty; + } + + var attribute = model.Attribute("Namespace"); + return attribute != null ? attribute.Value : ""; + } + + private bool ValidateInputPath(string sourcePath) + { + if (sourcePath == "$" + "edmxInputFile" + "$") + { + _errors.Add( + new CompilerError(_host.TemplateFile ?? sourcePath, 0, 0, string.Empty, + GetResourceString("Template_ReplaceVsItemTemplateToken"))); + return false; + } + + return true; + } + + public XElement LoadRootElement(string sourcePath) + { + ArgumentNotNull(sourcePath, "sourcePath"); + + var root = XElement.Load(sourcePath, LoadOptions.SetBaseUri | LoadOptions.SetLineInfo); + return root.Elements() + .Where(e => e.Name.LocalName == "Runtime") + .Elements() + .Where(e => e.Name.LocalName == "ConceptualModels") + .Elements() + .Where(e => e.Name.LocalName == "Schema") + .FirstOrDefault() + ?? root; + } + + private void ProcessErrors(IEnumerable errors, string sourceFilePath) + { + foreach (var error in errors) + { + _errors.Add( + new CompilerError( + error.SchemaLocation ?? sourceFilePath, + error.Line, + error.Column, + error.ErrorCode.ToString(CultureInfo.InvariantCulture), + error.Message) + { + IsWarning = error.Severity == EdmSchemaErrorSeverity.Warning + }); + } + } + + public bool IsLazyLoadingEnabled(EntityContainer container) + { + string lazyLoadingAttributeValue; + var lazyLoadingAttributeName = MetadataConstants.EDM_ANNOTATION_09_02 + ":LazyLoadingEnabled"; + bool isLazyLoading; + return !MetadataTools.TryGetStringMetadataPropertySetting(container, lazyLoadingAttributeName, out lazyLoadingAttributeValue) + || !bool.TryParse(lazyLoadingAttributeValue, out isLazyLoading) + || isLazyLoading; + } +} + +public static void ArgumentNotNull(T arg, string name) where T : class +{ + if (arg == null) + { + throw new ArgumentNullException(name); + } +} + +private static readonly Lazy ResourceManager = + new Lazy( + () => new System.Resources.ResourceManager("System.Data.Entity.Design", typeof(MetadataItemCollectionFactory).Assembly), isThreadSafe: true); + +public static string GetResourceString(string resourceName) +{ + ArgumentNotNull(resourceName, "resourceName"); + + return ResourceManager.Value.GetString(resourceName, null); +} + +#> \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressOData.svc b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressOData.svc new file mode 100644 index 0000000..a8103fb --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressOData.svc @@ -0,0 +1,3 @@ + + +<%@ ServiceHost Language="C#" Factory="System.Data.Services.DataServiceHostFactory, Microsoft.Data.Services, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Service="ApressODataService.ApressOData" %> diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressOData.svc.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressOData.svc.cs new file mode 100644 index 0000000..372d6b9 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressOData.svc.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// +// Copyright (c) Microsoft Corporation. All rights reserved. +// +//------------------------------------------------------------------------------ +using System; +using System.Collections.Generic; +using System.Data.Services; +using System.Data.Services.Common; +using System.Linq; +using System.ServiceModel.Web; +using System.Web; + +namespace ApressODataService +{ + public class ApressOData : DataService + { + public static void InitializeService(DataServiceConfiguration config) + { + // Set rules to indicate which entity sets and service operations are visible, updatable, etc. + config.SetEntitySetAccessRule("ApressBooks", EntitySetRights.All); + config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3; + } + } +} diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressODataService.csproj b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressODataService.csproj new file mode 100644 index 0000000..e9e3e1b --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressODataService.csproj @@ -0,0 +1,197 @@ + + + + + Debug + AnyCPU + + + 2.0 + {30B501C7-CE73-49DD-B95F-88A98D6C5461} + {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + ApressODataService + ApressODataService + v4.5 + True + true + + + + + SAK + SAK + SAK + SAK + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + ..\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll + + + + True + ..\packages\Microsoft.Data.Edm.5.0.0\lib\net40\Microsoft.Data.Edm.dll + + + True + ..\packages\Microsoft.Data.OData.5.0.0\lib\net40\Microsoft.Data.OData.dll + + + True + ..\packages\Microsoft.Data.Services.5.0.0\lib\net40\Microsoft.Data.Services.dll + + + True + ..\packages\Microsoft.Data.Services.Client.5.0.0\lib\net40\Microsoft.Data.Services.Client.dll + + + ..\packages\Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0\lib\net35-full\Microsoft.WindowsAzure.Configuration.dll + + + True + + + False + + + ..\packages\WindowsAzure.Storage.1.7.0.0\lib\net35-full\Microsoft.WindowsAzure.StorageClient.dll + + + + + + True + ..\packages\System.Spatial.5.0.0\lib\net40\System.Spatial.dll + + + + + + + + + + + + + + + + + + + + + + ApressBookModel.tt + + + True + True + ApressBookModel.Context.tt + + + True + True + ApressBookModel.tt + + + True + True + ApressBookModel.edmx + + + ApressOData.svc + + + + + + + + + + + + + + + + EntityModelCodeGenerator + ApressBookModel.Designer.cs + + + TextTemplatingFileGenerator + ApressBookModel.edmx + ApressBookModel.Context.cs + + + ApressBookModel.edmx + + + TextTemplatingFileGenerator + ApressBookModel.edmx + ApressBookModel.cs + + + Web.config + + + Web.config + + + + + + + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + + + + + + True + True + 0 + / + http://localhost:1124/ + False + False + + + False + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressODataService.csproj.user b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressODataService.csproj.user new file mode 100644 index 0000000..dedb3c9 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressODataService.csproj.user @@ -0,0 +1,28 @@ + + + + + + + + + CurrentPage + True + False + False + False + + + + + + + + + False + True + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressODataService.csproj.vspscc b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressODataService.csproj.vspscc new file mode 100644 index 0000000..b6d3289 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/ApressODataService.csproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/AzureLocalStorageTraceListener.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/AzureLocalStorageTraceListener.cs new file mode 100644 index 0000000..f6e5b00 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/AzureLocalStorageTraceListener.cs @@ -0,0 +1,25 @@ +using System; +using System.Diagnostics; +using System.IO; +using Microsoft.WindowsAzure.Diagnostics; +using Microsoft.WindowsAzure.ServiceRuntime; + +namespace ApressODataService +{ + public class AzureLocalStorageTraceListener : XmlWriterTraceListener + { + public AzureLocalStorageTraceListener() + : base(Path.Combine(AzureLocalStorageTraceListener.GetLogDirectory().Path, "ApressODataService.svclog")) + { + } + + public static DirectoryConfiguration GetLogDirectory() + { + DirectoryConfiguration directory = new DirectoryConfiguration(); + directory.Container = "wad-tracefiles"; + directory.DirectoryQuotaInMB = 10; + directory.Path = RoleEnvironment.GetLocalResource("ApressODataService.svclog").RootPath; + return directory; + } + } +} diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/Properties/AssemblyInfo.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..5ab0361 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ApressODataService")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ApressODataService")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("449024ac-e628-47a9-8271-1cc1a16da391")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/Web.Debug.config b/ApressBook SourceCode/ApressCloudService/ApressODataService/Web.Debug.config new file mode 100644 index 0000000..2e302f9 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/Web.Debug.config @@ -0,0 +1,30 @@ + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/Web.Release.config b/ApressBook SourceCode/ApressCloudService/ApressODataService/Web.Release.config new file mode 100644 index 0000000..c358444 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/Web.Release.config @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/Web.config b/ApressBook SourceCode/ApressCloudService/ApressODataService/Web.config new file mode 100644 index 0000000..f54b97b --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/Web.config @@ -0,0 +1,74 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/WebRole.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/WebRole.cs new file mode 100644 index 0000000..daa0649 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/WebRole.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Microsoft.WindowsAzure; +using Microsoft.WindowsAzure.Diagnostics; +using Microsoft.WindowsAzure.ServiceRuntime; + +namespace ApressODataService +{ + public class WebRole : RoleEntryPoint + { + public override bool OnStart() + { + // To enable the AzureLocalStorageTraceListner, uncomment relevent section in the web.config + DiagnosticMonitorConfiguration diagnosticConfig = DiagnosticMonitor.GetDefaultInitialConfiguration(); + diagnosticConfig.Directories.ScheduledTransferPeriod = TimeSpan.FromMinutes(1); + diagnosticConfig.Directories.DataSources.Add(AzureLocalStorageTraceListener.GetLogDirectory()); + + // For information on handling configuration changes + // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357. + + return base.OnStart(); + } + } +} diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/ApressODataService.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/ApressODataService.dll new file mode 100644 index 0000000..2106a91 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/ApressODataService.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/ApressODataService.pdb b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/ApressODataService.pdb new file mode 100644 index 0000000..32feabc Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/ApressODataService.pdb differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/EntityFramework.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/EntityFramework.dll new file mode 100644 index 0000000..2618485 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/EntityFramework.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/EntityFramework.xml b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/EntityFramework.xml new file mode 100644 index 0000000..aa84a9e --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/EntityFramework.xml @@ -0,0 +1,17968 @@ + + + + EntityFramework + + + + + The base for all all Entity Data Model (EDM) types that represent a type from the EDM type system. + + + + + Represents an item in an Entity Data Model (EDM) . + + + + + The base for all all Entity Data Model (EDM) item types that with a Name property that represents a qualified (can be dotted) name. + + + + + The base for all all Entity Data Model (EDM) item types that with a property. + + + + + The base for all all Entity Data Model (EDM) types that support annotation using . + + + + + EdmDataModelItem is the base for all types in the Entity Data Model (EDM) metadata construction and modification API. + + + + + DataModelItem is the base for all types in the EDM metadata reflection, construction and modification API. + + + + + Gets an value indicating which Entity Data Model (EDM) concept is represented by this item. + + + + + IAnnotatedDataModelItem is implemented by model-specific base types for all types with an property. + + + + + Gets or sets the currently assigned annotations. + + + + + Gets or sets the currently assigned annotations. + + + + + Returns all EdmItem children directly contained by this EdmItem. + + + + + INamedDataModelItem is implemented by model-specific base types for all types with a property. + + + + + Gets or sets the currently assigned name. + + + + + Gets or sets the currently assigned name. + + + + + Gets a value indicating whether this type is abstract. + + + + + Gets the optional base type of this type. + + + + + EdmStructuralMember is the base for all types that represent members of structural items in the Entity Data Model (EDM) metadata construction and modification API. + + + + + Represents information about a database connection. + + + + + Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file. + + The name of the connection string in the application configuration. + + + + Creates a new instance of DbConnectionInfo based on a connection string. + + The connection string to use for the connection. + The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. + + + + Gets the connection information represented by this instance. + + Configuration to use if connection comes from the configuration file. + + + + Instances of this class are used to create DbConnection objects for + SQL Server LocalDb based on a given database name or connection string. + + + An instance of this class can be set on the class or in the + app.config/web.config for the application to cause all DbContexts created with no + connection information or just a database name to use SQL Server LocalDb by default. + This class is immutable since multiple threads may access instances simultaneously + when creating connections. + + + + + Implementations of this interface are used to create DbConnection objects for + a type of database server based on a given database name. + An Instance is set on the class to + cause all DbContexts created with no connection information or just a database + name or connection string to use a certain type of database server by default. + Two implementations of this interface are provided: + is used to create connections to Microsoft SQL Server, including EXPRESS editions. + is used to create connections to Microsoft SQL + Server Compact Editions. + Other implementations for other database servers can be added as needed. + Note that implementations should be thread safe or immutable since they may + be accessed by multiple threads at the same time. + + + + + Creates a connection based on the given database name or connection string. + + The database name or connection string. + An initialized DbConnection. + + + + Creates a new instance of the connection factory for the given version of LocalDb. + For SQL Server 2012 LocalDb use "v11.0". + + The LocalDb version to use. + + + + Creates a new instance of the connection factory for the given version of LocalDb. + For SQL Server 2012 LocalDb use "v11.0". + + + The LocalDb version to use. + + The connection string to use for options to the database other than the 'Initial Catalog', + 'Data Source', and 'AttachDbFilename'. + The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the + database name when CreateConnection is called. + The 'Data Source' will be set based on the LocalDbVersion argument. + + + + + Creates a connection for SQL Server LocalDb based on the given database name or connection string. + If the given string contains an '=' character then it is treated as a full connection string, + otherwise it is treated as a database name only. + + The database name or connection string. + An initialized DbConnection. + + + + The connection string to use for options to the database other than the 'Initial Catalog', + 'Data Source', and 'AttachDbFilename'. + The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the + database name when CreateConnection is called. + The 'Data Source' will be set based on the LocalDbVersion argument. + The default is 'Integrated Security=True; MultipleActiveResultSets=True;'. + + + + + Encapsulates a cloned and store . Note that these + objects are disposable and should be used in a using block to ensure both the cloned context and the + cloned connection are disposed. + + + + + For mocking. + + + + + Creates a clone of the given . The underlying of + the context is also cloned and the given connection string is used for the connection string of + the cloned connection. + + + + + Finds the assemblies that were used for loading o-space types in the source context + and loads those assemblies in the cloned context. + + + + + Disposes both the underlying ObjectContext and its store connection. + + + + + The cloned context. + + + + + This is always the store connection of the underlying ObjectContext. + + + + + Represents setting the database initializer for a specific context type + + + + + Represents a parameter to be passed to a method + + + + + Represents a series of parameters to pass to a method + + + + + Adds a new parameter to the collection + Used for unit testing + + + + + Represents the configuration for a series of contexts + + + + + Adds a new context to the collection + Used for unit testing + + + + + Represents the configuration for a specific context type + + + + + Represents setting the default connection factory + + + + + Represents all Entity Framework related configuration + + + + + Handles creating databases either using the core provider or the Migrations pipeline. + + + + + Creates a database using the core provider (i.e. ObjectContext.CreateDatabase) or + by using Code First Migrations to create an empty database + and the perform an automatic migration to the current model. + Migrations is used if Code First is being used and the EF provider is for SQL Server + or SQL Compact. The core is used for non-Code First models and for other providers even + when using Code First. + + + + + A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that + it can be used to query from a database and group together changes that will then be written + back to the store as a unit. + DbContext is conceptually similar to ObjectContext. + + + DbContext is usually used with a derived type that contains properties for + the root entities of the model. These sets are automatically initialized when the + instance of the derived class is created. This behavior can be modified by applying the + attribute to either the entire derived context + class, or to individual properties on the class. + + The Entity Data Model backing the context can be specified in several ways. When using the Code First + approach, the properties on the derived context are used to build a model + by convention. The protected OnModelCreating method can be overridden to tweak this model. More + control over the model used for the Model First approach can be obtained by creating a + explicitly from a and passing this model to one of the DbContext constructors. + + When using the Database First or Model First approach the Entity Data Model can be created using the + Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using + entity connection string or an object. + + The connection to the database (including the name of the database) can be specified in several ways. + If the parameterless DbContext constructor is called from a derived context, then the name of the derived context + is used to find a connection string in the app.config or web.config file. If no connection string is found, then + the name is passed to the DefaultConnectionFactory registered on the class. The connection + factory then uses the context name as the database name in a default connection string. (This default connection + string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.) + + Instead of using the derived context name, the connection/database name can also be specified explicitly by + passing the name to one of the DbContext constructors that takes a string. The name can also be passed in + the form "name=myname", in which case the name must be found in the config file or an exception will be thrown. + + Note that the connection found in the app.config or web.config file can be a normal database connection + string (not a special Entity Framework connection string) in which case the DbContext will use Code First. + However, if the connection found in the config file is a special Entity Framework connection string, then the + DbContext will use Database/Model First and the model specified in the connection string will be used. + + An existing or explicitly created DbConnection can also be used instead of the database/connection name. + + A can be applied to a class derived from DbContext to set the + version of conventions used by the context when it creates a model. If no attribute is applied then the + latest version of conventions will be used. + + + + + Interface implemented by objects that can provide an instance. + The class implements this interface to provide access to the underlying + ObjectContext. + + + + + Gets the object context. + + The object context. + + + + Constructs a new context instance using conventions to create the name of the database to + which a connection will be made. The by-convention name is the full name (namespace + class name) + of the derived context class. + See the class remarks for how this is used to create a connection. + + + + + Constructs a new context instance using conventions to create the name of the database to + which a connection will be made, and initializes it from the given model. + The by-convention name is the full name (namespace + class name) of the derived context class. + See the class remarks for how this is used to create a connection. + + The model that will back this context. + + + + Constructs a new context instance using the given string as the name or connection string for the + database to which a connection will be made. + See the class remarks for how this is used to create a connection. + + Either the database name or a connection string. + + + + Constructs a new context instance using the given string as the name or connection string for the + database to which a connection will be made, and initializes it from the given model. + See the class remarks for how this is used to create a connection. + + Either the database name or a connection string. + The model that will back this context. + + + + Constructs a new context instance using the existing connection to connect to a database. + The connection will not be disposed when the context is disposed. + + An existing connection to use for the new context. + If set to true the connection is disposed when + the context is disposed, otherwise the caller must dispose the connection. + + + + Constructs a new context instance using the existing connection to connect to a database, + and initializes it from the given model. + The connection will not be disposed when the context is disposed. + An existing connection to use for the new context. + The model that will back this context. + If set to true the connection is disposed when + the context is disposed, otherwise the caller must dispose the connection. + + + + + Constructs a new context instance around an existing ObjectContext. + An existing ObjectContext to wrap with the new context. + If set to true the ObjectContext is disposed when + the DbContext is disposed, otherwise the caller must dispose the connection. + + + + + Initializes the internal context, discovers and initializes sets, and initializes from a model if one is provided. + + + + + Discovers DbSets and initializes them. + + + + + This method is called when the model for a derived context has been initialized, but + before the model has been locked down and used to initialize the context. The default + implementation of this method does nothing, but it can be overridden in a derived class + such that the model can be further configured before it is locked down. + + + Typically, this method is called only once when the first instance of a derived context + is created. The model for that context is then cached and is for all further instances of + the context in the app domain. This caching can be disabled by setting the ModelCaching + property on the given ModelBuidler, but note that this can seriously degrade performance. + More control over caching is provided through use of the DbModelBuilder and DbContextFactory + classes directly. + + The builder that defines the model for the context being created. + + + + Internal method used to make the call to the real OnModelCreating method. + + The model builder. + + + + Returns a DbSet instance for access to entities of the given type in the context, + the ObjectStateManager, and the underlying store. + + + See the DbSet class for more details. + + The type entity for which a set should be returned. + A set for the given entity type. + + + + Returns a non-generic DbSet instance for access to entities of the given type in the context, + the ObjectStateManager, and the underlying store. + + The type of entity for which a set should be returned. + A set for the given entity type. + + See the DbSet class for more details. + + + + + Saves all changes made in this context to the underlying database. + + The number of objects written to the underlying database. + Thrown if the context has been disposed. + + + + Validates tracked entities and returns a Collection of containing validation results. + + + Collection of validation results for invalid entities. The collection is never null and must not contain null + values or results for valid entities. + + + 1. This method calls DetectChanges() to determine states of the tracked entities unless + DbContextConfiguration.AutoDetectChangesEnabled is set to false. + 2. By default only Added on Modified entities are validated. The user is able to change this behavior + by overriding ShouldValidateEntity method. + + + + + Extension point allowing the user to override the default behavior of validating only + added and modified entities. + + DbEntityEntry instance that is supposed to be validated. + true to proceed with validation. false otherwise. + + + + Extension point allowing the user to customize validation of an entity or filter out validation results. + Called by . + + DbEntityEntry instance to be validated. + User defined dictionary containing additional info for custom validation. + It will be passed to + and will be exposed as . + This parameter is optional and can be null. + Entity validation result. Possibly null when overridden. + + + + Internal method that calls the protected ValidateEntity method. + + DbEntityEntry instance to be validated. + User defined dictionary containing additional info for custom validation. + It will be passed to + and will be exposed as . + This parameter is optional and can be null. + Entity validation result. Possibly null when ValidateEntity is overridden. + + + + Gets a object for the given entity providing access to + information about the entity and the ability to perform actions on the entity. + + The type of the entity. + The entity. + An entry for the entity. + + + + Gets a object for the given entity providing access to + information about the entity and the ability to perform actions on the entity. + + The entity. + An entry for the entity. + + + + Calls the protected Dispose method. + + + + + Disposes the context. The underlying is also disposed if it was created + is by this context or ownership was passed to this context when this context was created. + The connection to the database ( object) is also disposed if it was created + is by this context or ownership was passed to this context when this context was created. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates a Database instance for this context that allows for creation/deletion/existence checks + for the underlying database. + + + + + Returns the Entity Framework ObjectContext that is underlying this context. + + Thrown if the context has been disposed. + + + + Provides access to features of the context that deal with change tracking of entities. + + An object used to access features that deal with change tracking. + + + + Provides access to configuration options for the context. + + An object used to access configuration options. + + + + Provides access to the underlying InternalContext for other parts of the internal design. + + + + + A simple representation of an app.config or web.config file. + + + + + Initializes a new instance of AppConfig based on supplied configuration + + Configuration to load settings from + + + + Initializes a new instance of AppConfig based on supplied connection strings + The default configuration for database initializers and default connection factory will be used + + Connection strings to be used + + + + Initializes a new instance of AppConfig based on the for the AppDomain + + + Use AppConfig.DefaultInstance instead of this constructor + + + + + Appies any database intializers specified in the configuration + + + + + Appies any database intializers specified in the configuration + + + Value indicating if initializers should be re-applied if they have already been applied in this AppDomain + + + + + Gets the specified connection string from the configuration + + Name of the connection string to get + The connection string, or null if there is no connection string with the specified name + + + + Gets the default connection factory based on the configuration + + + + + Gets a singleton instance of configuration based on the for the AppDomain + + + + + Acts as a proxy for that for the most part just passes calls + through to the real object but uses virtual methods/properties such that uses of the object + can be mocked. + + + + + Encapsulates information read from the application config file that specifies a database initializer + and allows that initializer to be dynamically applied. + + + + + Initializes a new instance of the class. + + The key from the entry in the config file. + The value from the enrty in the config file. + + + + Uses the context type and initializer type specified in the config to create an initializer instance + and set it with the DbDbatabase.SetInitializer method. + + + + + Reads all initializers from the application config file and sets them using the Database class. + + + + + Calculates the model hash values used the EdmMetadata table from EF 4.1/4.2. + + + + + Calculates an SHA256 hash of the EDMX from the given code first model. This is the hash stored in + the database in the EdmMetadata table in EF 4.1/4.2. The hash is always calculated using a v2 schema + as was generated by EF 4.1/4.2 and with the entity included in the model. + + + + + Acts as a proxy for that for the most part just passes calls + through to the real object but uses virtual methods/properties such that uses of the object + can be mocked. + + + + + An implementation of that will use Code First Migrations + to update the database to the latest version. + + + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + Initializes a new instance of the MigrateDatabaseToLatestVersion class. + + + + + Initializes a new instance of the MigrateDatabaseToLatestVersion class that will + use a specific connection string from the configuration file to connect to + the database to perform the migration. + + The name of the connection string to use for migration. + + + + + + + Helper class that is used to configure a column. + + + + + Creates a new column definition to store Binary data. + + Value indicating whether or not the column allows null values. + The maximum allowable length of the array data. + Value indicating whether or not all data should be padded to the maximum length. + Value indicating whether or not the maximum length supported by the database provider should be used. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + Value indicating whether or not this column should be configured as a timestamp. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Boolean data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Byte data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store DateTime data. + + Value indicating whether or not the column allows null values. + The precision of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Decimal data. + + Value indicating whether or not the column allows null values. + The numeric precision of the column. + The numeric scale of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + Value indicating whether or not the database will generate values for this column during insert. + The newly constructed column definition. + + + + Creates a new column definition to store Double data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store GUID data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Single data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Short data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Integer data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Long data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store String data. + + Value indicating whether or not the column allows null values. + The maximum allowable length of the string data. + Value indicating whether or not all data should be padded to the maximum length. + Value indicating whether or not the maximum length supported by the database provider should be used. + Value indicating whether or not the column supports Unicode content. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Time data. + + Value indicating whether or not the column allows null values. + The precision of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store DateTimeOffset data. + + Value indicating whether or not the column allows null values. + The precision of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store geography data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store geometry data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Helper class that is used to further configure a table being created from a CreateTable call on . + + + + + Initializes a new instance of the TableBuilder class. + + The table creation operation to be further configured. + The migration the table is created in. + + + + Specifies a primary key for the table. + + + A lambda expression representing the property to be used as the primary key. + C#: t => t.Id + VB.Net: Function(t) t.Id + + If the primary key is made up of multiple properties then specify an anonymous type including the properties. + C#: t => new { t.Id1, t.Id2 } + VB.Net: Function(t) New With { t.Id1, t.Id2 } + + + The name of the primary key. + If null is supplied, a default name will be generated. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + Itself, so that multiple calls can be chained. + + + + Specifies an index to be created on the table. + + + A lambda expression representing the property to be indexed. + C#: t => t.PropertyOne + VB.Net: Function(t) t.PropertyOne + + If multiple properties are to be indexed then specify an anonymous type including the properties. + C#: t => new { t.PropertyOne, t.PropertyTwo } + VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } + + A value indicating whether or not this is a unique index. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + Itself, so that multiple calls can be chained. + + + + Specifies a foreign key constraint to be created on the table. + + Name of the table that the foreign key constraint targets. + + A lambda expression representing the properties of the foreign key. + C#: t => t.PropertyOne + VB.Net: Function(t) t.PropertyOne + + If multiple properties make up the foreign key then specify an anonymous type including the properties. + C#: t => new { t.PropertyOne, t.PropertyTwo } + VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } + + A value indicating whether or not cascade delete should be configured on the foreign key constraint. + + + The name of this foreign key constraint. + If no name is supplied, a default name will be calculated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + Itself, so that multiple calls can be chained. + + + + Base class for code-based migrations. + + + + + Operations to be performed during the upgrade process. + + + + + Operations to be performed during the downgrade process. + + + + + Adds an operation to create a new table. + + + The columns in this create table operation. + You do not need to specify this type, it will be inferred from the columnsAction parameter you supply. + + The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. + + An action that specifies the columns to be included in the table. + i.e. t => new { Id = t.Int(identity: true), Name = t.String() } + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + An object that allows further configuration of the table creation operation. + + + + Adds an operation to create a new foreign key constraint. + + + The table that contains the foreign key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key column. + + The table that contains the column this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The column this foreign key references. + If no value is supplied the primary key of the principal table will be referenced. + + + A value indicating if cascade delete should be configured for the foreign key relationship. + If no value is supplied, cascade delete will be off. + + + The name of the foreign key constraint in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create a new foreign key constraint. + + + The table that contains the foreign key columns. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key columns. + + The table that contains the columns this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The columns this foreign key references. + If no value is supplied the primary key of the principal table will be referenced. + + + A value indicating if cascade delete should be configured for the foreign key relationship. + If no value is supplied, cascade delete will be off. + + + The name of the foreign key constraint in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a foreign key constraint based on its name. + + + The table that contains the foreign key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the foreign key constraint in the database. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a foreign key constraint based on the column it targets. + + + The table that contains the foreign key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key column. + + The table that contains the column this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + The columns this foreign key references. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a foreign key constraint based on the columns it targets. + + + The table that contains the foreign key columns. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key columns. + + The table that contains the columns this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + The columns this foreign key references. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a table. + + + The name of the table to be dropped. + Schema name is optional, if no schema is specified then dbo is assumed. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to move a table to a new schema. + + + The name of the table to be moved. + Schema name is optional, if no schema is specified then dbo is assumed. + + The schema the table is to be moved to. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to rename a table. To change the schema of a table use MoveTable + + + The name of the table to be renamed. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The new name for the table. + Schema name is optional, if no schema is specified then dbo is assumed. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to rename a column. + + + The name of the table that contains the column to be renamed. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to be renamed. + The new name for the column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to add a column to an existing table. + + + The name of the table to add the column to. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The name of the column to be added. + + + An action that specifies the column to be added. + i.e. c => c.Int(nullable: false, defaultValue: 3) + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an existing column. + + + The name of the table to drop the column from. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to alter the definition of an existing column. + + + The name of the table the column exists in. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to be changed. + + An action that specifies the new definition for the column. + i.e. c => c.String(nullable: false, defaultValue: "none") + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create a new primary key. + + + The table that contains the primary key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The primary key column. + + The name of the primary key in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create a new primary key based on multiple columns. + + + The table that contains the primary key columns. + Schema name is optional, if no schema is specified then dbo is assumed. + + The primary key columns. + + The name of the primary key in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an existing primary key that does not have the default name. + + + The table that contains the primary key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the primary key to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an existing primary key that was created with the default name. + + + The table that contains the primary key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create an index on a single column. + + + The name of the table to create the index on. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to create the index on. + + A value indicating if this is a unique index. + If no value is supplied a non-unique index will be created. + + + The name to use for the index in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create an index on multiple columns. + + + The name of the table to create the index on. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the columns to create the index on. + + A value indicating if this is a unique index. + If no value is supplied a non-unique index will be created. + + + The name to use for the index in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an index based on its name. + + + The name of the table to drop the index from. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the index to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an index based on the columns it targets. + + + The name of the table to drop the index from. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column(s) the index targets. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to execute a SQL command. + + The SQL to be executed. + + A value indicating if the SQL should be executed outside of the + transaction being used for the migration process. + If no value is supplied the SQL will be executed within the transaction. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Configuration relating to the use of migrations for a given model. + You will typically create a configuration class that derives + from rather than + using this class. + + + + + Initializes a new instance of the DbMigrationsConfiguration class. + + + + + Adds a new SQL generator to be used for a given database provider. + + Name of the database provider to set the SQL generator for. + The SQL generator to be used. + + + + Gets the SQL generator that is set to be used with a given database provider. + + Name of the database provider to get the SQL generator for. + The SQL generator that is set for the database provider. + + + + Gets or sets a value indicating if automatic migrations can be used when migration the database. + + + + + Gets or sets a value indicating if data loss is acceptable during automatic migration. + If set to false an exception will be thrown if data loss may occur as part of an automatic migration. + + + + + Gets or sets the derived DbContext representing the model to be migrated. + + + + + Gets or sets the namespace used for code-based migrations. + + + + + Gets or sets the sub-directory that code-based migrations are stored in. + + + + + Gets or sets the code generator to be used when scaffolding migrations. + + + + + Gets or sets the assembly containing code-based migrations. + + + + + Gets or sets a value to override the connection of the database to be migrated. + + + + + Gets or sets the timeout value used for the individual commands within a + migration. A null value indicates that the default value of the underlying + provider will be used. + + + + + Configuration relating to the use of migrations for a given model. + + The context representing the model that this configuration applies to. + + + + Initializes a new instance of the DbMigrationsConfiguration class. + + + + + Runs after upgrading to the latest migration to allow seed data to be updated. + + Context to be used for updating seed data. + + + + DbMigrator is used to apply existing migrations to a database. + DbMigrator can be used to upgrade and downgrade to any given migration. + To scaffold migrations based on changes to your model use + + + + + Base class for decorators that wrap the core + + + + + Initializes a new instance of the MigratorBase class. + + The migrator that this decorator is wrapping. + + + + Gets a list of the pending migrations that have not been applied to the database. + + List of migration Ids + + + + Updates the target database to the latest migration. + + + + + Updates the target database to a given migration. + + The migration to upgrade/downgrade to. + + + + Gets a list of the migrations that are defined in the assembly. + + List of migration Ids + + + + Gets a list of the migrations that have been applied to the database. + + List of migration Ids + + + + Gets the configuration being used for the migrations process. + + + + + Migration Id representing the state of the database before any migrations are applied. + + + + + Initializes a new instance of the DbMigrator class. + + Configuration to be used for the migration process. + + + + Gets all migrations that are defined in the configured migrations assembly. + + + + + Gets all migrations that have been applied to the target database. + + + + + Gets all migrations that are defined in the assembly but haven't been applied to the target database. + + + + + Updates the target database to a given migration. + + The migration to upgrade/downgrade to. + + + + Gets the configuration that is being used for the migration process. + + + + + A set of extension methods for + + + + + Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation + from database terminology. + This method can useful when seeding data using Migrations. + + The entities to add or update. + + When the parameter is a custom or fake IDbSet implementation, this method will + attempt to locate and invoke a public, instance method with the same signature as this extension method. + + + + + Adds or updates entities by a custom identification expression when SaveChanges is called. + Equivalent to an "upsert" operation from database terminology. + This method can useful when seeding data using Migrations. + + + An expression specifying the properties that should be used when determining + whether an Add or Update operation should be performed. + + The entities to add or update. + + When the parameter is a custom or fake IDbSet implementation, this method will + attempt to locate and invoke a public, instance method with the same signature as this extension method. + + + + + Generates C# code for a code-based migration. + + + + + Base class for providers that generate code for code-based migrations. + + + + + Generates the code that should be added to the users project. + + Unique identifier of the migration. + Operations to be performed by the migration. + Source model to be stored in the migration metadata. + Target model to be stored in the migration metadata. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Gets the namespaces that must be output as "using" or "Imports" directives to handle + the code generated by the given operations. + + The operations for which code is going to be generated. + An ordered list of namespace names. + + + + Gets the default namespaces that must be output as "using" or "Imports" directives for + any code generated. + + A value indicating if this class is being generated for a code-behind file. + An ordered list of namespace names. + + + + + + + Generates the primary code file that the user can view and edit. + + Operations to be performed by the migration. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates the code behind file with migration metadata. + + Unique identifier of the migration. + Source model to be stored in the migration metadata. + Target model to be stored in the migration metadata. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates a property to return the source or target model in the code behind file. + + Name of the property. + Value to be returned. + Text writer to add the generated code to. + + + + Generates a namespace, using statements and class definition. + + Namespace that code should be generated in. + Name of the class that should be generated. + Text writer to add the generated code to. + Base class for the generated class. + A value indicating if this class is being generated for a code-behind file. + Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. + + + + Generates the closing code for a class that was started with WriteClassStart. + + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify a set of column names using a lambda expression. + + The columns to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify the definition for a . + + The column definition to generate code for. + Text writer to add the generated code to. + A value indicating whether to include the column name in the definition. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column of unknown data type. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Removes any invalid characters from the name of an database artifact. + + The name to be scrubbed. + The scrubbed name. + + + + Gets the type name to use for a column of the given data type. + + The data type to translate. + The type name to use in the generated migration. + + + + Quotes an identifier using appropriate escaping to allow it to be stored in a string. + + The identifier to be quoted. + The quoted identifier. + + + + Scaffolds code-based migrations to apply pending model changes to the database. + + + + + Initializes a new instance of the MigrationScaffolder class. + + Configuration to be used for scaffolding. + + + + Scaffolds a code based migration to apply any pending model changes to the database. + + The name to use for the scaffolded migration. + The scaffolded migration. + + + + Scaffolds a code based migration to apply any pending model changes to the database. + + The name to use for the scaffolded migration. + Whether or not to include model changes. + The scaffolded migration. + + + + Scaffolds the initial code-based migration corresponding to a previously run database initializer. + + The scaffolded migration. + + + + Gets or sets the namespace used in the migration's generated code. + + By default, this is the same as MigrationsNamespace on the migrations + configuration object passed into the constructor. For VB.NET projects, this + will need to be updated to take into account the project's root namespace. + + + + + Represents a code-based migration that has been scaffolded and is ready to be written to a file. + + + + + Gets or sets the unique identifier for this migration. + Typically used for the file name of the generated code. + + + + + Gets or sets the scaffolded migration code that the user can edit. + + + + + Gets or sets the scaffolded migration code that should be stored in a code behind file. + + + + + Gets or sets the programming language used for this migration. + Typically used for the file extension of the generated code. + + + + + Gets or sets the subdirectory in the user's project that this migration should be saved in. + + + + + Gets a dictionary of string resources to add to the migration resource file. + + + + + Represents an exception that occurred while running an operation in another AppDomain in the . + + + + + Initializes a new instance of the ToolingException class. + + Error that explains the reason for the exception. + The type of the exception that was thrown. + The stack trace of the exception that was thrown. + + + + + + + + + + Gets the type of the exception that was thrown. + + + + + Gets the stack trace of the exception that was thrown. + + + + + Helper class that is used by design time tools to run migrations related + commands that need to interact with an application that is being edited + in Visual Studio. + + Because the application is being edited the assemblies need to + be loaded in a separate AppDomain to ensure the latest version + is always loaded. + + The App/Web.config file from the startup project is also copied + to ensure that any configuration is applied. + + + + + Initializes a new instance of the ToolingFacade class. + + + The name of the assembly that contains the migrations configuration to be used. + + + The namespace qualified name of migrations configuration to be used. + + + The working directory containing the compiled assemblies. + + + The path of the config file from the startup project. + + + The path of the application data directory from the startup project. + Typically the App_Data directory for web applications or the working directory for executables. + + + The connection to the database to be migrated. + If null is supplied, the default connection for the context will be used. + + + + + Releases all unmanaged resources used by the facade. + + + + + Gets the fully qualified name of all types deriving from . + + All context types found. + + + + Gets the fully qualified name of a type deriving from . + + The name of the context type. If null, the single context type found in the assembly will be returned. + The context type found. + + + + Gets a list of all migrations that have been applied to the database. + + Ids of applied migrations. + + + + Gets a list of all migrations that have not been applied to the database. + + Ids of pending migrations. + + + + Updates the database to the specified migration. + + + The Id of the migration to migrate to. + If null is supplied, the database will be updated to the latest migration. + + Value indicating if data loss during automatic migration is acceptable. + + + + Generates a SQL script to migrate between two migrations. + + + The migration to update from. + If null is supplied, a script to update the current database will be produced. + + + The migration to update to. + If null is supplied, a script to update to the latest migration will be produced. + + Value indicating if data loss during automatic migration is acceptable. + The generated SQL script. + + + + Scaffolds a code-based migration to apply any pending model changes. + + The name for the generated migration. + The programming language of the generated migration. + The root namespace of the project the migration will be added to. + Whether or not to include model changes. + The scaffolded migration. + + + + Scaffolds the initial code-based migration corresponding to a previously run database initializer. + + The programming language of the generated migration. + The root namespace of the project the migration will be added to. + The scaffolded migration. + + + + + + + Releases all resources used by the facade. + + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + + Gets or sets an action to be run to log information. + + + + + Gets or sets an action to be run to log warnings. + + + + + Gets or sets an action to be run to log verbose information. + + + + + Base class for loggers that can be used for the migrations process. + + + + + Logs an informational message. + + The message to be logged. + + + + Logs a warning that the user should be made aware of. + + The message to be logged. + + + + Logs some additional information that should only be presented to the user if they request verbose output. + + The message to be logged. + + + + Generates VB.Net code for a code-based migration. + + + + + + + + Generates the primary code file that the user can view and edit. + + Operations to be performed by the migration. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates the code behind file with migration metadata. + + Unique identifier of the migration. + Source model to be stored in the migration metadata. + Target model to be stored in the migration metadata. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates a property to return the source or target model in the code behind file. + + Name of the property. + Value to be returned. + Text writer to add the generated code to. + + + + Generates a namespace, using statements and class definition. + + Namespace that code should be generated in. + Name of the class that should be generated. + Text writer to add the generated code to. + Base class for the generated class. + A value indicating if this class is being generated for a code-behind file. + Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. + + + + Generates the closing code for a class that was started with WriteClassStart. + + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify a set of column names using a lambda expression. + + The columns to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify the definition for a . + + The column definition to generate code for. + Text writer to add the generated code to. + A value indicating whether to include the column name in the definition. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column of unknown data type. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Removes any invalid characters from the name of an database artifact. + + The name to be scrubbed. + The scrubbed name. + + + + Gets the type name to use for a column of the given data type. + + The data type to translate. + The type name to use in the generated migration. + + + + Quotes an identifier using appropriate escaping to allow it to be stored in a string. + + The identifier to be quoted. + The quoted identifier. + + + + This class is used by Code First Migrations to read and write migration history + from the database. It is not intended to be used by other code and is only public + so that it can be accessed by EF when running under partial trust. It may be + changed or removed in the future. + + + + + Gets or sets the Id of the migration this row represents. + + + + + Gets or sets the date and time that this migrations history entry was created. + + + + + Gets or sets the state of the model after this migration was applied. + + + + + Gets or sets the version of Entity Framework that created this entry. + + + + + This is a version of the HistoryContext that still includes CreatedOn in its model. + It is used when figuring out whether or not the CreatedOn column exists and so should + be dropped. + + + + + Represents an error that occurs when an automatic migration would result in data loss. + + + + + Represents errors that occur inside the Code First Migrations pipeline. + + + + + Initializes a new instance of the MigrationsException class. + + + + + Initializes a new instance of the MigrationsException class. + + The message that describes the error. + + + + Initializes a new instance of the MigrationsException class. + + The message that describes the error. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the MigrationsException class with serialized data. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + + Initializes a new instance of the AutomaticDataLossException class. + + The message that describes the error. + + + + Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled. + + + + + Initializes a new instance of the AutomaticMigrationsDisabledException class. + + The message that describes the error. + + + + Provides additional metadata about a code-based migration. + + + + + Gets the unique identifier for the migration. + + + + + Gets the state of the model before this migration is run. + + + + + Gets the state of the model after this migration is run. + + + + + Decorator to provide logging during migrations operations.. + + + + + Initializes a new instance of the MigratorLoggingDecorator class. + + The migrator that this decorator is wrapping. + The logger to write messages to. + + + + Decorator to produce a SQL script instead of applying changes to the database. + Using this decorator to wrap will prevent + from applying any changes to the target database. + + + + + Initializes a new instance of the MigratorScriptingDecorator class. + + The migrator that this decorator is wrapping. + + + + + Represents a column being added to a table. + + + + + Represents an operation to modify a database schema. + + + + + Initializes a new instance of the MigrationOperation class. + + + + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets additional arguments that may be processed by providers. + + + + + Gets an operation that will revert this operation. + + + + + Gets a value indicating if this operation may result in data loss. + + + + + Initializes a new instance of the AddColumnOperation class. + + The name of the table the column should be added to. + Details of the column being added. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table the column should be added to. + + + + + Gets the details of the column being added. + + + + + Gets an operation that represents dropping the added column. + + + + + + + + Represents a foreign key constraint being added to a table. + + + + + Base class for changes that affect foreign key constraints. + + + + + Initializes a new instance of the ForeignKeyOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets the name of the table that the foreign key constraint targets. + + + + + Gets or sets the name of the table that the foreign key columns exist in. + + + + + The names of the foreign key column(s). + + + + + Gets a value indicating if a specific name has been supplied for this foreign key constraint. + + + + + Gets or sets the name of this foreign key constraint. + If no name is supplied, a default name will be calculated. + + + + + Initializes a new instance of the AddForeignKeyOperation class. + The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to create an index on the foreign key column(s). + + An operation to add the index. + + + + The names of the column(s) that the foreign key constraint should target. + + + + + Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint. + + + + + Gets an operation to drop the foreign key constraint. + + + + + + + + Represents adding a primary key to a table. + + + + + Common base class to represent operations affecting primary keys. + + + + + Initializes a new instance of the PrimaryKeyOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets the name of the table that contains the primary key. + + + + + Gets the column(s) that make up the primary key. + + + + + Gets a value indicating if a specific name has been supplied for this primary key. + + + + + Gets or sets the name of this primary key. + If no name is supplied, a default name will be calculated. + + + + + + + + Initializes a new instance of the AddPrimaryKeyOperation class. + The Table and Columns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to drop the primary key. + + + + + Represents altering an existing column. + + + + + Initializes a new instance of the AlterColumnOperation class. + + The name of the table that the column belongs to. + Details of what the column should be altered to. + Value indicating if this change will result in data loss. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the AlterColumnOperation class. + + The name of the table that the column belongs to. + Details of what the column should be altered to. + Value indicating if this change will result in data loss. + An operation to revert this alteration of the column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table that the column belongs to. + + + + + Gets the new definition for the column. + + + + + Gets an operation that represents reverting the alteration. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents information about a column. + + + + + Initializes a new instance of the class. + + The data type for this column. + + + + Initializes a new instance of the class. + + The data type for this column. + + Additional details about the data type. + This includes details such as maximum length, nullability etc. + + + + + Determines if this column is a narrower data type than another column. + Used to determine if altering the supplied column definition to this definition will result in data loss. + + The column to compare to. + Details of the database provider being used. + True if this column is of a narrower data type. + + + + Gets the data type for this column. + + + + + Gets the CLR type corresponding to the database type of this column. + + + + + Gets the default value for the CLR type corresponding to the database type of this column. + + + + + Gets additional details about the data type of this column. + This includes details such as maximum length, nullability etc. + + + + + Gets or sets the name of the column. + + + + + Gets or sets a provider specific data type to use for this column. + + + + + Gets or sets a value indicating if this column can store null values. + + + + + Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern. + + + + + Gets or sets the maximum length for this column. + Only valid for array data types. + + + + + Gets or sets the precision for this column. + Only valid for decimal data types. + + + + + Gets or sets the scale for this column. + Only valid for decimal data types. + + + + + Gets or sets a constant value to use as the default value for this column. + + + + + Gets or sets a SQL expression used as the default value for this column. + + + + + Gets or sets a value indicating if this column is fixed length. + Only valid for array data types. + + + + + Gets or sets a value indicating if this column supports Unicode characters. + Only valid for textual data types. + + + + + Gets or sets a value indicating if this column should be configured as a timestamp. + + + + + Represents creating a database index. + + + + + Common base class for operations affecting indexes. + + + + + Initializes a new instance of the IndexOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets the table the index belongs to. + + + + + Gets or sets the columns that are indexed. + + + + + Gets a value indicating if a specific name has been supplied for this index. + + + + + Gets or sets the name of this index. + If no name is supplied, a default name will be calculated. + + + + + Initializes a new instance of the CreateIndexOperation class. + The Table and Columns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets a value indicating if this is a unique index. + + + + + Gets an operation to drop this index. + + + + + + + + Represents creating a table. + + + + + Initializes a new instance of the CreateTableOperation class. + + Name of the table to be created. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be created. + + + + + Gets the columns to be included in the new table. + + + + + Gets or sets the primary key for the new table. + + + + + Gets an operation to drop the table. + + + + + + + + Represents deleting a new record from the migrations history table. + The migrations history table is used to store a log of the migrations that have been applied to the database. + + + + + Common base class for operations that affect the migrations history table. + The migrations history table is used to store a log of the migrations that have been applied to the database. + + + + + Initializes a new instance of the HistoryOperation class. + + Name of the migrations history table. + Name of the migration being affected. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the migrations history table. + + + + + Gets the name of the migration being affected. + + + + + + + + Initializes a new instance of the DeleteHistoryOperation class. + + Name of the migrations history table. + Id of the migration record to be deleted. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Represents a column being dropped from a table. + + + + + Initializes a new instance of the DropColumnOperation class. + + The name of the table the column should be dropped from. + The name of the column to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropColumnOperation class. + + The name of the table the column should be dropped from. + The name of the column to be dropped. + The operation that represents reverting the drop operation. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table the column should be dropped from. + + + + + Gets the name of the column to be dropped. + + + + + Gets an operation that represents reverting dropping the column. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents a foreign key constraint being dropped from a table. + + + + + Initializes a new instance of the DropForeignKeyOperation class. + The PrincipalTable, DependentTable and DependentColumns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropForeignKeyOperation class. + + The operation that represents reverting dropping the foreign key constraint. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to drop the associated index on the foreign key column(s). + + An operation to drop the index. + + + + Gets an operation that represents reverting dropping the foreign key constraint. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents dropping an existing index. + + + + + Initializes a new instance of the DropIndexOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropIndexOperation class. + + The operation that represents reverting dropping the index. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation that represents reverting dropping the index. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents dropping a primary key from a table. + + + + + Initializes a new instance of the DropPrimaryKeyOperation class. + The Table and Columns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to add the primary key. + + + + + Represents dropping an existing table. + + + + + Initializes a new instance of the DropTableOperation class. + + The name of the table to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropTableOperation class. + + The name of the table to be dropped. + An operation that represents reverting dropping the table. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be dropped. + + + + + Gets an operation that represents reverting dropping the table. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents inserting a new record into the migrations history table. + The migrations history table is used to store a log of the migrations that have been applied to the database. + + + + + Initializes a new instance of the InsertHistoryOperation class. + + Name of the migrations history table. + Id of the migration record to be inserted. + Value to be stored in the model column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the value to store in the history table representing the target model of the migration. + + + + + Gets the value to store in the history table indicating the version of Entity Framework used to produce this migration. + + + + + + + + Represents moving a table from one schema to another. + + + + + Initializes a new instance of the MoveTableOperation class. + + Name of the table to be moved. + Name of the schema to move the table to. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be moved. + + + + + Gets the name of the schema to move the table to. + + + + + Gets an operation that moves the table back to its original schema. + + + + + + + + Represents renaming an existing column. + + + + + Initializes a new instance of the RenameColumnOperation class. + + Name of the table the column belongs to. + Name of the column to be renamed. + New name for the column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table the column belongs to. + + + + + Gets the name of the column to be renamed. + + + + + Gets the new name for the column. + + + + + Gets an operation that reverts the rename. + + + + + + + + Represents renaming an existing table. + + + + + Initializes a new instance of the RenameTableOperation class. + + Name of the table to be renamed. + New name for the table. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be renamed. + + + + + Gets the new name for the table. + + + + + Gets an operation that reverts the rename. + + + + + + + + Represents a provider specific SQL statement to be executed directly against the target database. + + + + + Initializes a new instance of the SqlOperation class. + + The SQL to be executed. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the SQL to be executed. + + + + + Gets or sets a value indicating whether this statement should be performed outside of + the transaction scope that is used to make the migration process transactional. + If set to true, this operation will not be rolled back if the migration process fails. + + + + + + + + Common base class for providers that convert provider agnostic migration + operations into database provider specific SQL commands. + + + + + Converts a set of migration operations into database provider specific SQL. + + The operations to be converted. + Token representing the version of the database being targeted. + A list of SQL statements to be executed to perform the migration operations. + + + + Represents a migration operation that has been translated into a SQL statement. + + + + + Gets or sets the SQL to be executed to perform this migration operation. + + + + + Gets or sets a value indicating whether this statement should be performed outside of + the transaction scope that is used to make the migration process transactional. + If set to true, this operation will not be rolled back if the migration process fails. + + + + + Provider to convert provider agnostic migration operations into SQL commands + that can be run against Microsoft SQL Server Compact Edition. + + + + + Provider to convert provider agnostic migration operations into SQL commands + that can be run against a Microsoft SQL Server database. + + + + + Converts a set of migration operations into Microsoft SQL Server specific SQL. + + The operations to be converted. + Token representing the version of SQL Server being targeted (i.e. "2005", "2008"). + A list of SQL statements to be executed to perform the migration operations. + + + + Creates an empty connection for the current provider. + Allows derived providers to use connection other than . + + + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL to mark a table as a system table. + Generated SQL should be added using the Statement method. + + The table to mark as a system table. + + + + Generates SQL to create a database schema. + Generated SQL should be added using the Statement method. + + The name of the schema to create. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL to specify a constant byte[] default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant bool default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant DateTime default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant DateTimeOffset default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant Guid default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant string default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant TimeSpan default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant geogrpahy default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant geometry default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify the data type of a column. + This method just generates the actual type, not the SQL to create the column. + + The definition of the column. + SQL representing the data type. + + + + Generates a quoted name. The supplied name may or may not contain the schema. + + The name to be quoted. + The quoted name. + + + + Quotes an identifier for SQL Server. + + The identifier to be quoted. + The quoted identifier. + + + + Adds a new Statement to be executed against the database. + + The statement to be executed. + + Gets or sets a value indicating whether this statement should be performed outside of + the transaction scope that is used to make the migration process transactional. + If set to true, this operation will not be rolled back if the migration process fails. + + + + + Gets a new that can be used to build SQL. + + This is just a helper method to create a writer. Writing to the writer will + not cause SQL to be registered for execution. You must pass the generated + SQL to the Statement method. + + An empty text writer to use for SQL generation. + + + + Adds a new Statement to be executed against the database. + + The writer containing the SQL to be executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Utility class to prep the user's config file to run in an AppDomain + + + + + Updates a config file by adding binding redirects for EntityFramework.dll. + This ensures that the user's code can be ran in an AppDomain and the exact + same version of the assembly will be used for both domains. + + That path of the user's config file. Can also be null or a path to an non-existent file. + The path of the updated config file. It is the caller's responsibility to delete this. + + + + The same as but works in partial trust. + + + + + Specifies the default tab string. This field is constant. + + + + + Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string. + + The to use for output. + + + + Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string. + + The to use for output. + The tab string to use for indentation. + + + + Closes the document being written to. + + + + + Flushes the stream. + + + + + Outputs the tab string once for each level of indentation according to the property. + + + + + Writes the specified string to the text stream. + + The string to write. + + + + Writes the text representation of a Boolean value to the text stream. + + The Boolean value to write. + + + + Writes a character to the text stream. + + The character to write. + + + + Writes a character array to the text stream. + + The character array to write. + + + + Writes a subarray of characters to the text stream. + + The character array to write data from. + Starting index in the buffer. + The number of characters to write. + + + + Writes the text representation of a Double to the text stream. + + The double to write. + + + + Writes the text representation of a Single to the text stream. + + The single to write. + + + + Writes the text representation of an integer to the text stream. + + The integer to write. + + + + Writes the text representation of an 8-byte integer to the text stream. + + The 8-byte integer to write. + + + + Writes the text representation of an object to the text stream. + + The object to write. + + + + Writes out a formatted string, using the same semantics as specified. + + The formatting string. + The object to write into the formatted string. + + + + Writes out a formatted string, using the same semantics as specified. + + The formatting string to use. + The first object to write into the formatted string. + The second object to write into the formatted string. + + + + Writes out a formatted string, using the same semantics as specified. + + The formatting string to use. + The argument array to output. + + + + Writes the specified string to a line without tabs. + + The string to write. + + + + Writes the specified string, followed by a line terminator, to the text stream. + + The string to write. + + + + Writes a line terminator. + + + + + Writes the text representation of a Boolean, followed by a line terminator, to the text stream. + + The Boolean to write. + + + + Writes a character, followed by a line terminator, to the text stream. + + The character to write. + + + + Writes a character array, followed by a line terminator, to the text stream. + + The character array to write. + + + + Writes a subarray of characters, followed by a line terminator, to the text stream. + + The character array to write data from. + Starting index in the buffer. + The number of characters to write. + + + + Writes the text representation of a Double, followed by a line terminator, to the text stream. + + The double to write. + + + + Writes the text representation of a Single, followed by a line terminator, to the text stream. + + The single to write. + + + + Writes the text representation of an integer, followed by a line terminator, to the text stream. + + The integer to write. + + + + Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. + + The 8-byte integer to write. + + + + Writes the text representation of an object, followed by a line terminator, to the text stream. + + The object to write. + + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + + The formatting string. + The object to write into the formatted string. + + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + + The formatting string to use. + The first object to write into the formatted string. + The second object to write into the formatted string. + + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + + The formatting string to use. + The argument array to output. + + + + Writes the text representation of a UInt32, followed by a line terminator, to the text stream. + + A UInt32 to output. + + + + Gets the encoding for the text writer to use. + + + An that indicates the encoding for the text writer to use. + + + + + Gets or sets the new line character to use. + + + The new line character to use. + + + + + Gets or sets the number of spaces to indent. + + + The number of spaces to indent. + + + + + Gets the to use. + + + The to use. + + + + + Used for generating values that are always in sequential + order for the calling thread. + + + + + Returns the value of unless this value would be the same as the + last value returned by this thread calling this method, in which case the thread pushes the value + a little bit into the future. The comparison is in terms of the form used to store migration ID + in the database--i.e. to the 1/10 second. + + + There should never be any pushing to the future involved for normal use of migrations, but when + this method is called in rapid succession while testing or otherwise calling the DbMigrator APIs + there may be occasional sleeping. + + + + + Same as UtcNow method bur returns the time in the timestamp format used in migration IDs. + + + + + Convention to apply column ordering specified via + or the API. This convention throws if a duplicate configured column order + is detected. + + + + + Convention to apply column ordering specified via + or the API. + + + + + Identifies conventions that can be removed from a instance. + + /// + Note that implementations of this interface must be immutable. + + + + + Strongly-typed and parameterized string resources. + + + + + A string like "Applying automatic migration: {0}." + + + + + A string like "Reverting automatic migration: {0}." + + + + + A string like "Applying code-based migration: {0}." + + + + + A string like "Reverting code-based migration: {0}." + + + + + A string like "Applying code-based migrations: [{1}]." + + + + + A string like "Reverting migrations: [{1}]." + + + + + A string like "Target database is already at version {0}." + + + + + A string like "Target database is: {0}." + + + + + A string like "'{1}' (DataSource: {0}, Provider: {2}, Origin: {3})" + + + + + A string like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id." + + + + + A string like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key." + + + + + A string like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp." + + + + + A string like "'{0}' is not a valid migration. Code-based migrations must be used for both source and target when scripting the upgrade between them." + + + + + A string like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory." + + + + + A string like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead." + + + + + A string like "The migrations configuration type '{0}' was not be found in the assembly '{1}'." + + + + + A string like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use." + + + + + A string like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)." + + + + + A string like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use." + + + + + A string like "The type '{0}' is not a migrations configuration type." + + + + + A string like "The migrations configuration type '{0}' must have a public default constructor." + + + + + A string like "The migrations configuration type '{0}' must not be abstract." + + + + + A string like "The migrations configuration type '{0}' must not be generic." + + + + + A string like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added." + + + + + + A string like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators." + + + + + A string like "Could not load assembly '{0}'. (If you are using Code First Migrations inside Visual Studio this can happen if the startUp project for your solution does not reference the project that contains your migrations. You can either change the startUp project for your solution or use the -StartUpProjectName parameter.)" + + + + + A string like "No context type was found in the assembly '{0}'." + + + + + A string like "More than one context type was found in the assembly '{0}'." + + + + + A string like "To enable migrations for {0}, use Enable-Migrations -ContextTypeName {0}." + + + + + A string like "The context type '{0}' was not found in the assembly '{1}'." + + + + + A string like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context." + + + + + A string like "The argument '{0}' cannot be null, empty or contain only white space." + + + + + A string like "The argument property '{0}' cannot be null." + + + + + A string like "The precondition '{0}' failed. {1}" + + + + + A string like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type." + + + + + A string like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type." + + + + + A string like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + A string like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + A string like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property." + + + + + A string like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property." + + + + + A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'." + + + + + A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'." + + + + + A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + + A string like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}" + + + + + A string like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}" + + + + + A string like "{0} = {1} conflicts with {2} = {3}" + + + + + A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject." + + + + + A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject." + + + + + A string like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys." + + + + + A string like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities." + + + + + A string like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + A string like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + A string like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys." + + + + + A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty." + + + + + A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names." + + + + + A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name." + + + + + A string like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API." + + + + + A string like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property." + + + + + A string like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property." + + + + + A string like "\t{0}: {1}: {2}" + + + + + A string like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'." + + + + + A string like "The {0} value '{1}' already exists in the user-defined dictionary." + + + + + A string like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call." + + + + + A string like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name." + + + + + A string like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax." + + + + + A string like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation." + + + + + A string like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string." + + + + + A string like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set." + + + + + A string like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model." + + + + + A string like "Unable to determine the provider name for connection of type '{0}'." + + + + + A string like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length." + + + + + A string like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length." + + + + + A string like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method." + + + + + A string like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once." + + + + + A string like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once." + + + + + A string like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used." + + + + + A string like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them." + + + + + A string like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type." + + + + + A string like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types." + + + + + A string like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified." + + + + + A string like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns." + + + + + A string like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations." + + + + + A string like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. " + + + + + A string like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. " + + + + + A string like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct." + + + + + A string like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct." + + + + + A string like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties." + + + + + A string like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation." + + + + + A string like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor." + + + + + A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor." + + + + + + A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state." + + + + + A string like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model." + + + + + + A string like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed." + + + + + A string like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created." + + + + + + + A string like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method." + + + + + A string like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method." + + + + + A string like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method." + + + + + A string like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method." + + + + + A string like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method." + + + + + A string like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property." + + + + + A string like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property."" + + + + + A string like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties."" + + + + + A string like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'." + + + + + A string like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead." + + + + + A string like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'." + + + + + A string like "The expression passed to method {0} must represent a property defined on the type '{1}'." + + + + + A string like "{0} cannot be used for entities in the {1} state." + + + + + A string like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'." + + + + + A string like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property." + + + + + A string like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'." + + + + + A string like "The '{0}' property does not exist or is not mapped for the type '{1}'." + + + + + A string like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'." + + + + + A string like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'." + + + + + A string like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties." + + + + + A string like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties." + + + + + A string like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null." + + + + + A string like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null." + + + + + A string like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)." + + + + + A string like "Database '{0}' cannot be created because it already exists." + + + + + + + A string like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. See inner exception for details." + + + + + A string like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once." + + + + + A string like "Failed to set Database.DefaultConnectionFactory to an instance of the '{0}' type as specified in the application configuration. See inner exception for details." + + + + + A string like "The type '{0}' could not be found. The type name must be an assembly-qualified name." + + + + + A string like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute."" + + + + + A string like "The entity found was of type {0} when an entity of type {1} was requested." + + + + + A string like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types." + + + + + A string like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute." + + + + + A string like "The entity type {0} is not part of the model for the current context." + + + + + A string like "No connection string named '{0}' could be found in the application config file." + + + + + A string like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor." + + + + + A string like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'." + + + + + A string like "The context type '{0}' must have a public constructor taking an EntityConnection." + + + + + A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.IsValid. See the inner exception for details." + + + + + A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.Validate. See the inner exception for details." + + + + + A string like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file." + + + + + A string like "The context factory type '{0}' must have a public default constructor." + + + + + A string like "The '{0}' property of EdmPrimitiveType is fixed and cannot be set." + + + + + A string like "The namespace '{0}' is a system namespace and cannot be used by other schemas. Choose another namespace name." + + + + + A string like "Role '{0}' in AssociationSets '{1}' and '{2}' refers to the same EntitySet '{3}' in EntityContainer '{4}'. Make sure that if two or more AssociationSets refer to the same AssociationType, the ends do not refer to the same EntitySet." + + + + + A string like "The referenced EntitySet '{0}' for End '{1}' could not be found in the containing EntityContainer." + + + + + A string like "Type '{0}' is derived from type '{1}' that is the type for EntitySet '{2}'. Type '{0}' defines new concurrency requirements that are not allowed for subtypes of base EntitySet types." + + + + + A string like "EntitySet '{0}' is based on type '{1}' that has no keys defined." + + + + + A string like "The end name '{0}' is already defined." + + + + + A string like "The key specified in EntityType '{0}' is not valid. Property '{1}' is referenced more than once in the Key element." + + + + + A string like "Property '{0}' has a CollectionKind specified but is not a collection property." + + + + + A string like "Property '{0}' has a CollectionKind specified. CollectionKind is only supported in version 1.1 EDM models." + + + + + A string like "ComplexType '{0}' is marked as abstract. Abstract ComplexTypes are only supported in version 1.1 EDM models." + + + + + A string like "ComplexType '{0}' has a BaseType specified. ComplexType inheritance is only supported in version 1.1 EDM models." + + + + + A string like "Key part '{0}' for type '{1}' is not valid. All parts of the key must be non-nullable." + + + + + A string like "The property '{0}' in EntityType '{1}' is not valid. All properties that are part of the EntityKey must be of PrimitiveType." + + + + + A string like "Key usage is not valid. The {0} class cannot define keys because one of its base classes ('{1}') defines keys." + + + + + A string like "EntityType '{0}' has no key defined. Define the key for this EntityType." + + + + + A string like "NavigationProperty is not valid. Role '{0}' or Role '{1}' is not defined in Relationship '{2}'." + + + + + A string like "End '{0}' on relationship '{1}' cannot have an operation specified because its multiplicity is '*'. Operations cannot be specified on ends with multiplicity '*'." + + + + + A string like "Each Name and PluralName in a relationship must be unique. '{0}' is already defined." + + + + + A string like "In relationship '{0}', the Principal and Dependent Role of the referential constraint refer to the same Role in the relationship type." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Valid values for multiplicity for the Principal Role are '0..1' or '1'." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because all the properties in the Dependent Role are nullable, multiplicity of the Principal Role must be '0..1'." + + + + + A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because at least one of the properties in the Dependent Role is non-nullable, multiplicity of the Principal Role must be '1'." + + + + + A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because all of the properties in the Dependent Role are non-nullable, multiplicity of the Principal Role must be '1'." + + + + + A string like "Properties referred by the Dependent Role '{0}' must be a subset of the key of the EntityType '{1}' referred to by the Dependent Role in the referential constraint for relationship '{2}'." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be '*'." + + + + + A string like "The types of all properties in the Dependent Role of a referential constraint must be the same as the corresponding property types in the Principal Role. The type of property '{0}' on entity '{1}' does not match the type of property '{2}' on entity '{3}' in the referential constraint '{4}'." + + + + + A string like "There is no property with name '{0}' defined in the type referred to by Role '{1}'." + + + + + A string like "A nullable ComplexType is not supported. Property '{0}' must not allow nulls." + + + + + A string like "A property cannot be of type '{0}'. The property type must be a ComplexType or a PrimitiveType." + + + + + A string like "Each member name in an EntityContainer must be unique. A member with name '{0}' is already defined." + + + + + A string like "Each type name in a schema must be unique. Type name '{0}' is already defined." + + + + + A string like "Name '{0}' cannot be used in type '{1}'. Member names cannot be the same as their enclosing type." + + + + + A string like "Each property name in a type must be unique. Property name '{0}' is already defined." + + + + + A string like "A cycle was detected in the type hierarchy of '{0}'." + + + + + A string like "A property cannot be of type '{0}'. The property type must be a ComplexType, a PrimitiveType, or a CollectionType." + + + + + A string like "A property cannot be of type {0}. The property type must be a ComplexType, a PrimitiveType or an EnumType." + + + + + A string like "The specified name must not be longer than 480 characters: '{0}'." + + + + + A string like "The specified name is not allowed: '{0}'." + + + + + A string like "The field {0} must be a string or array type with a maximum length of '{1}'." + + + + + A string like "The field {0} must be a string or array type with a minimum length of '{1}'." + + + + + A string like "No connection string named '{0}' could be found in the application config file." + + + + + A string like "AutomaticMigration" + + + + + A string like "BootstrapMigration" + + + + + A string like "InitialCreate" + + + + + A string like "Automatic migration was not applied because it would result in data loss." + + + + + A string like "[Inserting migration history record]" + + + + + A string like "[Deleting migration history record]" + + + + + A string like "[Updating EdmMetadata model hash]" + + + + + A string like "Running Seed method." + + + + + A string like "No pending code-based migrations." + + + + + A string like "Explicit" + + + + + A string like "Upgrading history table." + + + + + A string like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)." + + + + + A string like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration." + + + + + A string like "Scripting the downgrade between two specified migrations is not supported." + + + + + A string like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it." + + + + + A string like "One or more validation errors were detected during model generation:" + + + + + A string like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported." + + + + + A string like "Connection to the database failed. The connection string is configured with an invalid LocalDB server name. This may have been set in 'global.asax' by a pre-release version of MVC4. The default connection factory is now set in web.config so the line in 'global.asax' starting with 'Database.DefaultConnectionFactory = ' should be removed. See http://go.microsoft.com/fwlink/?LinkId=243166 for details." + + + + + A string like "An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct." + + + + + A string like "Setting IsModified to false for a modified property is not supported." + + + + + A string like "An error occurred while saving entities that do not expose foreign key properties for their relationships. The EntityEntries property will return null because a single entity cannot be identified as the source of the exception. Handling of exceptions while saving can be made easier by exposing foreign key properties in your entity types. See the InnerException for details." + + + + + A string like "The set of property value names is read-only." + + + + + A string like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type." + + + + + A string like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility." + + + + + A string like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions." + + + + + A string like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations." + + + + + A string like "The context cannot be used while the model is being created." + + + + + A string like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)." + + + + + A string like "The operation cannot be completed because the DbContext has been disposed." + + + + + A string like "The provider factory returned a null connection." + + + + + A string like "The DbConnectionFactory instance returned a null connection." + + + + + A string like "The number of primary key values passed must match number of primary key values defined on the entity." + + + + + A string like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details." + + + + + A string like "Multiple entities were found in the Added state that match the given primary key values." + + + + + A string like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()." + + + + + A string like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties." + + + + + A string like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection." + + + + + A string like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used." + + + + + A string like "Validation failed for one or more entities. See 'EntityValidationErrors' property for more details." + + + + + A string like "An exception occurred while initializing the database. See the InnerException for details." + + + + + A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + A string like "Code generated using the T4 templates for Database First and Model First development may not work correctly if used in Code First mode. To continue using Database First or Model First ensure that the Entity Framework connection string is specified in the config file of executing application. To use these classes, that were generated from Database First or Model First, with Code First add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception." + + + + + A string like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method." + + + + + A string like "NavigationProperty is not valid. The FromRole and ToRole are the same." + + + + + A string like "OnDelete can be specified on only one End of an EdmAssociation." + + + + + A string like "The number of properties in the Dependent and Principal Roles in a relationship constraint must be identical." + + + + + A string like "The name is missing or not valid." + + + + + A string like "AssociationEnd must not be null." + + + + + A string like "DependentEnd must not be null." + + + + + A string like "DependentProperties must not be empty." + + + + + A string like "Association must not be null." + + + + + A string like "ResultEnd must not be null." + + + + + A string like "EntityType must not be null." + + + + + A string like "ElementType must not be null." + + + + + A string like "ElementType must not be null." + + + + + A string like "SourceSet must not be null." + + + + + A string like "TargetSet must not be null." + + + + + A string like "The type is not a valid EdmTypeReference." + + + + + A string like "Serializer can only serialize an EdmModel that has one EdmNamespace and one EdmEntityContainer." + + + + + A string like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + A string like "MinLengthAttribute must have a Length value that is zero or greater." + + + + + A string like "The connection can not be overridden because this context was created from an existing ObjectContext." + + + + + A string like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection." + + + + + A string like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection." + + + + + Strongly-typed and parameterized exception factory. + + + + + Migrations.Infrastructure.AutomaticDataLossException with message like "Automatic migration was not applied because it would result in data loss." + + + + + Migrations.Infrastructure.MigrationsException with message like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)." + + + + + Migrations.Infrastructure.MigrationsException with message like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id." + + + + + Migrations.Infrastructure.MigrationsException with message like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key." + + + + + Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp." + + + + + Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid migration. Code-based migrations must be used for both source and target when scripting the upgrade between them." + + + + + Migrations.Infrastructure.MigrationsException with message like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory." + + + + + Migrations.Infrastructure.MigrationsException with message like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead." + + + + + Migrations.Infrastructure.AutomaticMigrationsDisabledException with message like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration." + + + + + Migrations.Infrastructure.MigrationsException with message like "Scripting the downgrade between two specified migrations is not supported." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' was not be found in the assembly '{1}'." + + + + + Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use." + + + + + Migrations.Infrastructure.MigrationsException with message like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)." + + + + + Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use." + + + + + Migrations.Infrastructure.MigrationsException with message like "The type '{0}' is not a migrations configuration type." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must have a public default constructor." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must not be abstract." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must not be generic." + + + + + Migrations.Infrastructure.MigrationsException with message like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it." + + + + + Migrations.Infrastructure.MigrationsException with message like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added." + + + + + + Migrations.Infrastructure.MigrationsException with message like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators." + + + + + Migrations.Infrastructure.MigrationsException with message like "No context type was found in the assembly '{0}'." + + + + + Migrations.Infrastructure.MigrationsException with message like "The context type '{0}' was not found in the assembly '{1}'." + + + + + Migrations.Infrastructure.MigrationsException with message like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context." + + + + + ArgumentException with message like "The argument '{0}' cannot be null, empty or contain only white space." + + + + + ArgumentException with message like "The argument property '{0}' cannot be null." + + + + + ArgumentException with message like "The precondition '{0}' failed. {1}" + + + + + InvalidOperationException with message like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type." + + + + + InvalidOperationException with message like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type." + + + + + InvalidOperationException with message like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + InvalidOperationException with message like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + InvalidOperationException with message like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property." + + + + + InvalidOperationException with message like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property." + + + + + InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'." + + + + + InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'." + + + + + InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + + InvalidOperationException with message like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}" + + + + + InvalidOperationException with message like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}" + + + + + InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject." + + + + + InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys." + + + + + MappingException with message like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities." + + + + + InvalidOperationException with message like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + InvalidOperationException with message like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + InvalidOperationException with message like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys." + + + + + InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty." + + + + + InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names." + + + + + InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name." + + + + + InvalidOperationException with message like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API." + + + + + InvalidOperationException with message like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property." + + + + + InvalidOperationException with message like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property." + + + + + InvalidOperationException with message like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'." + + + + + InvalidOperationException with message like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call." + + + + + InvalidOperationException with message like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name." + + + + + InvalidOperationException with message like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax." + + + + + InvalidOperationException with message like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation." + + + + + ArgumentException with message like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string." + + + + + InvalidOperationException with message like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set." + + + + + InvalidOperationException with message like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model." + + + + + NotSupportedException with message like "Unable to determine the provider name for connection of type '{0}'." + + + + + ArgumentException with message like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length." + + + + + ArgumentException with message like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length." + + + + + InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method." + + + + + InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once." + + + + + InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once." + + + + + InvalidOperationException with message like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used." + + + + + InvalidOperationException with message like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them." + + + + + InvalidOperationException with message like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type." + + + + + InvalidOperationException with message like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types." + + + + + InvalidOperationException with message like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified." + + + + + InvalidOperationException with message like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns." + + + + + InvalidOperationException with message like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported." + + + + + InvalidOperationException with message like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations." + + + + + InvalidOperationException with message like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. " + + + + + NotSupportedException with message like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. " + + + + + InvalidOperationException with message like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct." + + + + + InvalidOperationException with message like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct." + + + + + NotSupportedException with message like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties." + + + + + InvalidOperationException with message like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation." + + + + + InvalidOperationException with message like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor." + + + + + InvalidOperationException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor." + + + + + + NotSupportedException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state." + + + + + InvalidOperationException with message like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model." + + + + + + ArgumentException with message like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed." + + + + + ArgumentException with message like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created." + + + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property." + + + + + ArgumentException with message like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property."" + + + + + NotSupportedException with message like "Setting IsModified to false for a modified property is not supported." + + + + + ArgumentException with message like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties."" + + + + + ArgumentException with message like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'." + + + + + ArgumentException with message like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead." + + + + + ArgumentException with message like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'." + + + + + ArgumentException with message like "The expression passed to method {0} must represent a property defined on the type '{1}'." + + + + + InvalidOperationException with message like "{0} cannot be used for entities in the {1} state." + + + + + InvalidOperationException with message like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'." + + + + + InvalidOperationException with message like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property." + + + + + InvalidOperationException with message like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'." + + + + + NotSupportedException with message like "The set of property value names is read-only." + + + + + ArgumentException with message like "The '{0}' property does not exist or is not mapped for the type '{1}'." + + + + + ArgumentException with message like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'." + + + + + ArgumentException with message like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'." + + + + + ArgumentException with message like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type." + + + + + InvalidOperationException with message like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties." + + + + + InvalidOperationException with message like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties." + + + + + InvalidOperationException with message like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null." + + + + + InvalidOperationException with message like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null." + + + + + InvalidOperationException with message like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)." + + + + + InvalidOperationException with message like "Database '{0}' cannot be created because it already exists." + + + + + NotSupportedException with message like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility." + + + + + NotSupportedException with message like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions." + + + + + NotSupportedException with message like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations." + + + + + + + InvalidOperationException with message like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. See inner exception for details." + + + + + InvalidOperationException with message like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once." + + + + + InvalidOperationException with message like "Failed to set Database.DefaultConnectionFactory to an instance of the '{0}' type as specified in the application configuration. See inner exception for details." + + + + + InvalidOperationException with message like "The type '{0}' could not be found. The type name must be an assembly-qualified name." + + + + + InvalidOperationException with message like "The context cannot be used while the model is being created." + + + + + InvalidOperationException with message like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)." + + + + + InvalidOperationException with message like "The operation cannot be completed because the DbContext has been disposed." + + + + + InvalidOperationException with message like "The provider factory returned a null connection." + + + + + InvalidOperationException with message like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute."" + + + + + InvalidOperationException with message like "The DbConnectionFactory instance returned a null connection." + + + + + ArgumentException with message like "The number of primary key values passed must match number of primary key values defined on the entity." + + + + + ArgumentException with message like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details." + + + + + InvalidOperationException with message like "The entity found was of type {0} when an entity of type {1} was requested." + + + + + InvalidOperationException with message like "Multiple entities were found in the Added state that match the given primary key values." + + + + + InvalidOperationException with message like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types." + + + + + InvalidOperationException with message like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute." + + + + + InvalidOperationException with message like "The entity type {0} is not part of the model for the current context." + + + + + NotSupportedException with message like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()." + + + + + ArgumentException with message like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties." + + + + + InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file." + + + + + InvalidOperationException with message like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection." + + + + + NotSupportedException with message like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor." + + + + + NotSupportedException with message like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used." + + + + + InvalidOperationException with message like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'." + + + + + InvalidOperationException with message like "The context type '{0}' must have a public constructor taking an EntityConnection." + + + + + NotSupportedException with message like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file." + + + + + DataException with message like "An exception occurred while initializing the database. See the InnerException for details." + + + + + NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + InvalidOperationException with message like "The context factory type '{0}' must have a public default constructor." + + + + + InvalidOperationException with message like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method." + + + + + InvalidOperationException with message like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + InvalidOperationException with message like "MinLengthAttribute must have a Length value that is zero or greater." + + + + + InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file." + + + + + InvalidOperationException with message like "The connection can not be overridden because this context was created from an existing ObjectContext." + + + + + InvalidOperationException with message like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection." + + + + + InvalidOperationException with message like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection." + + + + + The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument. + + + + + The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method. + + + + + The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag. + + + + + The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality. + + + + + AutoGenerated resource class. Usage: + + string s = EntityRes.GetString(EntityRes.MyIdenfitier); + + + + + Allows the construction and modification of a user-specified annotation (name-value pair) on a instance. + + + + + Gets or sets an optional namespace that can be used to distinguish the annotation from others with the same value. + + + + + Gets or sets the name of the annotation. + + + + + Gets or sets the value of the annotation. + + + + + + + + + DataModelEventArgs is the base argument type for all events raised by consumers of Entity Data Model (EDM) models. + + + + + Gets a value indicating the that caused the event to be raised. + + + + + Gets an optional value indicating which property of the source item caused the event to be raised. + + + + + Gets a value that identifies the specific error that is being raised. + + + + + Gets an optional descriptive message the describes the error that is being raised. + + + + + DbAliasedMetadataItem provides the base type for all Database Metadata types that can have an optional that should be used instead of the item's when referring to the item in the database. + + + + + NamedDbItem is the base for all types in the Database Metadata construction and modification API with a property. + + + + + The base for all all Database Metadata types that support annotation using . + + + + + DbDataModelItem is the base for all types in the Database Metadata construction and modification API. + + + + + Gets or sets the currently assigned annotations. + + + + + Gets or sets the currently assigned name. + + + + + Gets an optional alternative identifier that should be used when referring to this item in the database. + + + + + When implemented in derived types, allows the construction and modification of a column in a Database Metadata table or row. + + + + + Gets or sets a string indicating the database-specific type of the column. + + + + + Gets or sets a value indicating whether the column is nullable. + + + + + Gets or sets an optional instance that applies additional constraints to the referenced database-specific type of the column. + + + + + Allows the construction and modification of a database in a Database Metadata model. + + + + + Gets or sets an optional value that indicates the database model version. + + + + + Gets or sets the collection of instances that specifies the schemas within the database. + + + + + Allows the construction and modification of a foreign key constraint sourced by a instance. + + + + + Gets or sets the to take when a delete operation is attempted. + + + + + Indicates which Database Metadata concept is represented by a given item. + + + + + Database Kind + + + + + Schema Kind + + + + + Foreign Key Constraint Kind + + + + + Function Kind + + + + + Function Parameter Kind + + + + + Function Return or Parameter Type Kind + + + + + Row Column Kind + + + + + Table Kind + + + + + Table Column Kind + + + + + Primitive Facets Kind + + + + + Specifies the action to take on a given operation. + + + + + Default behavior + + + + + Restrict the operation + + + + + Cascade the operation + + + + + Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in a Database Metadata item. + + + + + Returns true if any facet value property currently has a non-null value; otherwise returns false . + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode. + + + + + Gets or sets an optional value indicating the current constraint on the type's maximum length. + + + + + Gets or sets an optional value indicating the current constraint on the type's precision. + + + + + Gets or sets an optional value indicating the current constraint on the type's scale. + + + + + Gets or sets an optional value indicating the current spatial type's SRID. + + + + + Gets or sets an optional value indicating the current spatial type's SRID. + + + + + Gets or sets an optional value indicating whether the spatial type is to be type checked strictly. + + + + + Allows the construction and modification of a database schema in a database model. + + + + + Gets or sets the collection of instances that specifies the tables declared within the schema. + + + + + DbSchemaMetadataItem is the base for all types that can be contained in a schema. + + + + + Allows the construction and modification of a column in a table. + + + + + Gets or sets a value indicating whether the column is part of the table's primary key. + + + + + Gets or sets a value indicating if and how the value of the column is automatically generated. + + + + + Gets or sets an optional value indicating the collation specific to this table column. + + + + + Gets or sets an optional value that specifies the default value for the column. + + + + + Allows the construction and modification a table in a database schema. + + + + + Gets or sets the collection of instances that specifies the columns present within the table. + + + + + Gets or sets the collection of instances from the collection of the table that are part of the primary key. + + + + + Gets or sets the collection of instances that defines the foreign key constraints sourced from the table. + + + + + Represents a specific use of a type in a Database Metadata item. + + + + + Gets or sets an optional instance that applies additional constraints to a referenced primitive type. + + + Accessing this property forces the creation of a DbPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value. + + + + + Gets or sets a value indicating whether the represented type is a collection type. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered nullable. + + + + + Gets a value indicating whether the type has been configured as a row type by the addition of one or more RowColumns. + + + + + Represents the mapping of an EDM association end ( ) as a collection of property mappings ( ). + + + + + DbMappingMetadataItem is the base for all types in the EDM-to-Database Mapping construction and modification API that support annotation using . + + + + + DbMappingModelItem is the base for all types in the EDM-to-Database Mapping construction and modification API. + + + + + Gets or sets the currently assigned annotations. + + + + + Gets an value representing the association end that is being mapped. + + + + + Gets the collection of s that specifies how the association end key properties are mapped to the table. + + + + + Gets an value representing the association set that is being mapped. + + + + + Gets a value representing the table to which the entity type's properties are being mapped. + + + + + Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping to apply. + + + + + Allows the construction and modification of a condition for a column in a database table. + + + + + Gets or sets a value representing the table column which must contain for this condition to hold. + + + + + Gets or sets the value that must contain for this condition to hold. + + + + + Gets or sets an value representing the model that is being mapped. + + + + + Gets or sets a value representing the database that is the target of the mapping. + + + + + Gets or sets the collection of s that specifies how the model's entity containers are mapped to the database. + + + + + Represents the mapping of an entity property to a column in a database table. + + + + + Gets or sets the collection of instances that defines the mapped property, beginning from a property declared by the mapped entity type and optionally proceeding through properties of complex property result types. + + + + + Gets or sets a value representing the table column to which the entity property is being mapped. + + + + + Allows the construction and modification of the mapping of an EDM entity container ( ) to a database ( ). + + + + + Gets or sets an value representing the entity container that is being mapped. + + + + + Gets or sets the collection of s that specifies how the container's entity sets are mapped to the database. + + + + + Gets the collection of s that specifies how the container's association sets are mapped to the database. + + + + + Allows the construction and modification of the mapping of an EDM entity set ( ) to a database ( ). + + + + + Gets or sets an value representing the entity set that is being mapped. + + + + + Gets or sets the collection of s that specifies how the set's entity types are mapped to the database. + + + + + Allows the construction and modification of a complete or partial mapping of an EDM entity type ( ) or type hierarchy to a specific database table ( ). + + + + + Gets or sets an value representing the entity type or hierarchy that is being mapped. + + + + + Gets or sets a value indicating whether this type mapping applies to and all its direct or indirect subtypes ( true ), or only to ( false ). + + + + + Gets a value representing the table to which the entity type's properties are being mapped. + + + + + Gets the collection of s that specifies how the type's properties are mapped to the table. + + + + + Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping fragment to apply. + + + + + Indicates which EDM-to-Database Mapping concept is represented by a given item. + + + + + Database Mapping Kind + + + + + Entity Container Mapping Kind + + + + + Entity Set Mapping Kind + + + + + Association Set Mapping Kind + + + + + Entity Type Mapping Kind + + + + + Query View Mapping Kind + + + + + Entity Type Mapping Fragment Kind + + + + + Edm Property Mapping Kind + + + + + Association End Mapping Kind + + + + + Column Condition Kind + + + + + Property Condition Kind + + + + + Allows the construction and modification of a constraint applied to an Entity Data Model (EDM) association. + + + + + Gets or sets the that represents the 'dependent' end of the constraint; properties from this association end's entity type contribute to the collection. + + + + + Gets or sets the collection of instances from the of the constraint. The values of these properties are constrained against the primary key values of the remaining, 'principal' association end's entity type. + + + + + Allows the construction and modification of one end of an Entity Data Model (EDM) association. + + + + + Gets or sets the entity type referenced by this association end. + + + + + Gets or sets the of this association end, which indicates the multiplicity of the end and whether or not it is required. + + + + + Gets or sets the to take when a delete operation is attempted. + + + + + Indicates the multiplicity of an and whether or not it is required. + + + + + Allows the construction and modification of an association set in an Entity Data Model (EDM) ). + + + + + Represents an item in an Entity Data Model (EDM) . + + + + + Gets or sets the that specifies the association type for the set. + + + + + Gets or sets the that specifies the entity set corresponding to the association end for this association set. + + + + + Gets or sets the that specifies the entity set corresponding to the association end for this association set. + + + + + + The base for all all Entity Data Model (EDM) types that represent a structured type from the EDM type system. + + + + + Gets or sets the that defines the source end of the association. + + + + + Gets or sets the that defines the target end of the association. + + + + + Gets or sets the optional constraint that indicates whether the relationship is an independent association (no constraint present) or a foreign key relationship ( specified). + + + + + Collection semantics for properties. + + + + + The property does not have a collection type or does not specify explicit collection semantics. + + + + + The property is an unordered collection that may contain duplicates. + + + + + The property is an ordered collection that may contain duplicates. + + + + + Allows the construction and modification of a complex type in an Entity Data Model (EDM) . + + + + + Gets or sets the optional that indicates the base complex type of the complex type. + + + + + Gets or sets a value indicating whether the complex type is abstract. + + + + + Gets or sets the collection of instances that describe the (scalar or complex) properties of the complex type. + + + + + Concurrency mode for properties. + + + + + Default concurrency mode: the property is never validated at write time + + + + + Fixed concurrency mode: the property is always validated at write time + + + + + Allows the construction and modification of an entity container in an Entity Data Model (EDM) . + + + + + Gets all s declared within the namspace. Includes s and s. + + + + + Gets or sets the collection of s that specifies the association sets within the container. + + + + + Gets or sets the collection of s that specifies the entity sets within the container. + + + + + Allows the construction and modification of an entity set in an Entity Data Model (EDM) . + + + + + Gets or sets the that specifies the entity type for the set. + + + + + Allows the construction and modification of an entity type in an Entity Data Model (EDM) . + + + + + Gets or sets the optional that indicates the base entity type of the entity type. + + + + + Gets or sets a value indicating whether the entity type is abstract. + + + + + Gets or sets the collection of s that specifies the properties declared by the entity type. + + + + + Gets or sets the collection of s that indicates which properties from the collection are part of the entity key. + + + + + Gets or sets the optional collection of s that specifies the navigation properties declared by the entity type. + + + + + Indicates which Entity Data Model (EDM) concept is represented by a given item. + + + + + Association End Kind + + + + + Association Set Kind + + + + + Association Type Kind + + + + + Collection Type Kind + + + + + Complex Type Kind + + + + + Entity Container Kind + + + + + Entity Set Kind + + + + + Entity Type Kind + + + + + Function Group Kind + + + + + Function Overload Kind + + + + + Function Import Kind + + + + + Function Parameter Kind + + + + + Navigation Property Kind + + + + + EdmProperty Type Kind + + + + + Association Constraint Type Kind + + + + + Ref Type Kind + + + + + Row Column Kind + + + + + Row Type Kind + + + + + Type Reference Kind + + + + + Model Kind + + + + + Namespace Kind + + + + + Primitive Facets Kind + + + + + Primitive Type Kind + + + + + Enum Type Kind + + + + + Enum Type Member Kind + + + + + EdmModel is the top-level container for namespaces and entity containers belonging to the same logical Entity Data Model (EDM) model. + + + + + Gets or sets an optional value that indicates the entity model version. + + + + + Gets or sets the containers declared within the model. + + + + + Gets or sets the namespaces declared within the model. + + + + + Allows the construction and modification of a namespace in an . + + + + + Gets all s declared within the namspace. Includes s, s, s. + + + + + Gets or sets the s declared within the namespace. + + + + + Gets or sets the s declared within the namespace. + + + + + Gets or sets the s declared within the namespace. + + + + + Allows the construction and modification of an Entity Data Model (EDM) navigation property. + + + + + Gets or sets the that specifies the association over which navigation takes place. + + + + + Gets or sets the that specifies which association end is the 'destination' end of the navigation and produces the navigation property result. + + + + + Specifies the action to take on a given operation. + + + + + Default behavior + + + + + Restrict the operation + + + + + Cascade the operation + + + + + Represents one of the fixed set of Entity Data Model (EDM) primitive types. + + + + + The base for all all Entity Data Model (EDM) types that represent a scalar type from the EDM type system. + + + + + Retrieves the EdmPrimitiveType instance with the corresponding to the specified value, if any. + + The name of the primitive type instance to retrieve + The EdmPrimitiveType with the specified name, if successful; otherwise null . + true if the given name corresponds to an EDM primitive type name; otherwise false . + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets an value that indicates which Entity Data Model (EDM) primitive type this type represents. + + + + + Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in an Entity Data Model (EDM) item. See . + + + + + Returns true if any facet value property currently has a non-null value; otherwise returns false . + + + + + Gets or sets an optional value indicating the current constraint on the type's maximum length. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode. + + + + + Gets or sets an optional value indicating the current constraint on the type's precision. + + + + + Gets or sets an optional value indicating the current constraint on the type's scale. + + + + + Gets or sets an optional value indicating that the current spatial type's SRID is unconstrained. + + + + + Gets or sets an optional value indicating the current spatial type's SRID. + + + + + Gets or sets an optional value indicating whether the spatial type is to be type checked strictly. + + + + + Primitive Types as defined by the Entity Data Model (EDM). + + + + + Binary Type Kind + + + + + Boolean Type Kind + + + + + Byte Type Kind + + + + + DateTime Type Kind + + + + + Decimal Type Kind + + + + + Double Type Kind + + + + + Guid Type Kind + + + + + Single Type Kind + + + + + SByte Type Kind + + + + + Int16 Type Kind + + + + + Int32 Type Kind + + + + + Int64 Type Kind + + + + + String Type Kind + + + + + Time Type Kind + + + + + DateTimeOffset Type Kind + + + + + Geometry Type Kind + + + + + Geography Type Kind + + + + + Geometric point type kind + + + + + Geometric linestring type kind + + + + + Geometric polygon type kind + + + + + Geometric multi-point type kind + + + + + Geometric multi-linestring type kind + + + + + Geometric multi-polygon type kind + + + + + Geometric collection type kind + + + + + Geographic point type kind + + + + + Geographic linestring type kind + + + + + Geographic polygon type kind + + + + + Geographic multi-point type kind + + + + + Geographic multi-linestring type kind + + + + + Geographic multi-polygon type kind + + + + + Geographic collection type kind + + + + + Allows the construction and modification of a primitive- or complex-valued property of an Entity Data Model (EDM) entity or complex type. + + + + + Gets or sets an value that indicates which collection semantics - if any - apply to the property. + + + + + Gets or sets a value that indicates whether the property is used for concurrency validation. + + + + + Gets or sets on optional value that indicates an initial default value for the property. + + + + + Gets or sets an that specifies the result type of the property. + + + + + Enumerates all s declared or inherited by an . + + + + + Allows the construction and modification of a specific use of a type in an Entity Data Model (EDM) item. See for examples. + + + + + Gets or sets a value indicating the collection rank of the type reference. A collection rank greater than zero indicates that the type reference represents a collection of its referenced . + + + + + Gets or sets a value indicating the referenced by this type reference. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered nullable. + + + + + Gets or sets an optional instance that applies additional constraints to a referenced primitive type. + + + Accessing this property forces the creation of an EdmPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value. + + + + + Gets a value indicating whether the property of this type reference has been assigned an value with at least one facet value specified. + + + + + Indicates whether this type reference represents a collection of its referenced (when is greater than zero) or not. + + + + + Indicates whether the property of this type reference currently refers to an , is not a collection type, and does not have primitive facet values specified. + + + + + Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a complex type. + + + + + Indicates whether the property of this type reference currently refers to an and is not a collection type. + + + + + Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a primitive type. + + + + + Contains constant values that apply to the EDM model, regardless of source (for CSDL specific constants see ). + + + + + Parsing code taken from System.dll's System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string) method to avoid LinkDemand needed to call this method + + + + + + + + + + + Constants for CSDL XML. + + + + + Constants for C-S MSL XML. + + + + + Constants for SSDL XML. + + + + + The acceptable range for this enum is 0000 - 0999; the range 10,000-15,000 is reserved for tools. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Precision out of range + + + + + Scale out of range + + + + + + + + + + + + + One of the required facets is missing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The facet isn't allow by the property type. + + + + + This facet value is constant and is specified in the schema + + + + + + + + + + + + + Multiplicity value was malformed + + + + + The value for the Action attribute is invalid or not allowed in the current context + + + + + An error occurred processing the On<Operation> elements + + + + + Ends were given for the Property element of a EntityContainer that is not a RelationshipSet + + + + + The extent name used in the EntittyContainerType End does not match the name of any of the EntityContainerProperties in the containing EntityContainer + + + + + An end element was not given, and cannot be inferred because too many EntityContainerEntitySet elements that are good possibilities. + + + + + An end element was not given, and cannot be inferred because there is no EntityContainerEntitySets that are the correct type to be used as an EntitySet. + + + + + Not a valid parameter direction for the parameter in a function + + + + + Unable to infer an optional schema part, to resolve this; be more explicit + + + + + Invalid facet attribute(s) specified in provider manifest + + + + + Invalid role value in the relationship constraint + + + + + Invalid Property in relationship constraint + + + + + Type mismatch between ToProperty and FromProperty in the relationship constraint + + + + + Invalid multiplicity in FromRole in the relationship constraint + + + + + The number of properties in the FromProperty and ToProperty in the relationship constraint must be identical + + + + + No Properties defined in either FromProperty or ToProperty in the relationship constraint + + + + + Missing constraint in relationship type in ssdl + + + + + Same role referred in the ToRole and FromRole of a referential constraint + + + + + Invalid value for attribute ParameterTypeSemantics + + + + + Invalid type used for a Relationship End Type + + + + + Invalid PrimitiveTypeKind + + + + + Invalid TypeConversion DestinationType + + + + + Expected a integer value between 0 - 255 + + + + + Invalid Type specified in function + + + + + Precision must not be greater than 28 + + + + + Properties that are part of entity key must be of scalar type + + + + + Binary type properties which are part of entity key are currently not supported + + + + + The primitive type kind does not have a preferred mapping + + + + + More than one PreferredMapping for a PrimitiveTypeKind + + + + + End with * multiplicity cannot have operations specified + + + + + EntitySet type has no keys + + + + + InvalidNumberOfParametersForAggregateFunction + + + + + InvalidParameterTypeForAggregateFunction + + + + + Composable functions must declare a return type. + + + + + Non-composable functions must not declare a return type. + + + + + Non-composable functions do not permit the aggregate; niladic; or built-in attributes. + + + + + Composable functions can not include command text attribute. + + + + + Functions should not declare both a store name and command text (only one or the other can be used). + + + + + SystemNamespace + + + + + Empty DefiningQuery text + + + + + Schema, Table and DefiningQuery are all specified, and are mutually exclusive + + + + + ConcurrencyMode value was malformed + + + + + Concurrency can't change for any sub types of an EntitySet type. + + + + + Function import return type must be either empty, a collection of entities, or a singleton scalar. + + + + + Function import specifies a non-existent entity set. + + + + + Function import specifies entity type return but no entity set. + + + + + Function import specifies entity type that does not derive from element type of entity set. + + + + + Function import specifies a binding to an entity set but does not return entities. + + + + + InternalError + + + + + Same Entity Set Taking part in the same role of the relationship set in two different relationship sets + + + + + Entity key refers to the same property twice + + + + + Function declares a ReturnType attribute and element + + + + + Nullable Complex Type not supported in Edm V1 + + + + + Only Complex Collections supported in Edm V1.1 + + + + + No Key defined on Entity Type + + + + + Invalid namespace specified in using element + + + + + Need not specify system namespace in using + + + + + Cannot use a reserved/system namespace as alias + + + + + Invalid qualification specified for type + + + + + Invalid Entity Container Name in extends attribute + + + + + Invalid CollectionKind value in property CollectionKind attribute + + + + + Must specify namespace or alias of the schema in which this type is defined + + + + + Entity Container cannot extend itself + + + + + Failed to retrieve provider manifest + + + + + Mismatched Provider Manifest token values in SSDL artifacts + + + + + Missing Provider Manifest token value in SSDL artifact(s) + + + + + Empty CommandText element + + + + + Inconsistent Provider values in SSDL artifacts + + + + + Inconsistent Provider Manifest token values in SSDL artifacts + + + + + Duplicated Function overloads + + + + + InvalidProvider + + + + + FunctionWithNonEdmTypeNotSupported + + + + + ComplexTypeAsReturnTypeAndDefinedEntitySet + + + + + ComplexTypeAsReturnTypeAndDefinedEntitySet + + + + unused 179, + unused 180, + unused 181, + + In model functions facet attribute is allowed only on ScalarTypes + + + + + Captures several conditions where facets are placed on element where it should not exist. + + + + + Return type has not been declared + + + + + Invalid value in the EnumTypeOption + + + + + The structural annotation cannot use codegen namespaces + + + + + Function and type cannot have the same fully qualified name + + + + + Cannot load different version of schema in the same ItemCollection + + + + + Expected bool value + + + + + End without Multiplicity specified + + + + + In SSDL, if composable function returns a collection of rows (TVF), all row properties must be of scalar types. + + + + + The name of NamedEdmItem must not be empty or white space only + + + + + EdmTypeReference is empty + + Unused 199; + + + + Serializes an that conforms to the restrictions of a single CSDL schema file to an XML writer. The model to be serialized must contain a single and a single . + + + + + Serialize the to the XmlWriter. + + The EdmModel to serialize, mut have only one and one + The XmlWriter to serialize to + + + + Serialize the to the XmlWriter + + The DbModel to serialize + The XmlWriter to serialize to + + + + Serialize the to the + + The DbDatabaseMetadata to serialize + Provider information on the Schema element + ProviderManifestToken information on the Schema element + The XmlWriter to serialize to + + + + + author/email + + + + + author/name + + + + + author/uri + + + + + published + + + + + rights + + + + + summary + + + + + title + + + + + contributor/email + + + + + contributor/name + + + + + contributor/uri + + + + + category/@label + + + + + Plaintext + + + + + HTML + + + + + XHTML + + + + + updated + + + + + link/@href + + + + + link/@rel + + + + + link/@type + + + + + link/@hreflang + + + + + link/@title + + + + + link/@length + + + + + category/@term + + + + + category/@scheme + + + + + Return role name pair + + + + + + + + The context for DataModel Validation + + + + + Returns true if the given two ends are similar - the relationship type that this ends belongs to is the same and the entity set refered by the ends are same and they are from the same role + + + + + + + + Return true if the Referential Constraint on the association is ready for further validation, otherwise return false. + + + + + + + Resolves the given property names to the property in the item Also checks whether the properties form the key for the given type and whether all the properties are nullable or not + + + + + + + + + + + Return true if the namespaceName is a Edm System Namespace + + + + + + + Return true if the entityType is a subtype of any entity type in the dictionary keys, and return the corresponding entry EntitySet value. Otherwise return false. + + + + + + + + + Return true if any of the properties in the EdmEntityType defines ConcurrencyMode. Otherwise return false. + + + + + + + Add member name to the Hash set, raise an error if the name exists already. + + + + + + + + + If the string is null, empty, or only whitespace, return false, otherwise return true + + + + + + + Determine if a cycle exists in the type hierarchy: use two pointers to walk the chain, if one catches up with the other, we have a cycle. + + true if a cycle exists in the type hierarchy, false otherwise + + + + RuleSet for DataModel Validation + + + + + Get the related rules given certain DataModelItem + + The to validate + A collection of + + + + Data Model Validator + + + + + Validate the and all of its properties given certain version. + + The root of the model to be validated + True to validate the syntax, otherwise false + + + + The RuleSet for EdmModel + + + + + Get based on version + + a double value of version + + + + + The context for EdmModel Validation + + + + + Visitor for EdmModel Validation + + + + + Edm Model Validator + + + + + validate the from the root with the context + + The root to validate from + The validation context + + + + An implementation of IDatabaseInitializer that will recreate and optionally re-seed the + database only if the database does not exist. + To seed the database, create a derived class and override the Seed method. + + The type of the context. + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + A that should be overridden to actually add data to the context for seeding. + The default implementation does nothing. + + The context to seed. + + + + An instances of this class is obtained from an object and can be used + to manage the actual database backing a DbContext or connection. + This includes creating, deleting, and checking for the existence of a database. + Note that deletion and checking for existence of a database can be performed using just a + connection (i.e. without a full context) by using the static methods of this class. + + + + + Creates a Database backed by the given context. This object can be used to create a database, + check for database existence, and delete a database. + + The context that defines the database connection and model. + + + + Gets or sets the database initialization strategy. The database initialization strategy is called when instance + is initialized from a . The strategy can optionally check for database existence, create a new database, and + seed the database with data. + The default strategy is an instance of . + + The type of the context. + The strategy. + The database creation strategy. + + + + Internal version of SetInitializer that allows the strategy to be locked such that it cannot be replaced + by another call to SetInitializer. This allows strategies set in the app.config to win over strategies set + in code. + + The type of the context. + The strategy. + if set to true then the strategy is locked. + + + + Runs the the registered on this context. + + If "force" is set to true, then the initializer is run regardless of whether or not it + has been run before. This can be useful if a database is deleted while an app is running + and needs to be reinitialized. + + If "force" is set to false, then the initializer is only run if it has not already been + run for this context, model, and connection in this app domain. This method is typically + used when it is necessary to ensure that the database has been created and seeded + before starting some operation where doing so lazily will cause issues, such as when the + operation is part of a transaction. + + if set to true the initializer is run even if it has already been run. + + + + Checks whether or not the database is compatible with the the current Code First model. + + + Model compatibility currently uses the following rules. + + If the context was created using either the Model First or Database First approach then the + model is assumed to be compatible with the database and this method returns true. + + For Code First the model is considered compatible if the model is stored in the database + in the Migrations history table and that model has no differences from the current model as + determined by Migrations model differ. + + If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead, + then this is used to check for compatibility. + + + If set to true then an exception will be thrown if no model metadata is found in + the database. If set to false then this method will return true if metadata + is not found. + + True if the model hash in the context and the database match; false otherwise. + + + + + Creates a new database on the database server for the model defined in the backing context. + Note that calling this method before the database initialization strategy has run will disable + executing that strategy. + + + + + Creates a new database on the database server for the model defined in the backing context, but only + if a database with the same name does not already exist on the server. + + True if the database did not exist and was created; false otherwise. + + + + Checks whether or not the database exists on the server. + + True if the database exists; false otherwise. + + + + Deletes the database on the database server if it exists, otherwise does nothing. + Calling this method from outside of an initializer will mark the database as having + not been initialized. This means that if an attempt is made to use the database again + after it has been deleted, then any initializer set will run again and, usually, will + try to create the database again automatically. + + True if the database did exist and was deleted; false otherwise. + + + + Checks whether or not the database exists on the server. + The connection to the database is created using the given database name or connection string + in the same way as is described in the documentation for the class. + + The database name or a connection string to the database. + True if the database exists; false otherwise. + + + + Deletes the database on the database server if it exists, otherwise does nothing. + The connection to the database is created using the given database name or connection string + in the same way as is described in the documentation for the class. + + The database name or a connection string to the database. + True if the database did exist and was deleted; false otherwise. + + + + Checks whether or not the database exists on the server. + + An existing connection to the database. + True if the database exists; false otherwise. + + + + Deletes the database on the database server if it exists, otherwise does nothing. + + An existing connection to the database. + True if the database did exist and was deleted; false otherwise. + + + + Resets the DefaultConnectionFactory to its initial value. + Currently, this method is only used by test code. + + + + + Performs the operation defined by the given delegate using the given lazy connection, ensuring + that the lazy connection is disposed after use. + + Information used to create a DbConnection. + The operation to perform. + The return value of the operation. + + + + Performs the operation defined by the given delegate against a connection. The connection + is either the connection accessed from the context backing this object, or is obtained from + the connection information passed to one of the static methods. + + The connection to use. + The operation to perform. + The return value of the operation. + + + + Returns an empty ObjectContext that can be used to perform delete/exists operations. + + The connection for which to create an ObjectContext + The empty context. + + + + Creates a raw SQL query that will return elements of the given generic type. + The type can be any type that has properties that match the names of the columns returned + from the query, or can be a simple primitive type. The type does not have to be an + entity type. The results of this query are never tracked by the context even if the + type of object returned is an entity type. Use the + method to return entities that are tracked by the context. + + The type of object returned by the query. + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Creates a raw SQL query that will return elements of the given type. + The type can be any type that has properties that match the names of the columns returned + from the query, or can be a simple primitive type. The type does not have to be an + entity type. The results of this query are never tracked by the context even if the + type of object returned is an entity type. Use the + method to return entities that are tracked by the context. + + The type of object returned by the query. + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Executes the given DDL/DML command against the database. + + The command string. + The parameters to apply to the command string. + The result returned by the database after executing the command. + + + + Returns the connection being used by this context. This may cause the + connection to be created if it does not already exist. + + Thrown if the context has been disposed. + + + + Returns the as a delegate that can be called with + an instance of the that owns this Database object, or returns null if + there is no initializer set for this context type. + + The initializer delegate or null. + + + + The connection factory to use when creating a from just + a database name or a connection string. + + + This is used when just a database name or connection string is given to or when + the no database name or connection is given to DbContext in which case the name of + the context class is passed to this factory in order to generate a DbConnection. + By default, the instance to use is read from the applications .config + file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in + the config file then is used. Setting this property in code + always overrides whatever value is found in the config file. + + + + + Checks wether or not the DefaultConnectionFactory has been set to something other than its default value. + + + + + + + Common code for generic and non-generic string Include. + + + + + + Returns a new query where the entities returned will not be cached in the + or . This method works by calling the AsNoTracking method of the + underlying query object. If the underlying query object does not have a AsNoTracking method, + then calling this method will have no affect. + + The element type. + The source query. + A new query with NoTracking applied, or the source query if NoTracking is not supported. + + + + Returns a new query where the entities returned will not be cached in the + or . This method works by calling the AsNoTracking method of the + underlying query object. If the underlying query object does not have a AsNoTracking method, + then calling this method will have no affect. + + The source query. + A new query with NoTracking applied, or the source query if NoTracking is not supported. + + + + Common code for generic and non-generic AsNoTracking. + + + + + Enumerates the query such that for server queries such as those of , , + , and others the results of the query will be loaded into the associated , + or other cache on the client. + This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. + + The source query. + + + + Returns an implementation that stays in sync with the given . + + The element type. + The collection that the binding list will stay in sync with. + The binding list. + + + + DbModelBuilder is used to map CLR classes to a database schema. + This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'. + + + DbModelBuilder is typically used to configure a model by overriding . + You can also use DbModelBuilder independently of DbContext to build a model and then construct a + or . + The recommended approach, however, is to use OnModelCreating in as + the workflow is more intuitive and takes care of common tasks, such as caching the created model. + + Types that form your model are registered with DbModelBuilder and optional configuration can be + performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder + API. + + When the Build method is called a set of conventions are run to discover the initial model. + These conventions will automatically discover aspects of the model, such as primary keys, and + will also process any data annotations that were specified on your classes. Finally + any configuration that was performed using the DbModelBuilder API is applied. + + Configuration done via the DbModelBuilder API takes precedence over data annotations which + in turn take precedence over the default conventions. + + + + + Initializes a new instance of the class. + + The process of discovering the initial model will use the set of conventions included + in the most recent version of the Entity Framework installed on your machine. + + + Upgrading to newer versions of the Entity Framework may cause breaking changes + in your application because new conventions may cause the initial model to be + configured differently. There is an alternate constructor that allows a specific + version of conventions to be specified. + + + + + Initializes a new instance of the class that will use + a specific set of conventions to discover the initial model. + + The version of conventions to be used. + + + + Excludes a type from the model. This is used to remove types from the model that were added + by convention during initial model discovery. + + The type to be excluded. + The same DbModelBuilder instance so that multiple calls can be chained. + + + + Excludes a type(s) from the model. This is used to remove types from the model that were added + by convention during initial model discovery. + + The types to be excluded from the model. + The same DbModelBuilder instance so that multiple calls can be chained. + + + + Registers an entity type as part of the model and returns an object that can be used to + configure the entity. This method can be called multiple times for the same entity to + perform multiple lines of configuration. + + The type to be registered or configured. + The configuration object for the specified entity type. + + + + Registers a type as an entity in the model and returns an object that can be used to + configure the entity. This method can be called multiple times for the same type to + perform multiple lines of configuration. + + The type to be registered or configured. + The configuration object for the specified entity type. + + + + Registers a type as a complex type in the model and returns an object that can be used to + configure the complex type. This method can be called multiple times for the same type to + perform multiple lines of configuration. + + The type to be registered or configured. + The configuration object for the specified complex type. + + + + Creates a based on the configuration performed using this builder. + The connection is used to determine the database provider being used as this + affects the database layer of the generated model. + + Connection to use to determine provider information. + The model that was built. + + + + Creates a based on the configuration performed using this builder. + Provider information must be specified because this affects the database layer of the generated model. + For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.) + + The database provider that the model will be used with. + The model that was built. + + + + Provides access to the settings of this DbModelBuilder that deal with conventions. + + + + + Gets the for this DbModelBuilder. + The registrar allows derived entity and complex type configurations to be registered with this builder. + + + + + A value from this enumeration can be provided directly to the + class or can be used in the applied to + a class derived from . The value used defines which version of + the DbContext and DbModelBuilder conventions should be used when building a model from + code--also know as "Code First". + + + Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available + when upgrading to a new release of the Entity Framework. However, it may result in an + application behaving differently with the new release than it did with a previous release. + This can be avoided by using a specific version of the conventions, but if a version + other than the latest is set then not all the latest functionality will be available. + + + + + Indicates that the latest version of the and + conventions should be used. + + + + + Indicates that the version of the and + conventions shipped with Entity Framework 4.1 + through 4.3 should be used. + + + + + Indicates that the version of the and + conventions shipped with Entity Framework 5.0 + when targeting .NET 4 should be used. + + + + + Indicates that the version of the and + conventions shipped with Entity Framework 5.0 + when targeting .NET 4.5 should be used. + + + + + This attribute can be applied to a class derived from to set which + version of the DbContext and conventions should be used when building + a model from code--also know as "Code First". See the + enumeration for details about DbModelBuilder versions. + + + If the attribute is missing from DbContextthen DbContext will always use the latest + version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest. + + + + + Initializes a new instance of the class. + + The conventions version to use. + + + + Gets the conventions version. + + The conventions version. + + + + A non-generic version of which can be used when the type of entity + is not known at build time. + + + + + Represents a non-generic LINQ to Entities query against a DbContext. + + + + + An internal interface implemented by and that allows access to + the internal query without using reflection. + + + + + The underlying internal set. + + + + + Internal constructor prevents external classes deriving from DbQuery. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + Instead populate a DbSet with data, for example by using the Load extension method, and + then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to + DbSet.Local.ToBindingList(). + + + Never returns; always throws. + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Returns the equivalent generic object. + + The type of element for which the query was created. + The generic set object. + + + + Returns a representation of the underlying query. + + + The query string. + + + + + Returns false. + + false. + + + + The IQueryable element type. + + + + + The IQueryable LINQ Expression. + + + + + The IQueryable provider. + + + + + Gets the underlying internal query object. + + The internal query. + + + + The internal query object that is backing this DbQuery + + + + + An internal interface implemented by and that allows access to + the internal set without using reflection. + + + + + The underlying internal set. + + + + + Internal constructor prevents external classes deriving from DbSet. + + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + Thrown if multiple entities exist in the context with the primary key values given. + Thrown if the type of entity is not part of the data model for this context. + Thrown if the types of the key values do not match the types of the key values for the entity type to be found. + Thrown if the context has been disposed. + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + The entity to attach. + The entity. + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + The entity to add. + The entity. + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + The entity to remove. + The entity. + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Returns the equivalent generic object. + + The type of entity for which the set was created. + The generic set object. + + + + Creates a raw SQL query that will return entities in this set. By default, the + entities returned are tracked by the context; this can be changed by calling + AsNoTracking on the returned. + Note that the entities returned are always of the type for this set and never of + a derived type. If the table or tables queried may contain data for other entity + types, then the SQL query must be written appropriately to ensure that only entities of + the correct type are returned. + + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Gets an that represents a local view of all Added, Unchanged, + and Modified entities in this set. This local view will stay in sync as entities are added or + removed from the context. Likewise, entities added to or removed from the local view will automatically + be added to or removed from the context. + + + This property can be used for data binding by populating the set with data, for example by using the Load + extension method, and then binding to the local data through this property. For WPF bind to this property + directly. For Windows Forms bind to the result of calling ToBindingList on this property + + The local view. + + + + The internal IQueryable that is backing this DbQuery + + + + + Gets the underlying internal set. + + The internal set. + + + + A DbSet represents the collection of all entities in the context, or that can be queried from the + database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method. + + + Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a + one-to-one correlation between a type and a set. + + The type that defines the set. + + + + Represents a LINQ to Entities query against a DbContext. + + The type of entity to query for. + + + + Creates a new query that will be backed by the given internal query object. + + The backing query. + + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Throws an exception indicating that binding directly to a store query is not supported. + Instead populate a DbSet with data, for example by using the Load extension method, and + then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to + DbSet.Local.ToBindingList(). + + + Never returns; always throws. + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Returns a representation of the underlying query. + + + The query string. + + + + + Returns a new instance of the non-generic class for this query. + + A non-generic version. + + + + Returns false. + + false. + + + + The IQueryable element type. + + + + + The IQueryable LINQ Expression. + + + + + The IQueryable provider. + + + + + The internal query object that is backing this DbQuery + + + + + The internal query object that is backing this DbQuery + + + + + An IDbSet represents the collection of all entities in the context, or that can be queried from the + database, of a given type. DbSet is a concrete implementation of IDbSet. + + The type that defines the set. + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + The entity to add. + The entity. + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + The entity to remove. + The entity. + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + The entity to attach. + The entity. + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The type of entity to create. + The entity instance, which may be a proxy. + + + + Gets an that represents a local view of all Added, Unchanged, + and Modified entities in this set. This local view will stay in sync as entities are added or + removed from the context. Likewise, entities added to or removed from the local view will automatically + be added to or removed from the context. + + + This property can be used for data binding by populating the set with data, for example by using the Load + extension method, and then binding to the local data through this property. For WPF bind to this property + directly. For Windows Forms bind to the result of calling ToBindingList on this property + + The local view. + + + + Creates a new set that will be backed by the given . + + The internal set. + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + Thrown if multiple entities exist in the context with the primary key values given. + Thrown if the type of entity is not part of the data model for this context. + Thrown if the types of the key values do not match the types of the key values for the entity type to be found. + Thrown if the context has been disposed. + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + The entity to attach. + The entity. + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + The entity to add. + The entity. + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + The entity to remove. + The entity. + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The type of entity to create. + The entity instance, which may be a proxy. + + + + Returns the equivalent non-generic object. + + The non-generic set object. + + + + Creates a raw SQL query that will return entities in this set. By default, the + entities returned are tracked by the context; this can be changed by calling + AsNoTracking on the returned. + Note that the entities returned are always of the type for this set and never of + a derived type. If the table or tables queried may contain data for other entity + types, then the SQL query must be written appropriately to ensure that only entities of + the correct type are returned. + + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Gets an that represents a local view of all Added, Unchanged, + and Modified entities in this set. This local view will stay in sync as entities are added or + removed from the context. Likewise, entities added to or removed from the local view will automatically + be added to or removed from the context. + + + This property can be used for data binding by populating the set with data, for example by using the Load + extension method, and then binding to the local data through this property. For WPF bind to this property + directly. For Windows Forms bind to the result of calling ToBindingList on this property + + The local view. + + + + The internal IQueryable that is backing this DbQuery + + + + + An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the + database the first time that a context is used in the app domain. + To seed the database, create a derived class and override the Seed method. + + The type of the context. + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + A that should be overridden to actually add data to the context for seeding. + The default implementation does nothing. + + The context to seed. + + + + An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the + database only if the model has changed since the database was created. + + + Whether or not the model has changed is determined by the + method. + To seed the database create a derived class and override the Seed method. + + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + A that should be overridden to actually add data to the context for seeding. + The default implementation does nothing. + + The context to seed. + + + + Returned by the ChangeTracker method of to provide access to features of + the context that are related to change tracking of entities. + + + + + Initializes a new instance of the class. + + The internal context. + + + + Gets objects for all the entities tracked by this context. + + The entries. + + + + Gets objects for all the entities of the given type + tracked by this context. + + The type of the entity. + The entries. + + + + Detects changes made to the properties and relationships of POCO entities. Note that some types of + entity (such as change tracking proxies and entities that derive from ) + report changes automatically and a call to DetectChanges is not normally needed for these types of entities. + Also note that normally DetectChanges is called automatically by many of the methods of + and its related classes such that it is rare that this method will need to be called explicitly. + However, it may be desirable, usually for performance reasons, to turn off this automatic calling of + DetectChanges using the AutoDetectChangesEnabled flag from . + + + + + A non-generic version of the class. + + + + + This is an abstract base class use to represent a scalar or complex property, or a navigation property + of an entity. Scalar and complex properties use the derived class , + reference navigation properties use the derived class , and collection + navigation properties use the derived class . + + + + + Creates a from information in the given . + This method will create an instance of the appropriate subclass depending on the metadata contained + in the InternalMemberEntry instance. + + The internal member entry. + The new entry. + + + + Validates this property. + + + Collection of objects. Never null. If the entity is valid the collection will be empty. + + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the property. + The equivalent generic object. + + + + Gets the name of the property. + + The property name. + + + + Gets or sets the current value of this property. + + The current value. + + + + The to which this member belongs. + + An entry for the entity that owns this member. + + + + Gets the backing this object. + + The internal member entry. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal collection entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the collection of entities from the database. + Note that entities that already exist in the context are not overwritten with values from the database. + + + + + Returns the query that would be used to load this collection from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database, such + as counting the number of entities in the collection in the database without actually loading them. + + A query for the collection. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the collection element. + The equivalent generic object. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the collection of entities has been loaded from the database. + + true if the collection is loaded; otherwise, false. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + Gets the backing this object as an . + + The internal member entry. + + + + Instances of this class are returned from the Collection method of + and allow operations such as loading to + be performed on the an entity's collection navigation properties. + + The type of the entity to which this property belongs. + The type of the element in the collection of entities. + + + + This is an abstract base class use to represent a scalar or complex property, or a navigation property + of an entity. Scalar and complex properties use the derived class , + reference navigation properties use the derived class , and collection + navigation properties use the derived class . + + The type of the entity to which this property belongs. + The type of the property. + + + + Creates a from information in the given . + This method will create an instance of the appropriate subclass depending on the metadata contained + in the InternalMemberEntry instance. + + The internal member entry. + The new entry. + + + + Returns a new instance of the non-generic class for + the property represented by this object. + + A non-generic version. + + + + Validates this property. + + + Collection of objects. Never null. If the entity is valid the collection will be empty. + + + + + Gets or sets the current value of this property. + + The current value. + + + + Gets the underlying . + + The internal member entry. + + + + The to which this member belongs. + + An entry for the entity that owns this member. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal collection entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the collection of entities from the database. + Note that entities that already exist in the context are not overwritten with values from the database. + + + + + Returns the query that would be used to load this collection from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database, such + as counting the number of entities in the collection in the database without actually loading them. + + A query for the collection. + + + + Returns a new instance of the non-generic class for + the navigation property represented by this object. + + A non-generic version. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the collection of entities has been loaded from the database. + + true if the collection is loaded; otherwise, false. + + + + Gets the underlying as an . + + The internal member entry. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + An immutable representation of an Entity Data Model (EDM) model that can be used to create an + or can be passed to the constructor of a . + For increased performance, instances of this type should be cached and re-used to construct contexts. + + + + + For mocking. + + + + + Creates a model for the given EDM metadata model. + + The EDM metadata model. + + + + Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance + of DbContext can be created instead by using the appropriate DbContext constructor. + If a derived ObjectContext is used, then it must have a public constructor with a single + EntityConnection parameter. + The connection passed is used by the ObjectContext created, but is not owned by the context. The caller + must dispose of the connection once the context has been disposed. + + The type of context to create. + An existing connection to a database for use by the context. + + + + + Gets a cached delegate (or creates a new one) used to call the constructor for the given derived ObjectContext type. + + + + + A snapshot of the that was used to create this compiled model. + + + + + The provider info (provider name and manifest token) that was used to create this model. + + + + + A non-generic version of the class. + + + + + A non-generic version of the class. + + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the property. + The equivalent generic object. + + + + Gets the property name. + + The property name. + + + + Gets or sets the original value of this property. + + The original value. + + + + Gets or sets the current value of this property. + + The current value. + + + + Gets or sets a value indicating whether the value of this property has been modified since + it was loaded from the database. + + + Setting this value to false for a modified property will revert the change by setting the + current value to the original value. If the result is that no properties of the entity are + marked as modified, then the entity will be marked as Unchanged. + Setting this value to false for properties of Added, Unchanged, or Deleted entities + is a no-op. + + + true if this instance is modified; otherwise, false. + + + + + The to which this property belongs. + + An entry for the entity that owns this property. + + + + The of the property for which this is a nested property. + This method will only return a non-null entry for properties of complex objects; it will + return null for properties of the entity itself. + + An entry for the parent complex property, or null if this is an entity property. + + + + Gets the backing this object. + + The internal member entry. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The name of the nested property. + An object representing the nested property. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the complex property. + The equivalent generic object. + + + + Instances of this class are returned from the ComplexProperty method of + and allow access to the state of a complex property. + + The type of the entity to which this property belongs. + The type of the property. + + + + Instances of this class are returned from the Property method of + and allow access to the state of the scalar + or complex property. + + The type of the entity to which this property belongs. + The type of the property. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Returns a new instance of the non-generic class for + the property represented by this object. + + A non-generic version. + + + + Gets the property name. + + The property name. + + + + Gets or sets the original value of this property. + + The original value. + + + + Gets or sets the current value of this property. + + The current value. + + + + Gets or sets a value indicating whether the value of this property has been modified since + it was loaded from the database. + + + true if this instance is modified; otherwise, false. + + + + + The to which this property belongs. + + An entry for the entity that owns this property. + + + + The of the property for which this is a nested property. + This method will only return a non-null entry for properties of complex objects; it will + return null for properties of the entity itself. + + An entry for the parent complex property, or null if this is an entity property. + + + + Gets the underlying as an . + + The internal member entry. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Returns a new instance of the non-generic class for + the property represented by this object. + + A non-generic version. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The type of the nested property. + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The type of the nested property. + An expression representing the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The type of the nested property. + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The type of the nested property. + An expression representing the nested property. + An object representing the nested property. + + + + Describes the origin of the database connection string associated with a . + + + + + The connection string was created by convention. + + + + + The connection string was read from external configuration. + + + + + The connection string was explicitly specified at runtime. + + + + + The connection string was overriden by connection information supplied to DbContextInfo. + + + + + Returned by the Configuration method of to provide access to configuration + options for the context. + + + + + Initializes a new instance of the class. + + The internal context. + + + + Gets or sets a value indicating whether lazy loading of relationships exposed as + navigation properties is enabled. Lazy loading is enabled by default. + + true if lazy loading is enabled; otherwise, false. + + + + Gets or sets a value indicating whether or not the framework will create instances of + dynamically generated proxy classes whenever it creates an instance of an entity type. + Note that even if proxy creation is enabled with this flag, proxy instances will only + be created for entity types that meet the requirements for being proxied. + Proxy creation is enabled by default. + + true if proxy creation is enabled; otherwise, false. + + + + + Gets or sets a value indicating whether tracked entities should be validated automatically when + is invoked. + The default value is true. + + + + + Provides runtime information about a given type. + + + + + Creates a new instance representing a given type. + + The type deriving from . + + + + Creates a new instance representing a given targeting a specific database. + + The type deriving from . + Connection information for the database to be used. + + + + Creates a new instance representing a given type. An external list of + connection strings can be supplied and will be used during connection string resolution in place + of any connection strings specified in external configuration files. + + + It is preferable to use the constructor that accepts the entire config document instead of using this + constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config + to be found in addition to explicitly specified connection strings. + + The type deriving from . + A collection of connection strings. + + + + Creates a new instance representing a given type. An external config + object (e.g. app.config or web.config) can be supplied and will be used during connection string + resolution. This includes looking for connection strings and DefaultConnectionFactory entries. + + The type deriving from . + An object representing the config file. + + + + Creates a new instance representing a given , targeting a specific database. + An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string + resolution. This includes looking for connection strings and DefaultConnectionFactory entries. + + The type deriving from . + An object representing the config file. + Connection information for the database to be used. + + + + Creates a new instance representing a given type. A + can be supplied in order to override the default determined provider used when constructing + the underlying EDM model. + + The type deriving from . + A specifying the underlying ADO.NET provider to target. + + + + Creates a new instance representing a given type. An external config + object (e.g. app.config or web.config) can be supplied and will be used during connection string + resolution. This includes looking for connection strings and DefaultConnectionFactory entries. + A can be supplied in order to override the default determined + provider used when constructing the underlying EDM model. This can be useful to prevent EF from + connecting to discover a manifest token. + + The type deriving from . + An object representing the config file. + A specifying the underlying ADO.NET provider to target. + + + + Called internally when a context info is needed for an existing context, which may not be constructable. + + The context instance to get info from. + + + + If instances of the underlying type can be created, returns + a new instance; otherwise returns null. + + A instance. + + + + The concrete type. + + + + + Whether or not instances of the underlying type can be created. + + + + + The connection string used by the underlying type. + + + + + The connection string name used by the underlying type. + + + + + The ADO.NET provider name of the connection used by the underlying type. + + + + + The origin of the connection string used by the underlying type. + + + + + An action to be run on the DbModelBuilder after OnModelCreating has been run on the context. + + + + + A non-generic version of the class. + + + + + Initializes a new instance of the class. + + The internal entry. + + + + Queries the database for copies of the values of the tracked entity as they currently exist in the database. + Note that changing the values in the returned dictionary will not update the values in the database. + If the entity is not found in the database then null is returned. + + The store values. + + + + Reloads the entity from the database overwriting any property values with values from the database. + The entity will be in the Unchanged state after calling this method. + + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The name of the property. + An object representing the property. + + + + Gets an object that represents a complex property of this entity. + + The name of the complex property. + An object representing the complex property. + + + + Gets an object that represents a member of the entity. The runtime type of the returned object will + vary depending on what kind of member is asked for. The currently supported member types and their return + types are: + Reference navigation property: . + Collection navigation property: . + Primitive/scalar property: . + Complex property: . + + The name of the member. + An object representing the member. + + + + Returns a new instance of the generic class for the given + generic type for the tracked entity represented by this object. + Note that the type of the tracked entity must be compatible with the generic type or + an exception will be thrown. + + The type of the entity. + A generic version. + + + + Validates this instance and returns validation result. + + + Entity validation result. Possibly null if + method is overridden. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the entity. + + The entity. + + + + Gets or sets the state of the entity. + + The state. + + + + Gets the current property values for the tracked entity represented by this object. + + The current values. + + + + Gets the original property values for the tracked entity represented by this object. + The original values are usually the entity's property values as they were when last queried from + the database. + + The original values. + + + + Gets InternalEntityEntry object for this DbEntityEntry instance. + + + + + Instances of this class provide access to information about and control of entities that + are being tracked by the . Use the Entity or Entities methods of + the context to obtain objects of this type. + + The type of the entity. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Queries the database for copies of the values of the tracked entity as they currently exist in the database. + Note that changing the values in the returned dictionary will not update the values in the database. + If the entity is not found in the database then null is returned. + + The store values. + + + + Reloads the entity from the database overwriting any property values with values from the database. + The entity will be in the Unchanged state after calling this method. + + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The type of the property. + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The type of the property. + An expression representing the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The type of elements in the collection. + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The type of elements in the collection. + An expression representing the navigation property. + An object representing the navigation property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The name of the property. + An object representing the property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The type of the property. + The name of the property. + An object representing the property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The type of the property. + An expression representing the property. + An object representing the property. + + + + Gets an object that represents a complex property of this entity. + + The name of the complex property. + An object representing the complex property. + + + + Gets an object that represents a complex property of this entity. + + The type of the complex property. + The name of the complex property. + An object representing the complex property. + + + + Gets an object that represents a complex property of this entity. + + The type of the complex property. + An expression representing the complex property. + An object representing the complex property. + + + + Gets an object that represents a member of the entity. The runtime type of the returned object will + vary depending on what kind of member is asked for. The currently supported member types and their return + types are: + Reference navigation property: . + Collection navigation property: . + Primitive/scalar property: . + Complex property: . + + The name of the member. + An object representing the member. + + + + Gets an object that represents a member of the entity. The runtime type of the returned object will + vary depending on what kind of member is asked for. The currently supported member types and their return + types are: + Reference navigation property: . + Collection navigation property: . + Primitive/scalar property: . + Complex property: . + + The type of the member. + The name of the member. + An object representing the member. + + + + Returns a new instance of the non-generic class for + the tracked entity represented by this object. + + A non-generic version. + + + + Validates this instance and returns validation result. + + + Entity validation result. Possibly null if + method is overridden. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the entity. + + The entity. + + + + Gets or sets the state of the entity. + + The state. + + + + Gets the current property values for the tracked entity represented by this object. + + The current values. + + + + Gets the original property values for the tracked entity represented by this object. + The original values are usually the entity's property values as they were when last queried from + the database. + + The original values. + + + + Represents an Entity Data Model (EDM) created by the . + The Compile method can be used to go from this EDM representation to a + which is a compiled snapshot of the model suitable for caching and creation of + or instances. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Creates a for this mode which is a compiled snapshot + suitable for caching and creation of instances. + + The compiled model. + + + + A snapshot of the that was used to create this compiled model. + + + + + A collection of all the properties for an underlying entity or complex object. + + + An instance of this class can be converted to an instance of the generic class + using the Cast method. + Complex properties in the underlying entity or complex object are represented in + the property values as nested instances of this class. + + + + + Initializes a new instance of the class. + + The internal dictionary. + + + + Creates an object of the underlying type for this dictionary and hydrates it with property + values from this dictionary. + + The properties of this dictionary copied into a new object. + + + + Sets the values of this dictionary by reading values out of the given object. + The given object can be of any type. Any property on the object with a name that + matches a property name in the dictionary and can be read will be read. Other + properties will be ignored. This allows, for example, copying of properties from + simple Data Transfer Objects (DTOs). + + The object to read values from. + + + + Creates a new dictionary containing copies of all the properties in this dictionary. + Changes made to the new dictionary will not be reflected in this dictionary and vice versa. + + A clone of this dictionary. + + + + Sets the values of this dictionary by reading values from another dictionary. + The other dictionary must be based on the same type as this dictionary, or a type derived + from the type for this dictionary. + + The dictionary to read values from. + + + + Gets the value of the property just like using the indexed property getter but + typed to the type of the generic parameter. This is useful especially with + nested dictionaries to avoid writing expressions with lots of casts. + + The type of the property. + Name of the property. + The value of the property. + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + Gets or sets the value of the property with the specified property name. + The value may be a nested instance of this class. + + The property name. + The value of the property. + + + + Gets the internal dictionary. + + The internal dictionary. + + + + A non-generic version of the class. + + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal reference entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the entity from the database. + Note that if the entity already exists in the context, then it will not overwritten with values from the database. + + + + + Returns the query that would be used to load this entity from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database. + + A query for the entity. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the property. + The equivalent generic object. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the entity has been loaded from the database. + + true if the entity is loaded; otherwise, false. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + Gets the backing this object as an . + + The internal member entry. + + + + Instances of this class are returned from the Reference method of + and allow operations such as loading to + be performed on the an entity's reference navigation properties. + + The type of the entity to which this property belongs. + The type of the property. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal reference entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the entity from the database. + Note that if the entity already exists in the context, then it will not overwritten with values from the database. + + + + + Returns the query that would be used to load this entity from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database. + + A query for the entity. + + + + Returns a new instance of the non-generic class for + the navigation property represented by this object. + + A non-generic version. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the entity has been loaded from the database. + + true if the entity is loaded; otherwise, false. + + + + Gets the underlying as an . + + The internal member entry. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + Represents a SQL query for entities that is created from a + and is executed using the connection from that context. + Instances of this class are obtained from the instance for the + entity type. The query is not executed when this object is created; it is executed + each time it is enumerated, for example by using foreach. + SQL queries for non-entities are created using the . + See for a generic version of this class. + + + + + Initializes a new instance of the class. + + The internal query. + + + + Executes the query and returns an enumerator for the elements. + + + An object that can be used to iterate through the elements. + + + + + Returns a new query where the results of the query will not be tracked by the associated + . + + A new query with no-tracking applied. + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Gets the internal query. + + The internal query. + + + + Returns false. + + false. + + + + Represents a SQL query for entities that is created from a + and is executed using the connection from that context. + Instances of this class are obtained from the instance for the + entity type. The query is not executed when this object is created; it is executed + each time it is enumerated, for example by using foreach. + SQL queries for non-entities are created using the . + See for a non-generic version of this class. + + + + + Executes the query and returns an enumerator for the elements. + + An + + object that can be used to iterate through the elements. + + + + Executes the query and returns an enumerator for the elements. + + + An object that can be used to iterate through the elements. + + + + + Returns a new query where the results of the query will not be tracked by the associated + . + + A new query with no-tracking applied. + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Gets the internal query. + + The internal query. + + + + Returns false. + + false. + + + + Exception thrown by when it was expected that SaveChanges for an entity would + result in a database update but in fact no rows in the database were affected. This usually indicates + that the database has been concurrently updated such that a concurrency token that was expected to match + did not actually match. + Note that state entries referenced by this exception are not serialized due to security and accesses to + the state entries after serialization will return null. + + + + + + Initializes a new instance of the class. + + The internal context. + The inner exception. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Subscribes the SerializeObjectState event. + + + + + Gets objects that represents the entities that could not + be saved to the database. + + The entries representing the entities that could not be saved. + + + + Holds exception state that will be serialized when the exception is serialized. + + + + + Completes the deserialization. + + The deserialized object. + + + + Gets or sets a value indicating whether the exception involved independent associations. + + + + + Initializes a new instance of the class. + + The context. + The inner exception. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Represents an entity used to store metadata about an EDM in the database. + + + + + Attempts to get the model hash calculated by Code First for the given context. + This method will return null if the context is not being used in Code First mode. + + The context. + The hash string. + + + + Gets or sets the ID of the metadata entity, which is currently always 1. + + The id. + + + + Gets or sets the model hash which is used to check whether the model has + changed since the database was created from it. + + The model hash. + + + + Contains methods used to access the Entity Data Model created by Code First in the EDMX form. + These methods are typically used for debugging when there is a need to look at the model that + Code First creates internally. + + + + + Uses Code First with the given context and writes the resulting Entity Data Model to the given + writer in EDMX form. This method can only be used with context instances that use Code First + and create the model internally. The method cannot be used for contexts created using Database + First or Model First, for contexts created using a pre-existing , or + for contexts created using a pre-existing . + + The context. + The writer. + + + + Writes the Entity Data Model represented by the given to the + given writer in EDMX form. + + An object representing the EDM. + The writer. + + + + A factory for creating derived instances. Implement this + interface to enable design-time services for context types that do not have a + public default constructor. + + At design-time, derived instances can be created in order to enable specific + design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation + for derived types that do not have a public, default constructor, implement + this interface. Design-time services will auto-discover implementations of this interface that are in the + same assembly as the derived type. + + + + + + Creates a new instance of a derived type. + + An instance of TContext + + + + This convention causes DbModelBuilder to include metadata about the model + when it builds the model. When creates a model by convention it will + add this convention to the list of those used by the DbModelBuilder. This will then result in + model metadata being written to the database if the DbContext is used to create the database. + This can then be used as a quick check to see if the model has changed since the last time it was + used against the database. + This convention can be removed from the conventions by overriding + the OnModelCreating method on a derived DbContext class. + + + + + Adds metadata to the given model configuration. + + The model configuration. + + + + This convention uses the name of the derived + class as the container for the conceptual model built by + Code First. + + + + + Initializes a new instance of the class. + + The model container name. + + + + Applies the convention to the given model. + + The model. + + + + This convention uses the namespace of the derived + class as the namespace of the conceptual model built by + Code First. + + + + + Initializes a new instance of the class. + + The model namespace. + + + + Applies the convention to the given model. + + The model. + + + + Instances of this class are used internally to create constant expressions for + that are inserted into the expression tree to replace references to + and . + + The type of the element. + + + + Private constructor called by the Create factory method. + + The query. + + + + Factory method called by CreateDelegate to create an instance of this class. + + The query, which must be a generic object of the expected type. + A new instance. + + + + The public property expected in the LINQ expression tree. + + The query. + + + + Instances of this class are used to create DbConnection objects for + SQL Server Compact Edition based on a given database name or connection string. + + + It is necessary to provide the provider invariant name of the SQL Server Compact + Edition to use when creating an instance of this class. This is because different + versions of SQL Server Compact Editions use different invariant names. + An instance of this class can be set on the class to + cause all DbContexts created with no connection information or just a database + name or connection string to use SQL Server Compact Edition by default. + This class is immutable since multiple threads may access instances simultaneously + when creating connections. + + + + + Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString + properties. + + The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. + + + + Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties. + + + The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. + + + The path to prepend to the database name that will form the file name used by SQL Server Compact Edition + when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use + its default for the database file location. + + + The connection string to use for options to the database other than the 'Data Source'. The Data Source will + be prepended to this string based on the database name when CreateConnection is called. + + + + + Creates a connection for SQL Server Compact Edition based on the given database name or connection string. + If the given string contains an '=' character then it is treated as a full connection string, + otherwise it is treated as a database name only. + + The database name or connection string. + An initialized DbConnection. + + + + The path to prepend to the database name that will form the file name used by + SQL Server Compact Edition when it creates or reads the database file. + The default value is "|DataDirectory|", which means the file will be placed + in the designated data directory. + + + + + The connection string to use for options to the database other than the 'Data Source'. + The Data Source will be prepended to this string based on the database name when + CreateConnection is called. + The default is the empty string, which means no other options will be used. + + + + + The provider invariant name that specifies the version of SQL Server Compact Edition + that should be used. + + + + + Instances of this class are used to create DbConnection objects for + SQL Server based on a given database name or connection string. By default, the connection is + made to '.\SQLEXPRESS'. This can be changed by changing the base connection + string when constructing a factory instance. + + + An instance of this class can be set on the class to + cause all DbContexts created with no connection information or just a database + name or connection string to use SQL Server by default. + This class is immutable since multiple threads may access instances simultaneously + when creating connections. + + + + + Creates a new connection factory with a default BaseConnectionString property of + 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'. + + + + + Creates a new connection factory with the given BaseConnectionString property. + + + The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will + be prepended to this string based on the database name when CreateConnection is called. + + + + + Creates a connection for SQL Server based on the given database name or connection string. + If the given string contains an '=' character then it is treated as a full connection string, + otherwise it is treated as a database name only. + + The database name or connection string. + An initialized DbConnection. + + + + Remove hard dependency on DbProviderFactories. + + + + + The connection string to use for options to the database other than the 'Initial Catalog'. + The 'Initial Catalog' will be prepended to this string based on the database name when + CreateConnection is called. + The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'. + + + + + This attribute can be applied to either an entire derived class or to + individual or properties on that class. When applied + any discovered or properties will still be included + in the model but will not be automatically initialized. + + + + + Thrown when a context is generated from the templates in Database First or Model + First mode and is then used in Code First mode. + + + Code generated using the T4 templates provided for Database First and Model First use may not work + correctly if used in Code First mode. To use these classes with Code First please add any additional + configuration using attributes or the DbModelBuilder API and then remove the code that throws this + exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Implements ICachedMetadataWorkspace for a Code First model. + + + + + Represents an object that holds a cached copy of a MetadataWorkspace and optionally the + assemblies containing entity types to use with that workspace. + + + + + Gets the MetadataWorkspace, potentially lazily creating it if it does not already exist. + If the workspace is not compatible with the provider manifest obtained from the given + connection then an exception is thrown. + + The connection to use to create or check SSDL provider info. + The workspace. + + + + The list of assemblies that contain entity types for this workspace, which may be empty, but + will never be null. + + + + + The default container name for code first is the container name that is set from the DbModelBuilder + + + + + The provider info used to construct the workspace. + + + + + Builds and stores the workspace based on the given code first configuration. + + The code first EDM model. + + + + Gets the . + If the workspace is not compatible with the provider manifest obtained from the given + connection then an exception is thrown. + + The connection to use to create or check SSDL provider info. + The workspace. + + + + The default container name for code first is the container name that is set from the DbModelBuilder + + + + + The list of assemblies that contain entity types for this workspace, which may be empty, but + will never be null. + + + + + The provider info used to construct the workspace. + + + + + The methods here are called from multiple places with an ObjectContext that may have + been created in a variety of ways and ensure that the same code is run regardless of + how the context was created. + + + + + Used a delegate to do the actual creation once an ObjectContext has been obtained. + This is factored in this way so that we do the same thing regardless of how we get to + having an ObjectContext. + Note however that a context obtained from only a connection will have no model and so + will result in an empty database. + + + + + Used a delegate to do the actual existence check once an ObjectContext has been obtained. + This is factored in this way so that we do the same thing regardless of how we get to + having an ObjectContext. + + + + + Used a delegate to do the actual check/delete once an ObjectContext has been obtained. + This is factored in this way so that we do the same thing regardless of how we get to + having an ObjectContext. + + + + + Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. + + + + + Creates a new pair of the given set of entity types and DbSet initializer delegate. + + + + + The entity types part of the pair. + + + + + The DbSet properties initializer part of the pair. + + + + + Static helper methods only. + + + + + Checks whether the given value is null and throws ArgumentNullException if it is. + This method should only be used in places where Code Contracts are compiled out in the + release build but we still need public surface null-checking, such as where a public + abstract class is implemented by an internal concrete class. + + + + + Checks whether the given string is null, empty, or just whitespace, and throws appropriately + if the check fails. + This method should only be used in places where Code Contracts are compiled out in the + release build but we still need public surface checking, such as where a public + abstract class is implemented by an internal concrete class. + + + + + Given two key values that may or may not be byte arrays, this method determines + whether or not they are equal. For non-binary key values, this is equivalent + to Object.Equals. For binary keys, it is by comparison of every byte in the + arrays. + + + + + Provides a standard helper method for quoting identifiers + + Identifier to be quoted. Does not validate that this identifier is valid. + Quoted string + + + + Checks the given string which might be a database name or a connection string and determines + whether it should be treated as a name or connection string. Currently, the test is simply + whether or not the string contains an '=' character--if it does, then it should be treated + as a connection string. + + The name or connection string. + true if the string should be treated as a connection string; false if it should be treated as a name. + + + + Determines whether the given string should be treated as a database name directly (it contains no '='), + is in the form name=foo, or is some other connection string. If it is a direct name or has name=, then + the name is extracted and the method returns true. + + The name or connection string. + The name. + True if a name is found; false otherwise. + + + + Determines whether the given string is a full EF connection string with provider, provider connection string, + and metadata parts, or is is instead some other form of connection string. + + The name or connection string. + true if the given string is an EF connection string; otherwise, false. + + + + + Parses a property selector expression used for the expression-based versions of the Property, Collection, Reference, + etc methods on and + classes. + + The type of the entity. + The type of the property. + The property. + Name of the method. + Name of the param. + The property name. + + + + Called recursively to parse an expression tree representing a property path such + as can be passed to Include or the Reference/Collection/Property methods of . + This involves parsing simple property accesses like o => o.Products as well as calls to Select like + o => o.Products.Select(p => p.OrderLines). + + The expression to parse. + The expression parsed into an include path, or null if the expression did not match. + True if matching succeeded; false if the expression could not be parsed. + + + + Gets a cached dictionary mapping property names to property types for all the properties + in the given type. + + + + + Gets a dictionary of compiled property setter delegates for the underlying types. + The dictionary is cached for the type in the app domain. + + + + + Used by the property setter delegates to throw for attempts to set null onto + non-nullable properties or otherwise go ahead and set the property. + + + + + Gets a dictionary of compiled property getter delegates for the underlying types. + The dictionary is cached for the type in the app domain. + + + + + Creates a new with the NoTracking merge option applied. + The query object passed in is not changed. + + The query. + A new query with NoTracking applied. + + + + Converts to + + + Name of the property being validated with ValidationAttributes. Null for type-level validation. + + + ValidationResults instances to be converted to instances. + + + An created based on the + . + + + class contains a property with names of properties the error applies to. + On the other hand each applies at most to a single property. As a result for + each name in ValidationResult.MemberNames one will be created (with some + exceptions for special cases like null or empty .MemberNames or null names in the .MemberNames). + + + + + Calculates a "path" to a property. For primitive properties on an entity type it is just the + name of the property. Otherwise it is a dot separated list of names of the property and all + its ancestor properties starting from the entity. + + Property for which to calculate the path. + Dot separated path to the property. + + + + Gets names of the property and its ancestor properties as enumerable walking "bottom-up". + + Property for which to get the segments. + Names of the property and its ancestor properties. + + + + Gets an type for the given element type. + + Type of the element. + The collection type. + + + + Creates a database name given a type derived from DbContext. This handles nested and + generic classes. No attempt is made to ensure that the name is not too long since this + is provider specific. If a too long name is generated then the provider will throw and + the user must correct by specifying their own name in the DbContext constructor. + + Type of the context. + The database name to use. + + + + A local (in-memory) view of the entities in a DbSet. + This view contains Added entities and does not contain Deleted entities. The view extends + from and hooks up events between the collection and the + state manager to keep the view in sync. + + The type of the entity. + + + + Initializes a new instance of the class for entities + of the given generic type in the given internal context. + + The internal context. + + + + Called by the base class when the collection changes. + This method looks at the change made to the collection and reflects those changes in the + state manager. + + The instance containing the event data. + + + + Handles events from the state manager for entities entering, leaving, or being marked as deleted. + The local view is kept in sync with these changes. + + The sender. + The instance containing the event data. + + + + Clears the items by calling remove on each item such that we get Remove events that + can be tracked back to the state manager, rather than a single Reset event that we + cannot deal with. + + + + + Adds a contains check to the base implementation of InsertItem since we can't support + duplicate entities in the set. + + The index at which to insert. + The item to insert. + + + + Returns a cached binding list implementation backed by this ObservableCollection. + + The binding list. + + + + Service used to search for instance properties on a DbContext class that can + be assigned a DbSet instance. Also, if the the property has a public setter, + then a delegate is compiled to set the property to a new instance of DbSet. + All of this information is cached per app domain. + + + + + Creates a set discovery service for the given derived context. + + + + + Processes the given context type to determine the DbSet or IDbSet + properties and collect root entity types from those properties. Also, delegates are + created to initialize any of these properties that have public setters. + If the type has been processed previously in the app domain, then all this information + is returned from a cache. + + A dictionary of potential entity type to the list of the names of the properties that used the type. + + + + Calls the public setter on any property found to initialize it to a new instance of DbSet. + + + + + Registers the entities and their entity set name hints with the given . + + The model builder. + + + + Returns false if SuppressDbSetInitializationAttribute is found on the property or the class, otherwise + returns true. + + + + + Determines whether or not an instance of DbSet/ObjectSet can be assigned to a property of the given type. + + The type to check. + The entity type of the DbSet/ObjectSet that can be assigned, or null if no set type can be assigned. + + + + + A EagerInternalConnection object wraps an already existing DbConnection object. + + + + + InternalConnection objects manage DbConnections. + Two concrete base classes of this abstract interface exist: + and . + + + + + IInternalConnection objects manage DbConnections. + Two concrete implementations of this interface exist--LazyInternalConnection and EagerInternalConnection. + + + + + Creates an from metadata in the connection. This method must + only be called if ConnectionHasModel returns true. + + The newly created context. + + + + Returns the underlying DbConnection. + + + + + Returns a key consisting of the connection type and connection string. + If this is an EntityConnection then the metadata path is included in the key returned. + + + + + Gets a value indicating whether the connection is an EF connection which therefore contains + metadata specifying the model, or instead is a store connection, in which case it contains no + model info. + + true if the connection contains model info; otherwise, false. + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries + and connection strins. + + + + + Gets or sets the provider to be used when creating the underlying connection. + + + + + Gets the name of the underlying connection string. + + + + + Gets the original connection string. + + + + + Creates an from metadata in the connection. This method must + only be called if ConnectionHasModel returns true. + + The newly created context. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Called after the connection is initialized for the first time. + + + + + Adds a tracking cookie to the connection string for SqlConnections. Returns the + possibly modified store connection string. + + + + + Returns the underlying DbConnection. + + + + + Returns a key consisting of the connection type and connection string. + If this is an EntityConnection then the metadata path is included in the key returned. + + + + + + Gets a value indicating whether the connection is an EF connection which therefore contains + metadata specifying the model, or instead is a store connection, in which case it contains no + model info. + + true if the connection contains model info; otherwise, false. + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries + and connection strins. + + + + + Gets or sets the provider to be used when creating the underlying connection. + + + + + Gets the name of the underlying connection string. + + + + + Gets the original connection string. + + + + + Gets or sets the underlying object. No initialization is done when the + connection is obtained, and it can also be set to null. + + The underlying connection. + + + + Creates a new EagerInternalConnection that wraps an existing DbConnection. + + An existing connection. + If set to true then the underlying connection should be disposed when this object is disposed. + + + + Dispose the existing connection is the original caller has specified that it should be disposed + by the framework. + + + + + Returns the origin of the underlying connection string. + + + + + An is an where the + instance that it wraps is set immediately at construction time rather than being created lazily. In this case + the internal context may or may not own the instance but will only dispose it + if it does own it. + + + + + An underlies every instance of and wraps an + instance. + The also acts to expose necessary information to other parts of the design in a + controlled manner without adding a lot of internal methods and properties to the + class itself. + Two concrete classes derive from this abstract class - and + . + + + + + Initializes the object with its owner. + + The owner . + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Creates a new temporary based on the same metadata and connection as the real + and sets it as the context to use DisposeTempObjectContext is called. + This allows this internal context and its DbContext to be used for transient operations + such as initializing and seeding the database, after which it can be thrown away. + This isolates the real from any changes made and and saves performed. + + + + + If a temporary ObjectContext was set with UseTempObjectContext, then this method disposes that context + and returns this internal context and its DbContext to using the real ObjectContext. + + + + + Called by methods of to create a database either using the Migrations pipeline + if possible and the core provider otherwise. + + The context to use for core provider calls. + + + + Internal implementation of . + + True if the model hash in the context and the database match; false otherwise. + + + + Checks whether the given model (an EDMX document) matches the current model. + + + + + Queries the database for a model hash and returns it if found or returns null if the table + or the row doesn't exist in the database. + + The model hash, or null if not found. + + + + Queries the database for a model stored in the MigrationHistory table and returns it as an EDMX, or returns + null if the database does not contain a model. + + + + + Saves the model hash from the context to the database. + + + + + Performs the initialization action that may result in a and + handle the exception to provide more meaning to the user. + + The action. + + + + Registers for the ObjectStateManagerChanged event on the underlying ObjectStateManager. + This is a virtual method on this class so that it can be mocked. + + The event handler. + + + + Checks whether or not the given object is in the context in any state other than Deleted. + This is a virtual method on this class so that it can be mocked. + + The entity. + true if the entity is in the context and not deleted; otherwise false. + + + + Saves all changes made in this context to the underlying database. + + The number of objects written to the underlying database. + + + + Initializes this instance, which means both the context is initialized and the underlying + database is initialized. + + + + + Initializes the underlying ObjectContext but does not cause the database to be initialized. + + + + + Marks the database as having not been initialized. This is called when the app calls Database.Delete so + that the database if the app attempts to then use the database again it will be re-initialized automatically. + + + + + Runs the unless it has already been run or there + is no initializer for this context type in which case this method does nothing. + + + + + Marks the database as having been initialized without actually running the . + + + + + Runs the if one has been set for this context type. + Calling this method will always cause the initializer to run even if the database is marked + as initialized. + + + + + Disposes the context. Override the DisposeContext method to perform + additional work when disposing. + + + + + Performs additional work to dispose a context. + + + + + Calls DetectChanges on the underlying if AutoDetectChangesEnabled is + true or if force is set to true. + + if set to true then DetectChanges is called regardless of the value of AutoDetectChangesEnabled. + + + + Returns the DbSet instance for the given entity type. + This property is virtual and returns to that it can be mocked. + + The entity type for which a set should be returned. + A set for the given entity type. + + + + Returns the non-generic instance for the given entity type. + This property is virtual and returns to that it can be mocked. + + The entity type for which a set should be returned. + A set for the given entity type. + + + + Creates an internal set using an app domain cached delegate. + + Type of the entity. + The set. + + + + Returns the entity set and the base type for that entity set for the given type. + This method does o-space loading if required and throws if the type is not in the model. + + The entity type to lookup. + The entity set and base type pair. + + + + Returns the entity set and the base type for that entity set for the given type if that + type is mapped in the model, otherwise returns null. + This method does o-space loading if required. + + The entity type to lookup. + The entity set and base type pair, or null if not found. + + + + Checks whether or not the given entity type is mapped in the model. + + The entity type to lookup. + True if the type is mapped as an entity; false otherwise. + + + + Gets the local entities of the type specified from the state manager. That is, all + Added, Modified, and Unchanged entities of the given type. + + The type of entity to get. + The entities. + + + + Executes the given SQL query against the database backing this context. The results are not materialized as + entities or tracked. + + The type of the element. + The SQL. + The parameters. + The query results. + + + + Executes the given SQL query against the database backing this context. The results are not materialized as + entities or tracked. + + Type of the element. + The SQL. + The parameters. + The query results. + + + + Calls the generic ExecuteSqlQuery but with a non-generic return type so that it + has the correct signature to be used with CreateDelegate above. + + + + + Executes the given SQL command against the database backing this context. + + The SQL. + The parameters. + The return value from the database. + + + + Gets the underlying for the given entity, or returns null if the entity isn't tracked by this context. + This method is virtual so that it can be mocked. + + The entity. + The state entry or null. + + + + Gets the underlying objects for all entities tracked by + this context. + This method is virtual so that it can be mocked. + + State entries for all tracked entities. + + + + Gets the underlying objects for all entities of the given + type tracked by this context. + This method is virtual so that it can be mocked. + + The type of the entity. + State entries for all tracked entities of the given type. + + + + Helper method that gets the underlying objects for all entities that + match the given predicate. + + + + + Wraps the given in either a or + a depending on the actual exception type and the state + entries involved. + + The update exception. + A new exception wrapping the given exception. + + + + Uses the underlying context to create an entity such that if the context is configured + to create proxies and the entity is suitable then a proxy instance will be returned. + This method is virtual so that it can be mocked. + + The type of the entity. + The new entity instance. + + + + Uses the underlying context to create an entity such that if the context is configured + to create proxies and the entity is suitable then a proxy instance will be returned. + This method is virtual so that it can be mocked. + + The type of entity to create. + The new entity instance. + + + + This method is used by CreateDelegate to transform the CreateObject method with return type TEntity + into a method with return type object which matches the required type of the delegate. + + + + + Replaces the connection that will be used by this context. + The connection can only be changed before the context is initialized. + + The new connection. + + + + Throws if the context has been disposed. + + + + + Checks whether or not the internal cache of types to entity sets has been initialized, + and initializes it if necessary. + + + + + Forces all DbSets to be initialized, which in turn causes o-space loading to happen + for any entity type for which we have a DbSet. This includes all DbSets that were + discovered on the user's DbContext type. + + + + + Performs o-space loading for the type and returns false if the type is not in the model. + + + + + Performs o-space loading for the type and throws if the type is not in the model. + + Type of the entity. + + + + Returns true if the given entity type does not have EdmEntityTypeAttribute but is in + an assembly that has EdmSchemaAttribute. This indicates mixing of POCO and EOCO in the + same assembly, which is something that we don't support. + + + + + Determines whether or not the given clrType is mapped to a complex type. Assumes o-space loading has happened. + + + + + Updates the cache of types to entity sets either for the first time or after potentially + doing some o-space loading. + + + + + The public context instance that owns this internal context. + + + + + Returns the underlying . + + + + + Gets the temp object context, or null if none has been set. + + The temp object context. + + + + The compiled model created from the Code First pipeline, or null if Code First was + not used to create this context. + Causes the Code First pipeline to be run to create the model if it has not already been + created. + + + + + Set to true when a database initializer is performing some actions, such as creating or deleting + a database, or seeding the database. + + + + + Gets the default database initializer to use for this context if no other has been registered. + For code first this property returns a instance. + For database/model first, this property returns null. + + The default initializer. + + + + Gets or sets a value indicating whether lazy loading is enabled. + + + + + Gets or sets a value indicating whether proxy creation is enabled. + + + + + Gets or sets a value indicating whether DetectChanges is called automatically in the API. + + + + + Gets or sets a value indicating whether to validate entities when is called. + + + + + True if the context has been disposed. + + + + + The connection underlying this context. Accessing this property does not cause the context + to be initialized, only its connection. + + + + + The connection string as originally applied to the context. This is used to perform operations + that need the connection string in a non-mutated form, such as with security info still intact. + + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries, + database intializers and connection strings. + + + + + Gets or sets the provider details to be used when building the EDM model. + + + + + Gets the name of the underlying connection string. + + + + + Gets the provider name bsing used either using a cached value or getting it from + the DbConnection in use. + + + + + Gets or sets a custom OnModelCreating action. + + + + + Gets the DatabaseOperations instance to use to perform Create/Delete/Exists operations + against the database. + Note that this virtual property can be mocked to help with unit testing. + + + + + Gets instance used to create validators and validation contexts. + This property is virtual to allow mocking. + + + + + For mocking. + + + + + Constructs an for an already existing . + + The owner . + The existing . + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Does nothing, since the already exists. + + + + + Does nothing since the database is always considered initialized if the was created + from an existing . + + + + + Does nothing since the database is always considered initialized if the was created + from an existing . + + + + + Does nothing since the database is always considered initialized if the was created + from an existing . + + + + + Disposes the context. The underlying is also disposed if it is owned. + + + + + + + + Returns the underlying . + + + + + Gets the default database initializer to use for this context if no other has been registered. + For code first this property returns a instance. + For database/model first, this property returns null. + + The default initializer. + + + + The connection underlying this context. + + + + + The connection string as originally applied to the context. This is used to perform operations + that need the connection string in a non-mutated form, such as with security info still intact. + + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets a value indicating whether lazy loading is enabled. This is just a wrapper + over the same flag in the underlying . + + + + + Gets or sets a value indicating whether proxy creation is enabled. This is just a wrapper + over the same flag in the underlying ObjectContext. + + + + + An implementation of that represents a clone of another + dictionary. That is, all the property values have been been copied into this dictionary. + + + + + The internal class used to implement . + This internal class allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal context with which the entity of complex object is associated. + The type of the entity or complex object. + If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object. + + + + Implemented by subclasses to get the dictionary item for a given property name. + Checking that the name is valid should happen before this method is called such + that subclasses do not need to perform the check. + + Name of the property. + An item for the given name. + + + + Creates an object of the underlying type for this dictionary and hydrates it with property + values from this dictionary. + + The properties of this dictionary copied into a new object. + + + + Creates an instance of the underlying type for this dictionary, which may either be an entity type (in which + case CreateObject on the context is used) or a non-entity type (in which case the empty constructor is used.) + In either case, app domain cached compiled delegates are used to do the creation. + + + + + Sets the values of this dictionary by reading values out of the given object. + The given object must be of the type that this dictionary is based on. + + The object to read values from. + + + + Creates a new dictionary containing copies of all the properties in this dictionary. + Changes made to the new dictionary will not be reflected in this dictionary and vice versa. + + A clone of this dictionary. + + + + Sets the values of this dictionary by reading values from another dictionary. + The other dictionary must be based on the same type as this dictionary, or a type derived + from the type for this dictionary. + + The dictionary to read values from. + + + + Gets the dictionary item for the property with the given name. + This method checks that the given name is valid. + + The property name. + The item. + + + + Sets the value of the property only if it is different from the current value and is not + an invalid attempt to set a complex property. + + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + Gets or sets the value of the property with the specified property name. + The value may be a nested instance of this class. + + The property name. + The value of the property. + + + + Gets the entity type of complex type that this dictionary is based on. + + The type of the object underlying this dictionary. + + + + Gets the internal context with which the underlying entity or complex type is associated. + + The internal context. + + + + Gets a value indicating whether the object for this dictionary is an entity or a complex object. + + true if this this is a dictionary for an entity; false if it is a dictionary for a complex object. + + + + Initializes a new instance of the class by copying + values from the given dictionary. + + The dictionary to clone. + If non-null, then the values for the new dictionary are taken from this record rather than from the original dictionary. + + + + Gets the dictionary item for a given property name. + + Name of the property. + An item for the given name. + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + An implementation of for an item in a . + + + + + Represents an item in an representing a property name/value. + + + + + Gets or sets the value of the property represented by this item. + + The value. + + + + Gets the name of the property. + + The name. + + + + Gets a value indicating whether this item represents a complex property. + + true If this instance represents a complex property; otherwise, false. + + + + Gets the type of the underlying property. + + The property type. + + + + Initializes a new instance of the class. + + The name. + The value. + The type. + If set to true this item represents a complex property. + + + + Gets or sets the value of the property represented by this item. + + The value. + + + + Gets the name of the property. + + The name. + + + + Gets a value indicating whether this item represents a complex property. + + + true If this instance represents a complex property; otherwise, false. + + + + + Gets the type of the underlying property. + + The property type. + + + + An implementation of that is based on an existing + instance. + + + + + Initializes a new instance of the class. + + The internal context. + The type. + The data record. + If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object. + + + + Gets the dictionary item for a given property name. + + Name of the property. + An item for the given name. + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + An implementation of for an item in a . + + + + + Initializes a new instance of the class. + + The data record. + The ordinal. + The value. + + + + Gets or sets the value of the property represented by this item. + + The value. + + + + Gets the name of the property. + + The name. + + + + Gets a value indicating whether this item represents a complex property. + + + true If this instance represents a complex property; otherwise, false. + + + + + Gets the type of the underlying property. + + The property type. + + + + This is version of an internal interface that already exists in System.Data.Entity that + is implemented by . Using this interface allows state + entries to be mocked for unit testing. The plan is to remove this version of the + interface and use the one in System.Data.Entity once we roll into the framework. + Note that some members may need to be added to the interface in the framework when + we combine the two. + + + + + The internal class used to implement and + . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Base class for and + containing common code for collection and reference navigation property entries. + + + + + Base class for all internal entries that represent different kinds of properties. + + + + + Initializes a new instance of the class. + + The internal entity entry. + The member metadata. + + + + Validates this property. + + A sequence of validation errors for this property. Empty if no errors. Never null. + + + + Creates a new non-generic backed by this internal entry. + The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry. + + The type of the entity. + The type of the property. + The new entry. + + + + Gets the property name. + The property is virtual to allow mocking. + + The property name. + + + + Gets or sets the current value of the navigation property. + + The current value. + + + + Gets the internal entity entry property belongs to. + This property is virtual to allow mocking. + + The internal entity entry. + + + + Gets the entry metadata. + + The entry metadata. + + + + Initializes a new instance of the class. + + The internal entity entry. + The navigation metadata. + + + + Calls Load on the underlying . + + + + + Uses CreateSourceQuery on the underlying to create a query for this + navigation property. + + + + + Gets the navigation property value from the object. + + The entity. + The navigation property value. + + + + Validates that the owning entity entry is associated with an underlying and + is not just wrapping a non-attached entity. + If the entity is not detached, then the RelatedEnd for this navigation property is obtained. + + + + + Calls IsLoaded on the underlying . + + + + + Gets the related end, which will be null if the entity is not being tracked. + + The related end. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references or the collection of references + for a collection property. + This property is virtual so that it can be mocked. + + The current value. + + + + Gets a delegate that can be used to get the value of the property directly from the entity. + Returns null if the property does not have an accessible getter. + + The getter delegate, or null. + + + + Gets a delegate that can be used to set the value of the property directly on the entity. + Returns null if the property does not have an accessible setter. + + The setter delegate, or null. + + + + Initializes a new instance of the class. + + The internal entity entry. + The navigation metadata. + + + + Gets the navigation property value from the object. + Since for a collection the related end is an , it means + that the internal representation of the navigation property is just the related end. + + The entity. + The navigation property value. + + + + Creates a new non-generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The type of the entity. + The type of the property. + The new entry. + + + + Creates a new generic backed by this internal entry. + The actual subtype of the DbCollectionEntry created depends on the metadata of this internal entry. + + The type of the entity. + The type of the element. + The new entry. + + + + Creates a object for the given entity type + and collection element type. + + The type of the entity. + The type of the property. + Type of the element. + The set. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references or the collection of references + for a collection property. + + The current value. + + + + The internal class used to implement + and . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal context. + The state entry. + + + + Initializes a new instance of the class for an + entity which may or may not be attached to the context. + + The internal context. + The entity. + + + + Queries the database for copies of the values of the tracked entity as they currently exist in the database. + + The store values. + + + + Appends a query for the properties in the entity to the given string builder that is being used to + build the eSQL query. This method may be called recursively to query for all the sub-properties of + a complex property. + + The query builder. + The qualifier with which to prefix each property name. + The dictionary that acts as a template for the properties to query. + + + + Validates that a dictionary can be obtained for the state of the entity represented by this entry. + + The method name being used to request a dictionary. + The state that is invalid for the request being processed. + + + + Calls Refresh with StoreWins on the underlying state entry. + + + + + Gets an internal object representing a reference navigation property. + This method is virtual to allow mocking. + + The navigation property. + The type of entity requested, which may be 'object' or null if any type can be accepted. + The entry. + + + + Gets an internal object representing a collection navigation property. + This method is virtual to allow mocking. + + The navigation property. + The type of entity requested, which may be 'object' or null f any type can be accepted. + The entry. + + + + Gets an internal object representing a navigation, scalar, or complex property. + This method is virtual to allow mocking. + + Name of the property. + The type of entity requested, which may be 'object' if any type can be accepted. + The entry. + + + + Gets an internal object representing a scalar or complex property. + This method is virtual to allow mocking. + + The property. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Gets an internal object representing a scalar or complex property. + The property may be a nested property on the given . + + The parent property entry, or null if this is a property directly on the entity. + Name of the property. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Gets an internal object representing a scalar or complex property. + The property may be a nested property on the given . + + The parent property entry, or null if this is a property directly on the entity. + Name of the property. + The property split out into its parts. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Checks that the given property name is a navigation property and is either a reference property or + collection property according to the value of requireCollection. + + + + + Gets metadata for the given property if that property is a navigation property or returns null + if it is not a navigation property. + + Name of the property. + Navigation property metadata or null. + + + + Gets the type of entity or entities at the target end of the given navigation property. + + The navigation property. + The CLR type of the entity or entities at the other end. + + + + Gets the related end for the navigation property with the given name. + + The navigation property. + + + + + Uses EDM metadata to validate that the property name exists in the model and represents a scalar or + complex property or exists in the CLR type. + This method is public and virtual so that it can be mocked. + + The property name. + The type on which the property is declared. + The type of object requested, which may be 'object' if any type can be accepted. + Metadata for the property. + + + + Splits the given property name into parts delimited by dots. + + Name of the property. + The parts of the name. + + + + Validates that this entry is associated with an underlying and + is not just wrapping a non-attached entity. + + + + + Validates entity represented by this entity entry. + This method is virtual to allow mocking. + + User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. + containing validation result. Never null. + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the tracked entity. + This property is virtual to allow mocking. + + The entity. + + + + Gets or sets the state of the entity. + + The state. + + + + Gets the current property values for the tracked entity represented by this object. + This property is virtual to allow mocking. + + The current values. + + + + Gets the original property values for the tracked entity represented by this object. + The original values are usually the entity's property values as they were when last queried from + the database. + This property is virtual to allow mocking. + + The original values. + + + + Checks whether or not this entry is associated with an underlying or + is just wrapping a non-attached entity. + + + + + Gets the type of the entity being tracked. + + The type of the entity. + + + + Gets the c-space entity type for this entity from the EDM. + + + + + Gets the underlying object state entry. + + + + + Gets the internal context. + + The internal context. + + + + A concrete implementation of used for properties of entities. + + + + + The internal class used to implement and + . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal entry. + The property info. + + + + Creates a delegate that will get the value of this property. + + The delegate. + + + + Creates a delegate that will set the value of this property. + + The delegate. + + + + Returns true if the property of the entity that this property is ultimately part + of is set as modified. If this is a property of an entity, then this method returns + true if the property is modified. If this is a property of a complex object, then + this method returns true if the top-level complex property on the entity is modified. + + True if the entity property is modified. + + + + Sets the property of the entity that this property is ultimately part of to modified. + If this is a property of an entity, then this method marks it as modified. + If this is a property of a complex object, then this method marks the top-level + complex property as modified. + + + + + Rejects changes to this property. + If this is a property of a complex object, then this method rejects changes to the top-level + complex property. + + + + + Walks the tree from a property of a complex property back up to the top-level + complex property and then checks whether or not DetectChanges still considers + the complex property to be modified. If it does not, then the complex property + is marked as Unchanged. + + + + + Throws if the user attempts to set a complex property to null. + + The value. + + + + Sets the given value directly onto the underlying entity object. + + The value. + True if the property had a setter that we could attempt to call; false if no setter was available. + + + + Sets the property value, potentially by setting individual nested values for a complex + property. + + The value. + + + + Gets an internal object representing a scalar or complex property of this property, + which must be a mapped complex property. + This method is virtual to allow mocking. + + The property. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Validates that the owning entity entry is associated with an underlying and + is not just wrapping a non-attached entity. + + + + + Creates a new non-generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The type of the entity. + The type of the property. + The new entry. + + + + Returns parent property, or null if this is a property on the top-level entity. + + + + + Gets the current values of the parent entity or complex property. + That is, the current values that contains the value for this property. + + The parent current values. + + + + Gets the original values of the parent entity or complex property. + That is, the original values that contains the value for this property. + + The parent original values. + + + + A delegate that reads the value of this property. + May be null if there is no way to set the value due to missing accessors on the type. + + + + + A delegate that sets the value of this property. + May be null if there is no way to set the value due to missing accessors on the type. + + + + + Gets or sets the original value. + Note that complex properties are returned as objects, not property values. + + + + + Gets or sets the current value. + Note that complex properties are returned as objects, not property values. + Also, for complex properties, the object returned is the actual complex object from the entity + and setting the complex object causes the actual object passed to be set onto the entity. + + The current value. + + + + Gets or sets a value indicating whether this property is modified. + + + + + Gets the property metadata. + + The property metadata. + + + + Initializes a new instance of the class. + + The internal entry. + The property info. + + + + Creates a delegate that will get the value of this property. + + The delegate. + + + + Creates a delegate that will set the value of this property. + + The delegate. + + + + Returns true if the property of the entity that this property is ultimately part + of is set as modified. Since this is a property of an entity this method returns + true if the property is modified. + + True if the entity property is modified. + + + + Sets the property of the entity that this property is ultimately part of to modified. + Since this is a property of an entity this method marks it as modified. + + + + + Rejects changes to this property. + + + + + Walks the tree from a property of a complex property back up to the top-level + complex property and then checks whether or not DetectChanges still considers + the complex property to be modified. If it does not, then the complex property + is marked as Unchanged. + + + + + Returns parent property, or null if this is a property on the top-level entity. + + + + + Gets the current values of the parent entity. + That is, the current values that contains the value for this property. + + The parent current values. + + + + Gets the original values of the parent entity. + That is, the original values that contains the value for this property. + + The parent original values. + + + + A concrete implementation of used for properties of complex objects. + + + + + Initializes a new instance of the class. + + The parent property entry. + The property metadata. + + + + Creates a delegate that will get the value of this property. + + The delegate. + + + + Creates a delegate that will set the value of this property. + + The delegate. + + + + Returns true if the property of the entity that this property is ultimately part + of is set as modified. Since this is a property of a complex object + this method returns true if the top-level complex property on the entity is modified. + + True if the entity property is modified. + + + + Sets the property of the entity that this property is ultimately part of to modified. + Since this is a property of a complex object this method marks the top-level + complex property as modified. + + + + + Rejects changes to this property. + Since this is a property of a complex object this method rejects changes to the top-level + complex property. + + + + + Walks the tree from a property of a complex property back up to the top-level + complex property and then checks whether or not DetectChanges still considers + the complex property to be modified. If it does not, then the complex property + is marked as Unchanged. + + + + + Returns parent property, or null if this is a property on the top-level entity. + + + + + Gets the current values of the parent complex property. + That is, the current values that contains the value for this property. + + The parent current values. + + + + Gets the original values of the parent complex property. + That is, the original values that contains the value for this property. + + The parent original values. + + + + The internal class used to implement , + and . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal entity entry. + The navigation metadata. + + + + Gets the navigation property value from the object. + For reference navigation properties, this means getting the value from the + object. + + The entity. + The navigation property value. + + + + Sets the navigation property value onto the object. + For reference navigation properties, this means setting the value onto the + object. + + The entity. + The value. + + + + Sets the given value on the given which must be an + . + This method is setup in such a way that it can easily be used by CreateDelegate without any + dynamic code generation needed. + + The type of the related entity. + The entity reference. + The value. + + + + Creates a new non-generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The type of the entity. + The type of the property. + The new entry. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references or the collection of references + for a collection property. + + The current value. + + + + Contains metadata about a member of an entity type or complex type. + + + + + Initializes a new instance of the class. + + The type that the property is declared on. + Type of the property. + The property name. + + + + Creates a new the runtime type of which will be + determined by the metadata. + + The entity entry to which the member belongs. + The parent property entry if the new entry is nested, otherwise null. + The new entry. + + + + Gets the type of the member for which this is metadata. + + The type of the member entry. + + + + Gets the name of the property. + + The name. + + + + Gets the type of the entity or complex object that on which the member is declared. + + The type that the member is declared on. + + + + Gets the type of element for the property, which for non-collection properties + is the same as the MemberType and which for collection properties is the type + of element contained in the collection. + + The type of the element. + + + + Gets the type of the member, which for collection properties is the type + of the collection rather than the type in the collection. + + The type of the member. + + + + The types of member entries supported. + + + + + Initializes a new instance of the class. + + The type that the property is declared on. + Type of the property. + The property name. + if set to true this is a collection nav prop. + + + + Creates a new the runtime type of which will be + determined by the metadata. + + The entity entry to which the member belongs. + The parent property entry which will always be null for navigation entries. + The new entry. + + + + Gets the type of the member for which this is metadata. + + The type of the member entry. + + + + Gets the type of the member, which for collection properties is the type + of the collection rather than the type in the collection. + + The type of the member. + + + + Contains metadata for a property of a complex object or entity. + + + + + Initializes a new instance of the class. + + The type that the property is declared on. + Type of the property. + The property name. + if set to true the property is mapped in the EDM. + if set to true the property is a complex property. + + + + Validates that the given name is a property of the declaring type (either on the CLR type or in the EDM) + and that it is a complex or scalar property rather than a nav property and then returns metadata about + the property. + + The internal context. + The type that the property is declared on. + The type of property requested, which may be 'object' if any type can be accepted. + Name of the property. + Metadata about the property, or null if the property does not exist or is a navigation property. + + + + Creates a new the runtime type of which will be + determined by the metadata. + + The entity entry to which the member belongs. + The parent property entry if the new entry is nested, otherwise null. + The new entry. + + + + Gets a value indicating whether this is a complex property. + That is, not whether or not this is a property on a complex object, but rather if the + property itself is a complex property. + + + true if this instance is complex; otherwise, false. + + + + + Gets the type of the member for which this is metadata. + + The type of the member entry. + + + + Gets a value indicating whether this instance is mapped in the EDM. + + true if this instance is mapped; otherwise, false. + + + + Gets the type of the member, which for collection properties is the type + of the collection rather than the type in the collection. + + The type of the member. + + + + An implementation of that wraps an existing set but makes + it read-only. + + + + + + Initializes a new instance of the class wrapped around + another existing set. + + The existing set. + + + + This is a temporary adapter class that wraps an and + presents it as an . This class will be removed once + we roll into the System.Data.Entity assembly. See + for more details. + + + + + Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. + + + + + Creates a new pair of the given EntitySet and BaseType. + + + + + The EntitySet part of the pair. + + + + + The BaseType part of the pair. + + + + + Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. + + + + + Creates a new pair of the given database initializer delegate and a flag + indicating whether or not it is locked. + + + + + The initializer delegate. + + + + + A flag indicating whether or not the initializer is locked and should not be changed. + + + + + Represents a raw SQL query against the context for any type where the results are never + associated with an entity set and are never tracked. + + + + + Represents a raw SQL query against the context that may be for entities in an entity set + or for some other non-entity element type. + + + + + Initializes a new instance of the class. + + The SQL. + The parameters. + + + + If the query is would track entities, then this method returns a new query that will + not track entities. + + A no-tracking query. + + + + Executes the query and returns an enumerator for the results. + + The query results. + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Gets the SQL query string, + + The SQL query. + + + + Gets the parameters. + + The parameters. + + + + Returns false. + + false. + + + + Initializes a new instance of the class. + + The internal context. + Type of the element. + The SQL. + The parameters. + + + + Returns this query since it can never be a tracking query. + + This instance. + + + + Executes the query and returns an enumerator for the results. + + The query results. + + + + Generic wrapper around to allow results to be + returned as generic + + The type of the element. + + + + Executes the query and returns an enumerator for the elements. + + An + + object that can be used to iterate through the elements. + + + + Executes the query and returns an enumerator for the elements. + + + An object that can be used to iterate through the elements. + + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Returns false. + + false. + + + + Represents a raw SQL query against the context for entities in an entity set. + + + + + Initializes a new instance of the class. + + The set. + The SQL. + if set to true then the entities will not be tracked. + The parameters. + + + + If the query is would track entities, then this method returns a new query that will + not track entities. + + A no-tracking query. + + + + Executes the query and returns an enumerator for the results. + + The query results. + + + + Gets a value indicating whether this instance is set to track entities or not. + + + true if this instance is no-tracking; otherwise, false. + + + + + A LazyInternalConnection object manages information that can be used to create a DbConnection object and + is responsible for creating that object and disposing it. + + + + + Creates a new LazyInternalConnection using convention to calculate the connection. + The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed. + + Either the database name or a connection string. + + + + Creates a new LazyInternalConnection targeting a specific database. + The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed. + + The connection to target. + + + + Creates an from metadata in the connection. This method must + only be called if ConnectionHasModel returns true. + + The newly created context. + + + + Disposes the underlying DbConnection. + Note that dispose actually puts the LazyInternalConnection back to its initial state such that + it can be used again. + + + + + + Searches the app.config/web.config file for a connection that matches the given name. + The connection might be a store connection or an EF connection. + + The connection name. + + True if a connection from the app.config file was found and used. + + + + Attempts to locate a connection entry in the configuration based on the supplied context name. + + The name to search for. + The configuration to search in. + Connection string if found, otherwise null. + + + + Initializes the connection based on a connection string. + + The settings to initialize from. + + + + Returns the underlying DbConnection, creating it first if it does not already exist. + + + + + Returns the origin of the underlying connection string. + + + + + Gets the name of the underlying connection string. + + + + + Returns a key consisting of the connection type and connection string. + If this is an EntityConnection then the metadata path is included in the key returned. + + + + + + + + + Gets a value indicating whether the connection is an EF connection which therefore contains + metadata specifying the model, or instead is a store connection, in which case it contains no + model info. + + true if connection contain model info; otherwise, false. + + + + Gets a value indicating if the lazy connection has been initialized. + + + + + A is a concrete type that will lazily create the + underlying when needed. The created is owned by the + internal context and will be disposed when the internal context is disposed. + + + + + Constructs a for the given owner that will be initialized + on first use. + + The owner . + Responsible for creating a connection lazily when the context is used for the first time. + The model, or null if it will be created by convention + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Saves all changes made in this context to the underlying database, but only if the + context has been initialized. If the context has not been initialized, then this + method does nothing because there is nothing to do; in particular, it does not + cause the context to be initialized. + + The number of objects written to the underlying database. + + + + Disposes the context. The underlying is also disposed. + The connection to the database ( object) is also disposed if it was created by + the context, otherwise it is not disposed. + + + + + + + + Initializes the underlying . + + + + + Creates an immutable, cacheable representation of the model defined by this builder. + This model can be used to create an or can be passed to a + constructor to create a for this model. + + + + + + Creates and configures the instance that will be used to build the + . + + The builder. + + + + Marks the database as having not been initialized. This is called when the app calls Database.Delete so + that the database if the app attempts to then use the database again it will be re-initialized automatically. + + + + + Marks the database as having been initialized without actually running the . + + + + + Runs the unless it has already been run or there + is no initializer for this context type in which case this method does nothing. + + + + + Performs some action (which may do nothing) in such a way that it is guaranteed only to be run + once for the model and connection in this app domain, unless it fails by throwing an exception, + in which case it will be re-tried next time the context is initialized. + + The action. + + + + Returns the underlying . + + + + + The compiled model created from the Code First pipeline, or null if Code First was + not used to create this context. + Causes the Code First pipeline to be run to create the model if it has not already been + created. + + + + + The actually being used, which may be the + temp context for initialization or the real context. + + + + + The connection underlying this context. Accessing this property does not cause the context + to be initialized, only its connection. + + + + + The connection string as originally applied to the context. This is used to perform operations + that need the connection string in a non-mutated form, such as with security info still intact. + + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries + and connection strings. + + + + + Gets the name of the underlying connection string. + + + + + Gets or sets the provider details to be used when building the EDM model. + + + + + + + + Gets or sets a custom OnModelCreating action. + + + + + Gets the default database initializer to use for this context if no other has been registered. + For code first this property returns a instance. + For database/model first, this property returns null. + + The default initializer. + + + + Gets or sets a value indicating whether lazy loading is enabled. + If the exists, then this property acts as a wrapper over the flag stored there. + If the has not been created yet, then we store the value given so we can later + use it when we create the . This allows the flag to be changed, for example in + a DbContext constructor, without it causing the to be created. + + + + + Gets or sets a value indicating whether proxy creation is enabled. + If the ObjectContext exists, then this property acts as a wrapper over the flag stored there. + If the ObjectContext has not been created yet, then we store the value given so we can later + use it when we create the ObjectContext. This allows the flag to be changed, for example in + a DbContext constructor, without it causing the ObjectContext to be created. + + + + + A wrapping query provider that performs expression transformation and then delegates + to the provider. The objects returned are always instances + of . This provider is associated with generic objects. + + + + + Creates a provider that wraps the given provider. + + The provider to wrap. + + + + Performs expression replacement and then delegates to the wrapped provider before wrapping + the returned as a . + + + + + Performs expression replacement and then delegates to the wrapped provider before wrapping + the returned as a where T is determined + from the element type of the ObjectQuery. + + + + + By default, calls the same method on the wrapped provider. + + + + + By default, calls the same method on the wrapped provider. + + + + + Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of + the given ObjectQuery. + + + + + Performs expression replacement and then delegates to the wrapped provider to create an + . + + + + + Wraps the given as a where T is determined + from the element type of the ObjectQuery. + + + + + Gets the internal context. + + The internal context. + + + + A LINQ expression visitor that finds uses with equivalent + instances. + + + + + Replaces calls to DbContext.Set() with an expression for the equivalent . + + The node to replace. + A new node, which may have had the replacement made. + + + + Replaces a or property with a constant expression + for the underlying . + + The node to replace. + A new node, which may have had the replacement made. + + + + Processes the fields in each constant expression and replaces instances with + the underlying ObjectQuery instance. This handles cases where the query has a closure + containing values. + + + + + Gets a value from the given member, or returns null + if the member doesn't contain a DbContext instance. + + The expression for the object for the member, which may be null for a static member. + The member. + The context or null. + + + + Gets the instance from the given instance or static member, returning null + if the member does not contain a DbContext instance. + + The member. + The value of the object to get the instance from, or null if the member is static. + The context instance or null. + + + + Takes a or and creates an expression + for the underlying . + + + + + Takes a or and extracts the underlying . + + + + + A non-generic interface implemented by that allows operations on + any query object without knowing the type to which it applies. + + + + + An interface implemented by . + + The type of the element. + + + + A non-generic interface implemented by that allows operations on + any set object without knowing the type to which it applies. + + + + + An interface implemented by . + + + + + An instance of this internal class is created whenever an instance of the public + class is needed. This allows the public surface to be non-generic, while the runtime type created + still implements . + + The type of the element. + + + + Creates a new query that will be backed by the given internal query object. + + The backing query. + + + + See comments in . + + + + + See comments in . + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the underlying internal query object. + + The internal query. + + + + An instance of this internal class is created whenever an instance of the public + class is needed. This allows the public surface to be non-generic, while the runtime type created + still implements . + + The type of the entity. + + + + Creates a new set that will be backed by the given internal set. + + The internal set. + + + + Creates an instance of this class. This method is used with CreateDelegate to cache a delegate + that can create a generic instance without calling MakeGenericType every time. + + + The internal set to wrap, or null if a new internal set should be created. + The set. + + + + See comments in . + + + + + See comments in . + + + + + See comments in . + + + + + See comments in . + + + + + See comments in . + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the underlying internal query object. + + The internal query. + + + + Gets the underlying internal set. + + The internal set. + + + + See comments in . + + + + + An InternalQuery underlies every instance of DbSet and DbQuery. It acts to lazily initialize a InternalContext as well + as an ObjectQuery and EntitySet the first time that it is used. The InternalQuery also acts to expose necessary + information to other parts of the design in a controlled manner without adding a lot of internal methods and + properties to the DbSet and DbQuery classes themselves. + + The type of entity to query for. + + + + Creates a new query that will be backed by the given InternalContext. + + The backing context. + + + + Creates a new internal query based on the information in an existing query together with + a new underlying ObjectQuery. + + + + + Resets the query to its uninitialized state so that it will be re-lazy initialized the next + time it is used. This allows the ObjectContext backing a DbContext to be switched out. + + + + + Updates the underlying ObjectQuery with the given include path. + + The include path. + A new query containing the defined include path. + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects + so that the query can be used. + + + + + Returns a representation of the underlying query, equivalent + to ToTraceString on ObjectQuery. + + + The query string. + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + The underlying InternalContext. + + + + + The underlying ObjectQuery. + + + + + The underlying ObjectQuery. + + + + + The LINQ query expression. + + + + + The LINQ query provider for the underlying . + + + + + The IQueryable element type. + + + + + Creates a new query that will be backed by the given InternalContext. + + The backing context. + + + + Resets the set to its uninitialized state so that it will be re-lazy initialized the next + time it is used. This allows the ObjectContext backing a DbContext to be switched out. + + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + Thrown if multiple entities exist in the context with the primary key values given. + Thrown if the type of entity is not part of the data model for this context. + Thrown if the types of the key values do not match the types of the key values for the entity type to be found. + Thrown if the context has been disposed. + + + + Finds an entity in the state manager with the given primary key values, or returns null + if no such entity can be found. This includes looking for Added entities with the given + key values. + + + + + Finds an entity in the store with the given primary key values, or returns null + if no such entity can be found. This code is adapted from TryGetObjectByKey to + include type checking in the query. + + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + This method is virtual so that it can be mocked. + + The entity to attach. + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + This method is virtual so that it can be mocked. + + The entity to add. + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + This method is virtual so that it can be mocked. + + The entity to remove. + + + + This method checks whether an entity is already in the context. If it is, then the state + is changed to the new state given. If it isn't, then the action delegate is executed to + either Add or Attach the entity. + + A delegate to Add or Attach the entity. + The new state to give the entity if it is already in the context. + The entity. + Name of the method. + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The type of entity to create. + The entity instance, which may be a proxy. + + + + Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects + so that the query can be used. + This method is virtual so that it can be mocked. + + + + + Attempts to perform lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects + so that o-space loading has happened and the query can be used. This method doesn't throw if the type + for the set is not mapped. + + + + + Creates an underlying for this set. + + if set to true then the query is set to be no-tracking. + The query. + + + + Returns a representation of the underlying query, equivalent + to ToTraceString on ObjectQuery. + + + The query string. + + + + + Updates the underlying ObjectQuery with the given include path. + + The include path. + A new query containing the defined include path. + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Executes the given SQL query against the database materializing entities into the entity set that + backs this set. + + The SQL quey. + if true then the entities are not tracked, otherwise they are. + The parameters. + The query results. + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the ObservableCollection representing the local view for the set based on this query. + + + + + The underlying ObjectQuery. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying EntitySet name. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying EntitySet name, quoted for ESQL. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying EntitySet. Accessing this property will trigger lazy initialization of the query. + + + + + The base type for the underlying entity set. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying InternalContext. Accessing this property will trigger lazy initialization of the query. + + + + + The LINQ query expression. + + + + + The LINQ query provider for the underlying . + + + + + A wrapping query provider that performs expression transformation and then delegates + to the provider. The objects returned + are always instances of when the generic CreateQuery method is + used and are instances of when the non-generic CreateQuery method + is used. This provider is associated with non-generic objects. + + + + + Creates a provider that wraps the given provider. + + The provider to wrap. + + + + Performs expression replacement and then delegates to the wrapped provider before wrapping + the returned as a . + + + + + Delegates to the wrapped provider except returns instances of . + + + + + Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of + the given ObjectQuery. + + + + + Extends to create a sortable binding list that stays in + sync with an underlying . That is, when items are added + or removed from the binding list, they are added or removed from the ObservableCollecion, and + vice-versa. + + The list element type. + + + + An extended BindingList implementation that implements sorting. + This class was adapted from the LINQ to SQL class of the same name. + + The element type. + + + + Initializes a new instance of the class with the + the given underlying list. Note that sorting is dependent on having an actual + rather than some other ICollection implementation. + + The list. + + + + Applies sorting to the list. + + The property to sort by. + The sort direction. + + + + Stops sorting. + + + + + Gets a value indicating whether this list is sorted. + + + true if this instance is sorted; otherwise, false. + + + + + Gets the sort direction. + + The sort direction. + + + + Gets the sort property being used to sort. + + The sort property. + + + + Returns true indicating that this list supports sorting. + + true. + + + + Implements comparing for the implementation. + + + + + Initializes a new instance of the class + for sorting the list. + + The property to sort by. + The sort direction. + + + + Compares two instances of items in the list. + + The left item to compare. + The right item to compare. + + + + + Determines whether this instance can sort for the specified type. + + The type. + + true if this instance can sort for the specified type; otherwise, false. + + + + + Determines whether this instance can sort for the specified type using IComparable. + + The type. + + true if this instance can sort for the specified type; otherwise, false. + + + + + Determines whether this instance can sort for the specified type using ToString. + + The type. + + true if this instance can sort for the specified type; otherwise, false. + + + + + Initializes a new instance of a binding list backed by the given + + The obervable collection. + + + + Creates a new item to be added to the binding list. + + The new item. + + + + Cancels adding of a new item that was started with AddNew. + + Index of the item. + + + + Removes all items from the binding list and underlying ObservableCollection. + + + + + Ends the process of adding a new item that was started with AddNew. + + Index of the item. + + + + Inserts the item into the binding list at the given index. + + The index. + The item. + + + + Removes the item at the specified index. + + The index. + + + + Sets the item into the list at the given position. + + The index to insert at. + The item. + + + + Event handler to update the binding list when the underlying observable collection changes. + + The sender. + Data indicating how the collection has changed. + + + + Adds the item to the underlying observable collection. + + The item. + + + + Removes the item from the underlying from observable collection. + + The item. + + + + Adapted from to allow the initializer to take an input object and + to do one-time initialization that only has side-effects and doesn't return a value. + + The type of the input. + + + + Initializes a new instance of the class. + + The action. + + + + Performs the action unless it has already been successfully performed before. + + The input to the action; ignored if the action has already succeeded. + + + + Adapted from to allow the initializer to take an input object and + to retry initialization if it has previously failed. + + + This class can only be used to initialize reference types that will not be null when + initialized. + + The type of the input. + The type of the result. + + + + Initializes a new instance of the class. + + The value factory. + + + + Gets the value, possibly by running the initializer if it has not been run before or + if all previous times it ran resulted in exceptions. + + The input to the initializer; ignored if initialization has already succeeded. + The initialized object. + + + + Validates a property of a given EDM complex type. + + + This is a composite validator for a complex property of an entity. + + + + + Validates a property of a given EDM property type. + + + This is a composite validator for a property of an entity or a complex type. + + + + + Simple validators for the corresponding property. + + + + + Name of the property the validator was created for. + + + + + Creates an instance of for a given EDM property. + + The EDM property name. + Validators used to validate the given property. + + + + Validates a property. + + Validation context. Never null. + Property to validate. Never null. + Validation errors as . Empty if no errors. Never null. + + + + + Simple validators for the corresponding property. + + + + + Gets the name of the property the validator was created for. + + + + + The complex type validator. + + + + + Creates an instance of for a given complex property. + + The complex property name. + Validators used to validate the given property. + Complex type validator. + + + + Validates a complex property. + + Validation context. Never null. + Property to validate. Never null. + Validation errors as . Empty if no errors. Never null. + + + + + Validator used to validate a property of a given EDM ComplexType. + + + This is a composite validator. + + + + + Validator used to validate an entity of a given EDM Type. + + + This is a composite validator for an EDM Type. + + + + + Creates an instance for a given EDM type. + + Property validators. + Type level validators. + + + + Validates an instance. + + Entity validation context. Must not be null. + The entry for the complex property. Null if validating an entity. + instance. Never null. + + Protected so it doesn't appear on EntityValidator. + + + + + Validates type properties. Any validation errors will be added to + collection. + + + Validation context. Must not be null. + + + Collection of validation errors. Any validation errors will be added to it. + + The entry for the complex property. Null if validating an entity. + + Note that will be modified by this method. Errors should be only added, + never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations + and a merge of validation error lists per entity. + + + + + Returns a validator for a child property. + + Name of the child property for which to return a validator. + + Validator for a child property. Possibly null if there are no validators for requested property. + + + + + Creates an instance for a given EDM complex type. + + Property validators. + Type level validators. + + + + Validates an instance. + + Entity validation context. Must not be null. + The entry for the complex property. Null if validating an entity. + instance. Never null. + + + + Validates type properties. Any validation errors will be added to + collection. + + + Validation context. Must not be null. + + + Collection of validation errors. Any validation errors will be added to it. + + The entry for the complex property. Null if validating an entity. + + Note that will be modified by this method. Errors should be only added, + never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations + and a merge of validation error lists per entity. + + + + + Contains information needed to validate an entity or its properties. + + + + + The entity being validated or the entity that owns the property being validated. + + + + + Initializes a new instance of EntityValidationContext class. + + + The entity being validated or the entity that owns the property being validated. + + + External contexts needed for validation. + + + + + External context needed for validation. + + + + + Gets the entity being validated or the entity that owns the property being validated. + + + + + Validator used to validate an entity of a given EDM EntityType. + + + This is a top level, composite validator. This is also an entry point to getting an entity + validated as validation of an entity is always started by calling Validate method on this type. + + + + + Creates an instance for a given EDM entity type. + + Property validators. + Entity type level validators. + + + + Validates an entity. + + Entity validation context. Must not be null. + instance. Never null. + + + + Validates type properties. Any validation errors will be added to + collection. + + + Validation context. Must not be null. + + + Collection of validation errors. Any validation errors will be added to it. + + The entry for the complex property. Null if validating an entity. + + Note that will be modified by this method. Errors should be only added, + never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations + and a merge of validation error lists per entity. + + + + + Builds validators based on s specified on entity CLR types and properties + as well as based on presence of implementation on entity and complex + type CLR types. It's not sealed and not static for mocking purposes. + + + + + Builds an for the given . + + The entity entry to build the validator for. + Whether the currently processed type is the target type or one of the ancestor types. + + + for the given . Possibly null + if no validation has been specified for this entity type. + + + + + Builds the validator for a given and the corresponding + . + + The CLR type that corresponds to the EDM complex type. + The EDM complex type that type level validation is built for. + A for the given complex type. May be null if no validation specified. + + + + Extracted method from BuildEntityValidator and BuildComplexTypeValidator + + + + + Build validators for the and the corresponding + or . + + Properties to build validators for. + Non-navigation EDM properties. + Navigation EDM properties. + A list of validators. Possibly empty, never null. + + + + Builds a for the given and the corresponding + . If the property is a complex type, type level validators will be built here as + well. + + The CLR property to build the validator for. + The EDM property to build the validator for. + + for the given . Possibly null + if no validation has been specified for this property. + + + + + Builds a for the given transient . + + The CLR property to build the validator for. + + for the given . Possibly null + if no validation has been specified for this property. + + + + + Builds s for given that derive from + . + + Attributes used to build validators. + + A list of s built from . + Possibly empty, never null. + + + + + Returns all non-static non-indexed CLR properties from the . + + The CLR to get the properties from. + + A collection of CLR properties. Possibly empty, never null. + + + + + Builds validators based on the facets of : + * If .Nullable facet set to false adds a validator equivalent to the RequiredAttribute + * If the .MaxLength facet is specified adds a validator equivalent to the MaxLengthAttribute. + However the validator isn't added if .IsMaxLength has been set to true. + + The CLR property to build the facet validators for. + The property for which facet validators will be created + A collection of validators. + + + + Abstracts simple validators used to validate entities and properties. + + + + + Validates an entity or a property. + + Validation context. Never null. + Property to validate. Can be null for type level validation. + Validation error as. Empty if no errors. Never null. + + + + + Contract for IValidator.Validate method. + + Validation context. + Property. + Nothing - always throws. + + + + Validates entities or complex types implementing IValidatableObject interface. + + + + + Display attribute used to specify the display name for an entity or complex property. + + + + + Validates an entity or a complex type implementing IValidatableObject interface. + This method is virtual to allow mocking. + + Validation context. Never null. + + Property to validate. Null if this is the entity that will be validated. Never null if this + is the complex type that will be validated. + + Validation error as . Empty if no errors. Never null. + + + Note that is used to figure out what needs to be validated. If it not null the complex + type will be validated otherwise the entity will be validated. + Also if this is an IValidatableObject complex type but the instance (.CurrentValue) is null we won't validate + anything and will not return any errors. The reason for this is that Validation is supposed to validate using + information the user provided and not some additional implicit rules. (ObjectContext will throw for operations + that involve null complex properties). + + + + + Validates a property, complex property or an entity using validation attributes the property + or the complex/entity type is decorated with. + + + Note that this class is used for validating primitive properties using attributes declared on the property + (property level validation) and complex properties and entities using attributes declared on the type + (type level validation). + + + + + Display attribute used to specify the display name for a property or entity. + + + + + Validation attribute used to validate a property or an entity. + + + + + Creates an instance of class. + + + Validation attribute used to validate a property or an entity. + + + + + Validates a property or an entity. + + Validation context. Never null. + Property to validate. Null for entity validation. Not null for property validation. + + + Validation errors as . Empty if no errors, never null. + + + + + Used to cache and retrieve generated validators and to create context for validating entities or properties. + + + + + Collection of validators keyed by the entity CLR type. Note that if there's no validation for a given type + it will be associated with a null validator. + + + + + Initializes a new instance of class. + + + + + Returns a validator to validate . + + Entity the validator is requested for. + + to validate . Possibly null if no validation + has been specified for the entity. + + + + + Returns a validator to validate . + + Navigation property the validator is requested for. + + Validator to validate . Possibly null if no validation + has been specified for the requested property. + + + + + Gets a validator for the . + + Entity validator. + Property to get a validator for. + + Validator to validate . Possibly null if there is no validation for the + . + + + For complex properties this method walks up the type hierarchy to get to the entity level and then goes down + and gets a validator for the child property that is an ancestor of the property to validate. If a validator + returned for an ancestor is null it means that there is no validation defined beneath and the method just + propagates (and eventually returns) null. + + + + + Creates for . + + Entity entry for which a validation context needs to be created. + User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. + An instance of class. + + + + + A wrapper around EntityKey that allows key/values pairs that have null values to + be used. This allows Added entities with null key values to be searched for in + the ObjectStateManager. + + + + The key name/key value pairs, where some key values may be null + + + + Creates a new WrappedEntityKey instance. + + The entity set that the key belongs to. + The fully qualified name of the given entity set. + The key values, which may be null or contain null values. + The name of the parameter passed for keyValue by the user, which is used when throwing exceptions. + + + + True if any of the key values are null, which means that the EntityKey will also be null. + + + + + An actual EntityKey, or null if any of the key values are null. + + + + + The key name/key value pairs of the key, in which some of the key values may be null. + + + + + Allows configuration to be performed for an complex type in a model. + + A ComplexTypeConfiguration can be obtained via the ComplexType method on + or a custom type derived from ComplexTypeConfiguration + can be registered via the Configurations property on . + + The complex type to be configured. + + + + Allows configuration to be performed for a type in a model. + + The type to be configured. + + + + Configures a property that is defined on this type. + + The type of the property being configured. + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + The type of the property being configured. + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Excludes a property from the model so that it will not be mapped to the database. + + The type of the property to be ignored. + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + + + + Initializes a new instance of ComplexTypeConfiguration + + + + + Allows derived configuration classes for entities and complex types to be registered with a . + + + Derived configuration classes are created by deriving from + or and using a type to be included in the model as the generic + parameter. + + Configuration can be performed without creating derived configuration classes via the Entity and ComplexType + methods on . + + + + + Adds an to the . + Only one can be added for each type in a model. + + The entity type being configured. + The entity type configuration to be added. + The same ConfigurationRegistrar instance so that multiple calls can be chained. + + + + Adds an to the . + Only one can be added for each type in a model. + + The complex type being configured. + The complex type configuration to be added + The same ConfigurationRegistrar instance so that multiple calls can be chained. + + + + Allows the conventions used by a instance to be customized. + Currently removal of one or more default conventions is the only supported operation. + The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. + + + + + Disables a convention for the . + The default conventions that are available for removal can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. + + The type of the convention to be disabled. + + + + Configures the table and column mapping for an entity type or a sub-set of properties from an entity type. + This configuration functionality is available via the Code First Fluent API, see . + + The entity type to be mapped. + + + + Configures the properties that will be included in this mapping fragment. + If this method is not called then all properties that have not yet been + included in a mapping fragment will be configured. + + An anonymous type including the properties to be mapped. + + A lambda expression to an anonymous type that contains the properties to be mapped. + C#: t => new { t.Id, t.Property1, t.Property2 } + VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } + + + + + Re-maps all properties inherited from base types. + + When configuring a derived type to be mapped to a separate table this will cause all properties to + be included in the table rather than just the non-inherited properties. This is known as + Table per Concrete Type (TPC) mapping. + + + + + Configures the table name to be mapped to. + + Name of the table. + + + + Configures the table name and schema to be mapped to. + + Name of the table. + Schema of the table. + + + + Configures the discriminator column used to differentiate between types in an inheritance hierarchy. + + The name of the discriminator column. + A configuration object to further configure the discriminator column and values. + + + + Configures the discriminator condition used to differentiate between types in an inheritance hierarchy. + + The type of the property being used to discriminate between types. + + A lambda expression representing the property being used to discriminate between types. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object to further configure the discriminator condition. + + + + Moves a foreign key constraint from oldTable to newTable and updates column references + + + + + Move any FK constraints that are now completely in newTable and used to refer to oldColumn + + + + + Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the condition to require a value in the property. + + Rows that do not have a value assigned to column that this property is stored in are + assumed to be of the base type of this entity type. + + + + + Populate the table mapping structure + + + + + Sets nullability for association set mappings' foreign keys for 1:* and 1:0..1 associations + when no base types share the the association set mapping's table + + + + + Makes sure only the required property mappings are present + + + + + Determines if the table and entity type need mapping, and if not, removes the existing entity type mapping + + + + + Configures a database column used to store a string values. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the column to allow the maximum length supported by the database provider. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + + Configures the column to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to be variable length. + Columns are variable length by default. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to be optional. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to be required. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column. + + Name of the database provider specific data type. + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column. + + The order that this column should appear in the database table. + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to support Unicode string content. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the column supports Unicode string content. + + + Value indicating if the column supports Unicode string content or not. + Specifying 'null' will remove the Unicode facet from the column. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures a discriminator column used to differentiate between types in an inheritance hierarchy. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the discriminator value used to identify the entity type being + configured from other types in the inheritance hierarchy. + + Type of the discriminator value. + The value to be used to identify the entity type. + A configuration object to configure the column used to store discriminator values. + + + + Configures the discriminator value used to identify the entity type being + configured from other types in the inheritance hierarchy. + + Type of the discriminator value. + The value to be used to identify the entity type. + A configuration object to configure the column used to store discriminator values. + + + + Configures the discriminator value used to identify the entity type being + configured from other types in the inheritance hierarchy. + + The value to be used to identify the entity type. + A configuration object to configure the column used to store discriminator values. + + + + Initializes configurations in the ModelConfiguration so that configuration data + is in a single place + + + + + Configures a many relationship from an entity type. + + The entity type that the relationship originates from. + The entity type that the relationship targets. + + + + Configures the relationship to be many:many with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:many without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:required with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:required without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:optional with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:optional without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures an optional relationship from an entity type. + + The entity type that the relationship originates from. + The entity type that the relationship targets. + + + + Configures the relationship to be optional:many with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:many without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:required with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:required without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + + A lambda expression representing the navigation property on the other end of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + A configuration object that can be used to further configure the relationship. + + + + Configures an required relationship from an entity type. + + The entity type that the relationship originates from. + The entity type that the relationship targets. + + + + Configures the relationship to be required:many with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:many without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:optional with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:optional without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required with a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required without a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required with a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required without a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + A configuration object that can be used to further configure the relationship. + + + + Base class for configuring a property on an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + True if the NavigationProperty's declaring type is the principal end, false if it is not, null if it is not known + + + + + Base class for performing configuration of a relationship. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures a relationship that can support cascade on delete functionality. + + + + + Configures cascade delete to be on for the relationship. + + + + + Configures whether or not cascade delete is on for the relationship. + + Value indicating if cascade delete is on or not. + + + + Configures a relationship that can support foreign key properties that are exposed in the object model. + This configuration functionality is available via the Code First Fluent API, see . + + The dependent entity type. + + + + Configures a relationship that can only support foreign key properties that are not exposed in the object model. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the relationship to use foreign key property(s) that are not exposed in the object model. + The column(s) and table can be customized by specifying a configuration action. + If an empty configuration action is specified then column name(s) will be generated by convention. + If foreign key properties are exposed in the object model then use the HasForeignKey method. + Not all relationships support exposing foreign key properties in the object model. + + Action that configures the foreign key column(s) and table. + + A configuration object that can be used to further configure the relationship. + + + + + Configures the relationship to use foreign key property(s) that are exposed in the object model. + If the foreign key property(s) are not exposed in the object model then use the Map method. + + The type of the key. + + A lambda expression representing the property to be used as the foreign key. + If the foreign key is made up of multiple properties then specify an anonymous type including the properties. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the principal entity type. + + A configuration object that can be used to further configure the relationship. + + + + Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the name of the column(s) for the foreign key. + + + The foreign key column names. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the target entity type. + + The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the table name that the foreign key column(s) reside in. + The table that is specified must already be mapped for the entity type. + + If you want the foreign key(s) to reside in their own table then use the Map method + on to perform + entity splitting to create the table with just the primary key property. Foreign keys can + then be added to the table via this method. + + Name of the table. + The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the table name and schema that the foreign key column(s) reside in. + The table that is specified must already be mapped for the entity type. + + If you want the foreign key(s) to reside in their own table then use the Map method + on to perform + entity splitting to create the table with just the primary key property. Foreign keys can + then be added to the table via this method. + + Name of the table. + Schema of the table. + The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the table and column mapping of a many:many relationship. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the join table name for the relationship. + + Name of the table. + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the join table name and schema for the relationship. + + Name of the table. + Schema of the table. + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the column(s) for the left foreign key. + The left foreign key represents the navigation property specified in the HasMany call. + + + The foreign key column names. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the target entity type. + + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the column(s) for the right foreign key. + The right foreign key represents the navigation property specified in the WithMany call. + + + The foreign key column names. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the target entity type. + + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures a many:many relationship. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the foreign key column(s) and table used to store the relationship. + + Action that configures the foreign key column(s) and table. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Used to configure a property with length facets for an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Used to configure a primitive property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to allow the maximum length supported by the database provider. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to have the specified maximum length. + + + The maximum length for the property. + Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be variable length. + Properties are variable length by default. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to allow the maximum length supported by the database provider. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to have the specified maximum length. + + + The maximum length for the property. + Setting 'null' will remove any maximum length restriction from the property. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be variable length. + properties are variable length by default. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + properties are optional by default. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be a row version in the database. + The actual data type will vary depending on the database provider being used. + Setting the property to be a row version will automatically configure it to be an + optimistic concurrency token. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + properties are required by default. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the precision of the property. + If the database provider does not support precision for the data type of the column then the value is ignored. + + Precision of the property. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + properties are required by default. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the precision and scale of the property. + + The precision of the property. + The scale of the property. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to allow the maximum length supported by the database provider. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to have the specified maximum length. + + + The maximum length for the property. + Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be variable length. + properties are variable length by default. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + properties are optional by default. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to support Unicode string content. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property supports Unicode string content. + + + Value indicating if the property supports Unicode string content or not. + Specifying 'null' will remove the Unicode facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Indicates what parts of a configuration are overridable. + + + + + Nothing in the configuration is overridable. + + + + + The configuration values related to C-Space are overridable. + + + + + The configuration values only related to S-Space are overridable. + + + + + True if this configuration can be replaced in the model configuration, false otherwise + This is only set to true for configurations that are registered automatically via the DbContext + + + + + Base class for conventions that process CLR attributes found in the model. + + The type of member to look for. + The type of the configuration to look for. + The type of the attribute to look for. + + + + Convention to process instances of found on properties in the model + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on foreign key properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on navigation properties in the model. + + + + + Convention to process instances of found on primitive properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on types in the model. + + + + + Convention to process instances of found on types in the model. + + + + + Convention to process instances of found on types in the model. + + + + + Convention to detect navigation properties to be inverses of each other when only one pair + of navigation properties exists between the related types. + + + + + Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties. + + + + + Convention to convert any data types that were explicitly specified, via data annotations or API, + to be lower case. The default SqlClient provider is case sensitive and requires data types to be lower case. This convention + allows the and API to be case insensitive. + + + + + Convention to add a cascade delete to the join table from both tables involved in a many to many relationship. + + + + + Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties + + + + + Convention to set the table name to be a pluralized version of the entity type name. + + + + + Convention to set precision to 18 and scale to 2 for decimal properties. + + + + + Convention to move primary key properties to appear first. + + + + + Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property. + + + + + Convention to process instances of found on navigation properties in the model. + + + + + Convention to detect primary key properties. + Recognized naming patterns in order of precedence are: + 1. 'Id' + 2. [type name]Id + Primary key detection is case insensitive. + + + + + Convention to discover foreign key properties whose names are a combination + of the dependent navigation property name and the principal type primary key property name(s). + + + + + Convention to enable cascade delete for any required relationships. + + + + + Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship. + + + + + Convention to set the entity set name to be a pluralized version of the entity type name. + + + + + Convention to discover foreign key properties whose names match the principal type primary key property name(s). + + + + + Convention to set a default maximum length of 128 for properties whose type supports length facets. + + + + + Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider. + + + + + Convention to configure integer primary keys to be identity. + + + + + Checks for the PK property being an FK in a different table. A PK which is also an FK but + in the same table is used for table splitting and can still be an identity column because + the update pipeline is only inserting into one column of one table. + + + + + Convention to discover foreign key properties whose names are a combination + of the principal type name and the principal type primary key property name(s). + + + + + This class provide service for both the singularization and pluralization, it takes the word pairs + in the ctor following the rules that the first one is singular and the second one is plural. + + + + + Factory method for PluralizationService. Only support english pluralization. + Please set the PluralizationService on the System.Data.Entity.Design.EntityModelSchemaGenerator + to extend the service to other locales. + + CultureInfo + PluralizationService + + + + captalize the return word if the parameter is capitalized + if word is "Table", then return "Tables" + + + + + + + + separate one combine word in to two parts, prefix word and the last word(suffix word) + + + + + + + + return true when the word is "[\s]*" or leading or tailing with spaces + or contains non alphabetical characters + + + + + + + This method allow you to add word to internal PluralizationService of English. + If the singluar or the plural value was already added by this method, then an ArgumentException will be thrown. + + + + + + + Attempt to determine the principal and dependent ends of this association. + + The following table illustrates the solution space. + + Source | Target || Prin | Dep | + -------|--------||-------|-------| + 1 | 1 || - | - | + 1 | 0..1 || Sr | Ta | + 1 | * || Sr | Ta | + 0..1 | 1 || Ta | Sr | + 0..1 | 0..1 || - | - | + 0..1 | * || Sr | Ta | + * | 1 || Ta | Sr | + * | 0..1 || Ta | Sr | + * | * || - | - | + + + + + Allows configuration to be performed for an entity type in a model. + + An EntityTypeConfiguration can be obtained via the Entity method on + or a custom type derived from EntityTypeConfiguration + can be registered via the Configurations property on . + + + + + Initializes a new instance of EntityTypeConfiguration + + + + + Configures the primary key property(s) for this entity type. + + The type of the key. + + A lambda expression representing the property to be used as the primary key. + C#: t => t.Id + VB.Net: Function(t) t.Id + + If the primary key is made up of multiple properties then specify an anonymous type including the properties. + C#: t => new { t.Id1, t.Id2 } + VB.Net: Function(t) New With { t.Id1, t.Id2 } + + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Configures the entity set name to be used for this entity type. + The entity set name can only be configured for the base type in each set. + + The name of the entity set. + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Configures the table name that this entity type is mapped to. + + The name of the table. + + + + Configures the table name that this entity type is mapped to. + + The name of the table. + The database schema of the table. + + + + Allows advanced configuration related to how this entity type is mapped to the database schema. + By default, any configuration will also apply to any type derived from this entity type. + + Derived types can be configured via the overload of Map that configures a derived type or + by using an EntityTypeConfiguration for the derived type. + + The properties of an entity can be split between multiple tables using multiple Map calls. + + Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. + + An action that performs configuration against an . + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Allows advanced configuration related to how a derived entity type is mapped to the database schema. + Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. + + The derived entity type to be configured. + An action that performs configuration against an . + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Configures an optional relationship from this entity type. + Instances of the entity type will be able to be saved to the database without this relationship being specified. + The foreign key in the database will be nullable. + + The type of the entity at the other end of the relationship. + + A lambda expression representing the navigation property for the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures a required relationship from this entity type. + Instances of the entity type will not be able to be saved to the database unless this relationship is specified. + The foreign key in the database will be non-nullable. + + The type of the entity at the other end of the relationship. + + A lambda expression representing the navigation property for the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures a many relationship from this entity type. + + The type of the entity at the other end of the relationship. + + A lambda expression representing the navigation property for the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Handles mapping from a CLR property to an EDM assocation and nav. prop. + + + + + Exception thrown by during model creation when an invalid model is generated. + + + + + Initializes a new instance of ModelValidationException + + + + + Initializes a new instance of ModelValidationException + + The exception message. + + + + Initializes a new instance of ModelValidationException + + The exception message. + The inner exception. + + + + Code Contracts hook methods - Called when contracts fail. Here we detect the most common preconditions + so we can throw the correct exceptions. It also means that we can write preconditions using the + simplest Contract.Requires() form. + + + + + Returns true if a variable of this type can be assigned a null value + + + + True if a reference type or a nullable value type, + false otherwise + + + + + Exception thrown from when validating entities fails. + + + + + Initializes a new instance of DbEntityValidationException + + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + Validation results. + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + The inner exception. + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + Validation results. + The inner exception. + + + + Subscribes the SerializeObjectState event. + + + + + Validation results. + + + + + Holds exception state that will be serialized when the exception is serialized. + + + + + Validation results. + + + + + Completes the deserialization. + + The deserialized object. + + + + Validation results. + + + + + Represents validation results for single entity. + + + + + Entity entry the results applies to. Never null. + + + + + List of instances. Never null. Can be empty meaning the entity is valid. + + + + + Creates an instance of class. + + + Entity entry the results applies to. Never null. + + + List of instances. Never null. Can be empty meaning the entity is valid. + + + + + Creates an instance of class. + + + Entity entry the results applies to. Never null. + + + List of instances. Never null. Can be empty meaning the entity is valid. + + + + + Gets an instance of the results applies to. + + + + + Gets validation errors. Never null. + + + + + Gets an indicator if the entity is valid. + + + + + Exception thrown from when an exception is thrown from the validation + code. + + + + + Initializes a new instance of DbUnexpectedValidationException + + The exception message. + + + + Initializes a new instance of DbUnexpectedValidationException + + The exception message. + + + + Initializes a new instance of DbUnexpectedValidationException + + The exception message. + The inner exception. + + + + Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and + context. + + The serialization info. + The streaming context. + + + + Validation error. Can be either entity or property level validation error. + + + + + Name of the invalid property. Can be null (e.g. for entity level validations) + + + + + Validation error message. + + + + + Creates an instance of . + + Name of the invalid property. Can be null. + Validation error message. Can be null. + + + + Gets name of the invalid property. + + + + + Gets validation error message. + + + + diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Edm.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Edm.dll new file mode 100644 index 0000000..4b116d4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Edm.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Edm.xml b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Edm.xml new file mode 100644 index 0000000..e7bfb75 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Edm.xml @@ -0,0 +1,5221 @@ + + + + Microsoft.Data.Edm + + + + Enumerates the EDM property concurrency modes. + + + Denotes a property that should be used for optimistic concurrency checks. + + + Denotes a property that should not be used for optimistic concurrency checks. + + + Defines EDM container element types. + + + Represents an element where the container kind is unknown or in error. + + + Represents an element implementing . + + + Represents an element implementing . + + + Contains IsEquivalentTo() extension methods. + + + Returns true if the compared expression is semantically equivalent to this expression. + Equivalence of the two expressions. + Reference to the calling object. + Expression being compared to. + + + Returns true if the compared entity set is semantically equivalent to this entity set. + The equivalence of the entity sets. + Reference to the calling object. + Entity set being compared to. + + + Returns true if the compared function is semantically equivalent to this function. + Equivalence of the two functions. + Reference to the calling object. + Function being compared to. + + + Returns true if the compared function import is semantically equivalent to this function import. + Equivalence of the two function imports. + Reference to the calling object. + Function import being compared to. + + + Returns true if the compared function parameter is semantically equivalent to this function parameter. + Equivalence of the two function parameters. + Reference to the calling object. + Function parameter being compared to. + + + Returns true if the compared property is semantically equivalent to this property. + Equivalence of the two properties. + Reference to the calling object. + Property being compared to. + + + Returns true if the compared type is semantically equivalent to this type. + Equivalence of the two types. + Reference to the calling object. + Type being compared to. + + + Returns true if the compared type is semantically equivalent to this type. + Equivalence of the two types. + Reference to the calling object. + Type being compared to. + + + Enumerates the modes of parameters of EDM functions. + + + Denotes that a parameter with an unknown or error directionality. + + + Denotes that a parameter is used for input. + + + Denotes that a parameter is used for output. + + + Denotes that a parameter is used for input and output. + + + Represents the location of an EDM item. + + + Creates a new instance of the class. + + + Gets a string representation of the location. + A string representation of the location. + + + Enumerates the multiplicities of EDM navigation properties. + + + The Multiplicity of the association end is unknown. + + + The Multiplicity of the association end is zero or one. + + + The Multiplicity of the association end is one. + + + The Multiplicity of the association end is many. + + + Represents a mapping from an EDM navigation property to an entity set. + + + Creates a new navigation target mapping. + The navigation property. + The entity set that the navigation propertion targets. + + + Gets the navigation property. + + + Gets the target entity set. + + + Enumerates the actions EDM can apply on deletes. + + + Takes no action on delete. + + + On delete also delete items on the other end of the association. + + + Enumerates the kinds of EDM primitives. + + + Represents a primitive type of unknown kind. + + + Represents a Binary type. + + + Represents a Boolean type. + + + Represents a Byte type. + + + Represents a DateTime type. + + + Represents a DateTimeOffset type. + + + Represents a Decimal type. + + + Represents a Double type. + + + Represents a Guid type. + + + Represents an Int16 type. + + + Represents an Int32 type. + + + Represents an Int64 type. + + + Represents a SByte type. + + + Represents a Single type. + + + Represents a String type. + + + Represents a Stream type. + + + Represents a Time type. + + + Represents an arbitrary Geography type. + + + Represents a geography Point type. + + + Represents a geography LineString type. + + + Represents a geography Polygon type. + + + Represents a geography GeographyCollection type. + + + Represents a geography MultiPolygon type. + + + Represents a geography MultiLineString type. + + + Represents a geography MultiPoint type. + + + Represents an arbitrary Geometry type. + + + Represents a geometry Point type. + + + Represents a geometry LineString type. + + + Represents a geometry Polygon type. + + + Represents a geometry GeometryCollection type. + + + Represents a geometry MultiPolygon type. + + + Represents a geometry MultiLineString type. + + + Represents a geometry MultiPoint type. + + + Returns true if this type kind represents a temporal type. + + + Returns true if this primitive type kind represents an integer type. + + + Returns true if this type kind represents a spatial type. + + + Defines EDM property types. + + + Represents a property implementing . + + + Represents a property implementing . + + + Represents a property with an unknown or error kind. + + + Defines EDM schema element types. + + + Represents a schema element with unknown or error kind. + + + Represents a schema element implementing . + + + Represents a schema element implementing . + + + Represents a schema element implementing . + + + Represents a schema element implementing + + + Defines EDM term kinds. + + + Represents a term with unknown or error kind. + + + Represents a term implementing . + + + Represents a term implementing . + + + Defines EDM metatypes. + + + Represents a type with an unknown or error kind. + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Returns true if this type kind represents a structured type. + + + Provides semantics of the predefined EDM types. + + + Returns a reference to this row type definition. + A reference to this row type definition. + Reference to the calling object. + Flag specifying if the referenced type should be nullable. + + + If this reference is of a binary type, this will return a valid binary type reference to the type definition. Otherwise, it will return a bad binary type reference. + A valid binary type reference if the definition of the reference is of a binary type. Otherwise a bad binary type reference. + Reference to the calling object. + + + If this reference is of a collection type, this will return a valid collection type reference to the type definition. Otherwise, it will return a bad collection type reference. + A valid collection type reference if the definition of the reference is of a collection type. Otherwise a bad collection type reference. + Reference to the calling object. + + + If this reference is of a complex type, this will return a valid complex type reference to the type definition. Otherwise, it will return a bad complex type reference. + A valid complex type reference if the definition of the reference is of a complex type. Otherwise a bad complex type reference. + Reference to the calling object. + + + If this reference is of a decimal type, this will return a valid decimal type reference to the type definition. Otherwise, it will return a bad decimal type reference. + A valid decimal type reference if the definition of the reference is of a decimal type. Otherwise a bad decimal type reference. + Reference to the calling object. + + + If this reference is of an entity type, this will return a valid entity type reference to the type definition. Otherwise, it will return a bad entity type reference. + A valid entity type reference if the definition of the reference is of an entity type. Otherwise a bad entity type reference. + Reference to the calling object. + + + If this reference is of an entity reference type, this will return a valid entity reference type reference to the type definition. Otherwise, it will return a bad entity reference type reference. + A valid entity reference type reference if the definition of the reference is of an entity reference type. Otherwise a bad entity reference type reference. + Reference to the calling object. + + + If this reference is of an enumeration type, this will return a valid enumeration type reference to the type definition. Otherwise, it will return a bad enumeration type reference. + A valid enumeration type reference if the definition of the reference is of an enumeration type. Otherwise a bad enumeration type reference. + Reference to the calling object. + + + If this reference is of a primitive type, this will return a valid primitive type reference to the type definition. Otherwise, it will return a bad primitive type reference. + A valid primitive type reference if the definition of the reference is of a primitive type. Otherwise a bad primitive type reference. + Reference to the calling object. + + + If this reference is of a row type, this will return a valid row type reference to the type definition. Otherwise, it will return a bad row type reference. + A valid row type reference if the definition of the reference is of a row type. Otherwise a bad row type reference. + Reference to the calling object. + + + If this reference is of a spatial type, this will return a valid spatial type reference to the type definition. Otherwise, it will return a bad spatial type reference. + A valid spatial type reference if the definition of the reference is of a spatial type. Otherwise a bad spatial type reference. + Reference to the calling object. + + + If this reference is of a string type, this will return a valid string type reference to the type definition. Otherwise, it will return a bad string type reference. + A valid string type reference if the definition of the reference is of a string type. Otherwise a bad string type reference. + Reference to the calling object. + + + If this reference is of a structured type, this will return a valid structured type reference to the type definition. Otherwise, it will return a bad structured type reference. + A valid structured type reference if the definition of the reference is of a structured type. Otherwise a bad structured type reference. + Reference to the calling object. + + + If this reference is of a temporal type, this will return a valid temporal type reference to the type definition. Otherwise, it will return a bad temporal type reference. + A valid temporal type reference if the definition of the reference is of a temporal type. Otherwise a bad temporal type reference. + Reference to the calling object. + + + Determines if the potential base type is in the inheritance hierarchy of the type being tested. + True if and only if the type inherits from the potential base type. + Type to be tested for derivation from the other type. + The potential base type of the type being tested. + + + Returns true if this reference refers to a binary type. + This reference refers to a binary type. + Reference to the calling object. + + + Returns true if this reference refers to a boolean type. + This reference refers to a boolean type. + Reference to the calling object. + + + Returns true if this reference refers to a byte type. + This reference refers to a byte type. + Reference to the calling object. + + + Returns true if this reference refers to a collection. + This reference refers to a collection. + Reference to the calling object. + + + Returns true if this reference refers to a complex type. + This reference refers to a complex type. + Reference to the calling object. + + + Returns true if this reference refers to a DateTime type. + This reference refers to a DateTime type. + Reference to the calling object. + + + Returns true if this reference refers to a DateTimeOffset type. + This reference refers to a DateTimeOffset type. + Reference to the calling object. + + + Returns true if this reference refers to a decimal type. + This reference refers to a decimal type. + Reference to the calling object. + + + Returns true if this reference refers to a double type. + This reference refers to a double type. + Reference to the calling object. + + + Returns true if this reference refers to an entity type. + This reference refers to an entity type. + Reference to the calling object. + + + Returns true if this reference refers to an entity type. + This reference refers to an entity type. + Reference to the calling object. + + + Returns true if this reference refers to an enumeration type. + This reference refers to an enumeration type. + Reference to the calling object. + + + Returns true if this reference refers to a floating point type. + This reference refers to a floating point type. + Reference to the calling object. + + + Returns true if this reference refers to a GUID type. + This reference refers to a GUID type. + Reference to the calling object. + + + Returns true if this reference refers to an Int16 type. + This reference refers to an Int16 type. + Reference to the calling object. + + + Returns true if this reference refers to an Int32 type. + This reference refers to an Int32 type. + Reference to the calling object. + + + Returns true if this reference refers to an Int64 type. + This reference refers to an Int64 type. + Reference to the calling object. + + + Returns true if this primitive type kind represents an integer type. + This kind refers to an integer type. + Reference to the calling object. + + + Returns true if this reference refers to an integer type. + This reference refers to an integer type. + Reference to the calling object. + + + Determines if a type is equivalent to or derived from another type. + True if and only if the thisType is equivalent to or inherits from otherType. + Type to be tested for equivalence to or derivation from the other type. + Type that is the other type. + + + Returns true if this reference refers to a primitive type. + This reference refers to a primitive type. + Reference to the calling object. + + + Returns true if this reference refers to a row type. + This reference refers to a row type. + Reference to the calling object. + + + Returns true if this reference refers to an SByte type. + This reference refers to an SByte type. + Reference to the calling object. + + + Returns true if this reference refers to a signed integral type. + This reference refers to a signed integral type. + Reference to the calling object. + + + Returns true if this reference refers to a single type. + This reference refers to a single type. + Reference to the calling object. + + + Returns true if this type kind represents a spatial type. + This kind refers to a spatial type. + Reference to the calling object. + + + Returns true if this definition refers to a spatial type. + This definition refers to a spatial type. + Definition to the calling object. + + + Returns true if this reference refers to a spatial type. + This reference refers to a spatial type. + Reference to the calling object. + + + Returns true if this reference refers to a stream type. + This reference refers to a stream type. + Reference to the calling object. + + + Returns true if this reference refers to a string type. + This reference refers to a string type. + Reference to the calling object. + + + Returns true if this type kind represents a structured type. + This kind refers to a structured type. + Reference to the calling object. + + + Returns true if this reference refers to a structured type. + This reference refers to a structured type. + Reference to the calling object. + + + Returns true if this type kind represents a temporal type. + This kind refers to a temporal type. + Reference to the calling object. + + + Returns true if this reference refers to a temporal type. + This reference refers to a temporal type. + Reference to the calling object. + + + Returns true if this reference refers to a time type. + This reference refers to a time type. + Reference to the calling object. + + + Returns the primitive kind of the definition of this reference. + The primitive kind of the definition of this reference. + Reference to the calling object. + + + Contains extension methods for interfaces. + + + + + + + + + + + + + + Gets the entity type declaring this navigation property. + The entity type that declares this navigation property. + Reference to the calling object. + + + Gets the direct value annotations for an element. + The immediate value annotations of the element. + The model containing the annotations. + The annotated element. + + + + Gets the entity containers belonging to this model. + Entity containers belonging to this model. + Model to search for entity containers. + + + + + + + + Searches for an entity container with the given name in this model and all referenced models and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The model to search. + The qualified name of the entity container being found. + + + Searches for functions with the given name in this model and all referenced models and returns an empty enumerable if no such functions exist. + The requested functions. + The model to search. + The qualified name of the functions being found. + + + + Finds a property of a record expression. + The property, if found, otherwise null. + The record expression. + Name of the property to find. + + + + Gets the binding of a property of the type term of a type annotation. + The binding of the property in the type annotation, or null if no binding exists. + Annotation to search. + Property to search for. + + + Gets the binding of a property of the type term of a type annotation. + The binding of the property in the type annotation, or null if no binding exists. + Annotation to search. + Name of the property to search for. + + + Searches for a type with the given name in this model and all referenced models and returns null if no such type exists. + The requested type, or null if no such type exists. + The model to search. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and all referenced models and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The model to search. + The qualified name of the value term being found. + + + Gets an annotatable element's vocabulary annotations defined in a specific model and models referenced by that model. + Annotations attached to the element by this model or by models referenced by this model. + The model to search. + Element to check for annotations. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term. + Model to search. + Element to check for annotations. + Term to search for. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term with the given qualifier. + Model to search. + Element to check for annotations. + Term to search for. + Qualifier to apply. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term. + Model to search. + Element to check for annotations. + Name of the term to search for. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term with the given qualifier. + Model to search. + Element to check for annotations. + Name of the term to search for. + Qualifier to apply. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations defined in a specific model and models referenced by that model. + Annotations attached to the element (or, if the element is a type, to its base types) by this model or by models referenced by this model. + The model to search. + Element to check for annotations. + + + + + + Gets an annotation value from an annotatable element. + The model containing the annotation. + The annotated element. + Type of the annotation being returned. + + + Gets an annotation value corresponding to the given namespace and name provided. + The model containing the annotation. + The annotated element. + Namespace of the annotation. + Name of the annotation inside the namespace. + Type of the annotation being returned. + + + Gets an annotation value corresponding to the given namespace and name provided. + The requested annotation value, if it exists. Otherwise, null. + The model containing the annotation. + The annotated element. + Namespace of the annotation. + Name of the annotation inside the namespace. + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + The model in which to find the annotations. + The set of requested annotations. + + + Gets documentation for a specified element. + Documentation that exists on the element. Otherwise, null. + The model containing the documentation. + The element. + + + + Gets the of a property of a term type that has been applied to the type of a value. + Value of the property evaluated against the supplied value, or null if no relevant type annotation exists. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a property of a term type that has been applied to the type of a value. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a property of a term type that has been applied to the type of a value. + Value of the property evaluated against the supplied value, or null if no relevant type annotation exists. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a property of a term type that has been applied to the type of a value. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + + + + + + Gets the multiplicity of this end of a bidirectional relationship between this navigation property and its partner. + The multiplicity of this end of the relationship. + Reference to the calling object. + + + + + + + + + Gets all schema elements from the model, and models referenced by it. + Schema elements from the model, and models referenced by it. + Model to search for elements + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + The model containing the annotation. + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + Value of the new annotation. + + + Sets an annotation value on an annotatable element. + The model containing the annotation. + The annotated element. + Value of the new annotation. + Type of the annotation being set. + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + The model in which to set the annotations. + The annotations to set. + + + Sets documentation for a specified element. + The model containing the documentation. + The element. + Documentation to set. + + + + + + + Gets the entity type targeted by this navigation property. + The entity type targeted by this navigation property. + Reference to the calling object. + + + Analyzes .EntitySet expression and returns a relative path to an if available. The path starts with the parameter and may have optional sequence of and type casts segments. + True if the entity set expression of the functionImport contains a relative path an , otherwise false. + The function import containing the entity set expression. + The model containing the function import. + The function import parameter from which the relative entity set path starts. + The optional sequence of navigation properties. + + + Analyzes .EntitySet expression and returns a static reference if available. + True if the entity set expression of the functionImport contains a static reference to an , otherwise false. + The function import containing the entity set expression. + The static entity set of the function import. + + + + + + Gets an annotatable element's vocabulary annotations as seen from a particular model. + Annotations attached to the element by the model or by models referenced by the model. + Reference to the calling object. + Model to check for annotations. + + + Represents a reference to an EDM binary type. + + + Gets a value indicating whether this type specifies fixed length. + True if the type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this type specifies the maximum allowed max length. + True if the type specifies the maximum allowed max length; otherwise, false. + + + Gets the maximum length of this type. + The maximum length of this type. + + + Defines an EDM component who is invalid or whose validity is unknown at construction. + + + Gets an error if one exists with the current object. + An error. + + + Represents a definition of an EDM collection type. + + + Gets the element type of this collection. + The element type of this collection. + + + Represents a reference to an EDM collection type. + + + Represents a definition of an EDM complex type. + + + Represents a reference to an EDM complex type. + + + Represents a reference to an EDM decimal type. + + + Gets the precision of this type. + The precision of this type. + + + Gets the scale of this type. + The scale of this type. + + + Represents an EDM documentation. + + + Gets a long description of this documentation. + A long description of this documentation. + + + Gets a summary of this documentation. + A summary of this documentation. + + + Represents an EDM element. + + + Represents an EDM entity container. + + + Gets a collection of the elements of this entity container. + A collection of the elements of this entity container. + + + Searches for an entity set with the given name in this entity container and returns null if no such set exists. + The requested element, or null if the element does not exist. + The name of the element being found. + + + Searches for function imports with the given name in this entity container and returns null if no such function import exists. + A group of the requested function imports, or null if no such function import exists. + The name of the function import being found. + + + Represents the common elements of all EDM entity container elements. + + + Gets the container that contains this element. + + + + Represents a definition of an EDM entity reference type. + + + Gets the entity type pointed to by this entity reference. + The entity type pointed to by this entity reference. + + + Represents a reference to an EDM entity reference type. + + + Represents an EDM entity set. + + + Gets the entity type contained in this entity set. + The entity type contained in this entity set. + + + Finds the entity set that a navigation property targets. + The entity set that the navigation propertion targets, or null if no such entity set exists. + The navigation property. + + + Gets the navigation targets of this entity set. + + + Represents a definition of an EDM entity type. + + + Gets the structural properties of the entity type that make up the entity key. + The structural properties of the entity type. + + + Represents a reference for the definition of an EDM entity type. + + + Represents a definition of an EDM enumeration type member. + + + Gets the type that this member belongs to. + The type that this member belongs to. + + + Gets the value of this enumeration type member. + The value of this enumeration type member. + + + Represents a definition of an EDM enumeration type. + + + Gets the members of this enumeration type. + The members of this enumeration type. + + + Gets a value indicating whether the enumeration type can be treated as a bit field. + True if the value indicating whether the enumeration type can be treated as a bit field; otherwise, false. + + + Gets the underlying type of this enumeration type. + The underlying type of this enumeration type. + + + Represents a reference for a definition of an EDM enumeration type. + + + Represents an EDM function. + + + Gets the defining expression of this function. + The defining expression of this function. + + + Represents the common base type of EDM functions and function imports. + + + Searches for a parameter with the given name, and returns null if no such parameter exists. + The requested parameter or null if no such parameter exists. + The name of the parameter being found. + + + Gets the collection of parameters for this function. + The collection of parameters for this function. + + + Gets the return type of this function. + The return type of this function. + + + Represents an EDM function import. + + + Gets a value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + True if the function import can be used as an extension method for the type of the first parameter of this function import; otherwise, false. + + + Gets a value indicating whether this function import can be composed inside expressions. cannot be set to true if is set to true. + True if the function import can be composed inside expressions; otherwise, false. + + + Gets the entity set where the result of this function import will be contained in. + The entity set where the result of this function import will be contained in. + + + Gets a value indicating whether this function import has side-effects. cannot be set to true if is set to true. + True if the function import has side-effects; otherwise, false. + + + Represents a parameter of an EDM function. + + + Gets the function or function import that declared this parameter. + + + Gets the mode of this function parameter. + The mode of this function parameter. + + + Gets the type of this function parameter. + The type of this function parameter. + + + Represents the interface for all EDM elements that can be located. + + + Gets the location of this element. + The location of this element. + + + Semantic representation of an EDM model. + + + Gets the model's annotations manager. + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The name of the entity container being found. + + + Searches for functions with the given name in this model and returns an empty enumerable if no such function exists. + A set of functions sharing the specified qualified name, or an empty enumerable if no such function exists. + The qualified name of the function being found. + + + Searches for a type with the given name in this model and returns null if no such type exists. + The requested type, or null if no such type exists. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The qualified name of the value term being found. + + + Searches for vocabulary annotations specified by this model. + The vocabulary annotations for the element. + The annotated element. + + + Gets the collection of models referred to by this model. + The collection of models referred to by this model. + + + Gets the collection of schema elements that are contained in this model. + The collection of schema elements that are contained in this model. + + + Gets the collection of vocabulary annotations that are contained in this model. + The collection of vocabulary annotations. + + + Common base interface for all named EDM elements. + + + Gets the name of this element. + The name of this element. + + + Represents an EDM navigation property. + + + Gets a value indicating whether the navigation target is contained inside the navigation source. + + + Gets the dependent properties of this navigation property, returning null if this is the principal end or if there is no referential constraint. + + + Gets whether this navigation property originates at the principal end of an association. + + + Gets the action to execute on the deletion of this end of a bidirectional association. + + + Gets the partner of this navigation property. + + + Represents a definition of an EDM primitive type. + + + Gets the primitive kind of this type. + The primitive kind of this type. + + + Represents a reference to definition of an EDM primitive type. + + + Represents an EDM property. + + + Gets the type that this property belongs to. + The type that this property belongs to. + + + Gets the kind of this property. + The kind of this property. + + + Gets the type of this property. + The type of this property. + + + Represents an EDM row type. + + + Represents a reference to an EDM row type. + + + Common base interface for all named children of EDM schemata. + + + Gets the namespace this schema element belongs to. + The namespace this schema element belongs to. + + + Gets the kind of this schema element. + The kind of this schema element. + + + Represents an EDM schema type. + + + Represents a reference to an EDM spatial type. + + + Gets the spatial reference identifier of this spatial type. + The spatial reference identifier of this spatial type. + + + Represents a reference to an EDM string type. + + + Gets a string representing the collation of this string type. + A string representing the collation of this string type. + + + Gets a value indicating whether this string type specifies fixed length. + True if this string type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this string type specifies the maximum allowed maximum length. + True if this string type specifies the maximum allowed maximum length; otherwise, false. + + + Gets a value indicating whether this string type supports Unicode encoding. + True if this string type supports Unicode encoding; otherwise, false. + + + Gets the maximum length of this string type. + The maximum length of this string type. + + + Represents an EDM structural (that is, non-navigation) property. + + + Gets the concurrency mode of this property. + The concurrency mode of this property. + + + Gets the default value of this property. + The default value of this property. + + + Represents the common base interface for definitions of EDM structured types. + + + Gets the base type of this type. + The base type of this type. + + + Gets the properties declared immediately within this type. + The properties declared immediately within this type. + + + Searches for a structural or navigation property with the given name in this type and all base types and returns null if no such property exists. + The requested property, or null if no such property exists. + The name of the property being found. + + + Gets a value indicating whether this type is abstract. + True if this type is abstract; otherwise, false. + + + Gets a value indicating whether this type is open. + True if this type is open; otherwise, false. + + + Represents a reference to an EDM structured type. + + + Represents a reference to an EDM temporal (Time, DateTime, DateTimeOffset) type. + + + Gets the precision of this temporal type. + The precision of this temporal type. + + + Represents the term to which an annotation can bind. + + + Gets the kind of a term. + The kind of a term. + + + Represents the definition of an EDM type. + + + Gets the kind of this type. + The kind of this type. + + + Represents a reference to an EDM type. + + + Gets the definition to which this type refers. + The definition to which this type refers. + + + Gets a value indicating whether this type is nullable. + true of the type is nullable; otherwise, false. + + + Represents an EDM value term. + + + Gets the type of the term. + The type of the term. + + + + Contains ToTraceString() extension methods. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Represents an EDM annotation with an immediate value. + + + Gets the namespace Uri of the annotation. + + + Gets the value of this annotation. + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + + + Gets the element to which the annotation is attached + + + Gets the local name of this element. + + + Gets the namespace of the annotation. + + + Gets the value of this annotation. + + + Manages getting and setting direct value annotations on EDM elements. + + + Retrieves an annotation value for an EDM element. Returns null if no annotation with the given name exists for the given element. + Returns the annotation value that corresponds to the provided name. Returns null if no annotation with the given name exists for the given element. + The annotated element. + Namespace that the annotation belongs to. + Local name of the annotation. + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + The set of requested annotations + + + Gets annotations associated with an element. + The direct value annotations for the element. + The annotated element. + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + The value of the annotation. + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + The annotations to set + + + Represents a property binding specified as part of an EDM Type Annotation. + + + Gets the property given a value by the annotation. + The property given a value by the annotation. + + + Gets the expression producing the value of the annotation. + The expression producing the value of the annotation. + + + Represents an EDM Type Annotation. + + + Gets the value annotations for the properties of the type. + The value annotations for the properties of the type. + + + Represents an EDM Value Annotation. + + + Gets the expression producing the value of the annotation. + The expression producing the value of the annotation. + + + Represents an EDM Vocabulary Annotation. + + + Gets the qualifier used to discriminate between multiple bindings of the same property or type. + The qualifier. + + + Gets the element the annotation applies to. + The element the annotation applies to. + + + Gets the term bound by the annotation. + + + Represents the constants for CSDL XML. + + + Version 1.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2007/06/edmx". + + + Version 2.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2008/10/edmx". + + + Version 3.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2009/11/edmx". + + + The current latest version of EDMX. + + + Defines a location in a XML file. + + + Gets the line number in the file. + The line number in the file. + + + Gets the position in the line. + The position in the line. + + + Gets a string representation of the location. + A string representation of the location. + + + Provides CSDL parsing services for EDM models. + + + Returns an IEdmModel for the given CSDL artifacts. + Success of the parse operation. + Collection of XmlReaders containing the CSDL artifacts. + Model to be references by the created model. + The model generated by parsing. + Errors reported while parsing. + + + Returns an IEdmModel for the given CSDL artifacts. + Success of the parse operation. + Collection of XmlReaders containing the CSDL artifacts. + The model generated by parsing. + Errors reported while parsing. + + + Returns an IEdmModel for the given CSDL artifacts. + Success of the parse operation. + Collection of XmlReaders containing the CSDL artifacts. + Models to be references by the created model. + The model generated by parsing. + Errors reported while parsing. + + + Provides CSDL serialization services for EDM models. + + + + Outputs a CSDL artifact to the provided writer. + A value indicating whether serialization was successful. + Model to be written. + XmlWriter the generated CSDL will be written to. + Errors that prevented successful serialization, or no errors if serialization was successful. + + + Represents whether a vocabulary annotation should be serialized within the element it applies to or in a separate section of the CSDL. + + + The annotation should be serialized within the element being annotated. + + + The annotation should be serialized in a separate section. + + + Provides EDMX parsing services for EDM models. + + + Returns an IEdmModel for the given EDMX artifact. + Success of the parse operation. + XmlReader containing the EDMX artifact. + Model to be referenced by the created model. + The model generated by parsing + Errors reported while parsing. + + + Returns an IEdmModel for the given EDMX artifact. + Success of the parse operation. + XmlReader containing the EDMX artifact. + The model generated by parsing + Errors reported while parsing. + + + Returns an IEdmModel for the given EDMX artifact. + Success of the parse operation. + XmlReader containing the EDMX artifact. + Models to be references by the created model. + The model generated by parsing + Errors reported while parsing. + + + Specifies what target of an EDMX file. + + + The target is Entity Framework. + + + The target is OData. + + + Provides EDMX serialization services for EDM models. + + + Outputs an EDMX artifact to the provided XmlWriter. + A value indicating whether serialization was successful. + Model to be written. + XmlWriter the generated EDMX will be written to. + Target implementation of the EDMX being generated. + Errors that prevented successful serialization, or no errors if serialization was successfull. + + + Contains extension methods for interfaces that are useful to serialization. + + + Gets the annotations associated with the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association annotations. + The annotations for association end 1. + The annotations for association end 2. + The annotations for the referential constraint. + + + Gets the name used for the association end serialized for a navigation property. + The association end name. + Model containing the navigation property. + The navigation property. + + + Gets the fully-qualified name used for the association serialized for a navigation property. + The fully-qualified association name. + Model containing the navigation property. + The navigation property. + + + Gets the name used for the association serialized for a navigation property. + The association name. + Model containing the navigation property. + The navigation property. + + + Gets the namespace used for the association serialized for a navigation property. + The association namespace. + Model containing the navigation property. + The navigation property. + + + Gets the annotations associated with the association serialized for a navigation target of an entity set. + Model containing the entity set. + The entity set. + The navigation property. + The association set annotations. + The annotations for association set end 1. + The annotations for association set end 2. + + + Gets the name used for the association set serialized for a navigation property of an entity set. + The association set name. + Model containing the entity set. + The entity set. + The navigation property. + + + + + Gets an annotation indicating if the value should be serialized as an element. + Value indicating if the string should be serialized as an element. + Value the annotation is on. + Model containing the value. + + + Gets an annotation indicating whether the value of an enum member should be explicitly serialized. + Whether the member should have its value serialized. + The member the annotation is on. + Model containing the member. + + + + + Gets the primary end of a pair of partnered navigation properties, selecting the principal end if there is one and making a stable, arbitrary choice otherwise. + The primary end between the navigation property and its partner. + The navigation property. + + + Gets the schema an annotation should be serialized in. + Name of the schema the annotation belongs to. + Reference to the calling annotation. + Model containing the annotation. + + + Gets the location an annotation should be serialized in. + The location the annotation should be serialized at. + Reference to the calling annotation. + Model containing the annotation. + + + Sets the annotations for the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association annotations. + The annotations for association end 1. + The annotations for association end 2. + The annotations for the referential constraint. + + + Sets the name used for the association end serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association end name. + + + Sets the name used for the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association name. + + + Sets the namespace used for the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association namespace. + + + Sets the annotations for the association set serialized for a navigation target of an entity set. + Model containing the entity set. + The entity set. + The navigation property. + The association set annotations. + The annotations for association set end 1. + The annotations for association set end 2. + + + Sets the name used for the association set serialized for a navigation property of an entity set. + Model containing the entity set. + The entity set + The navigation property. + The association set name. + + + + + Sets an annotation indicating if the value should be serialized as an element. + Value to set the annotation on. + Model containing the value. + Value indicating if the value should be serialized as an element. + + + Sets an annotation indicating whether the value of an enum member should be explicitly serialized. + Member to set the annotation on. + Model containing the member. + If the value of the enum member should be explicitly serialized + + + + + Sets the schema an annotation should appear in. + The annotation the schema should be set for. + Model containing the annotation. + The schema the annotation belongs in. + + + Sets the location an annotation should be serialized in. + The annotation the location is being specified for. + Model containing the annotation. + The location the annotation should appear. + + + + to CLR value converter. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The delegate customizing conversion of structured values. + + + Converts edmValue to a value. + Converted boolean. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted byte. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a CLR byte array value. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted char. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted DateTime. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted DateTimeOffset. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted decimal. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted double. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted single. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted string. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted Time. + The EDM value to be converted. + edmValue + + + Converts edmValue to a CLR value of the specified type. Supported values for <typeparamref name="T" /> are: CLR primitive types such as and , CLR enum types, <see cref="T:System.Collections.Generic.IEnumerable`1" />, <see cref="T:System.Collections.Generic.ICollection`1" />, <see cref="T:System.Collections.Generic.IList`1" />, CLR classes with default constructors and public properties with setters and collection properties of the following shapes: <see cref="T:System.Collections.Generic.IEnumerable`1" /> EnumerableProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get; set; }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get { return this.nonNullCollection; } }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get { return this.nonNullList; } }. + The EDM value to be converted. + The CLR type. + + + Converts edmValue to a CLR value of the specified type. Supported values for clrType are: CLR primitive types such as and , CLR enum types, <see cref="T:System.Collections.Generic.IEnumerable`1" />, <see cref="T:System.Collections.Generic.ICollection`1" />, <see cref="T:System.Collections.Generic.IList`1" />, CLR classes with default constructors and public properties with setters and collection properties of the following shapes: <see cref="T:System.Collections.Generic.IEnumerable`1" /> EnumerableProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get; set; }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get { return this.nonNullCollection; } }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get { return this.nonNullList; } }. + A CLR value converted from edmValue. + The EDM value to be converted. + The CLR type. + + + Converts edmValue to a nullable value. + Converted boolean. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted byte. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted char. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a nullable value. + Converted DateTime. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted DateTimeOffset. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted decimal. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted double. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a nullable value. + Converted integer. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted single. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted Tim. + The EDM value to be converted. + edmValue + + + Registers the clrObject corresponding to the edmValue. All subsequent conversions from this edmValue performed by this instance of will return the specified clrObject. Registration is required to support graph consistency and loops during conversion process. This method should be called inside the delegate if the delegate is calling back into in order to populate properties of the clrObject. + The EDM value. + The CLR object. + + + + Expression evaluator. + + + + + Evaluates an expression with no value context. + The value that results from evaluating the expression in the context of the supplied value. + Expression to evaluate. The expression must not contain paths, because no context for evaluating a path is supplied. + + + Evaluates an expression in the context of a value. + The value that results from evaluating the expression in the context of the supplied value. + Expression to evaluate. + Value to use as context in evaluating the expression. + + + Evaluates an expression in the context of a value and a target type. + The value that results from evaluating the expression in the context of the supplied value, asserted to be of the target type. + Expression to evaluate. + Value to use as context in evaluating the expression. Cannot be null if the expression contains paths. + Type to which the result value is expected to conform. + + + Expression evaluator capable of producing CLR values. + + + + + Gets or sets an instance of that is used to produce CLR values during evaluation. + + + Evaluates an expression with no value context. + Expression to evaluate. The expression must not contain paths, because no context for evaluating a path is supplied. + The CLR type of the value to be returned. + + + Evaluates an expression in the context of a value. + Expression to evaluate. + Value to use as context in evaluating the expression. + The CLR type of the value to be returned. + + + Evaluates an expression in the context of a value and a target type. + Expression to evaluate. + Value to use as context in evaluating the expression. + Type to which the result value is expected to conform. + The CLR type of the value to be returned. + + + Defines EDM expression kinds. + + + + + + Represents an expression implementing . + + + + + + + + + Represents an expression implementing . + + + + + + + + + Represents an expression implementing . + + + + + + + + + Represents an expression implementing . + + + Represents an expression implementing . + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents an expression implementing . + + + + + + + + + + + + + + + Represents an expression implementing . + + + Represents an expression implementing + + + Represents an EDM type assertion expression. + + + Gets the expression for which the type is asserted. + The expression for which the type is asserted. + + + Gets the asserted type. + The asserted type. + + + + Represents an EDM boolean constant expression. + + + Represents an EDM multi-value construction expression. + + + Gets the declared type of the collection, or null if there is no declared type. + + + Gets the constructed element values. + The constructed element values. + + + Represents an EDM DateTime constant expression. + + + + Represents an EDM decimal constant expression. + + + Represents an EDM entity set reference expression. + + + Gets the referenced entity set. + The referenced entity set. + + + Represents an EDM enumeration member reference expression. + + + Gets the referenced enum member. + + + Represents an EDM expression. + + + Gets the kind of this expression. + The kind of this expression. + + + Represents an EDM floating constant expression. + + + Represents an EDM function application expression. + + + Gets the applied function. + The applied function. + + + Gets the arguments to the function. + The arguments to the function. + + + Represents an EDM function reference expression. + + + Gets the referenced function. + + + + Represents an EDM if expression. + + + Gets the expression to evaluate if Test evaluates to False. + The expression to evaluate if Test evaluates to False. + + + Gets the expression to evaluate if Test evaluates to True. + The expression to evaluate if Test evaluates to True. + + + Gets the test expression. + The test expression. + + + Represents an EDM integer constant expression. + + + Represents an EDM type test expression. + + + Gets the expression whose type is to be tested. + The expression whose type is to be tested. + + + Gets the type to be tested against. + The type to be tested against. + + + Represents an EDM labeled expression element. + + + Gets the underlying expression. + + + Represents a reference to an EDM labeled expression. + + + Gets the referenced expression. + + + + Represents an EDM parameter reference expression. + + + Gets the referenced parameter. + + + Represents an EDM path expression. + + + Gets the path as a decomposed qualified name. "A.B.C" is { "A", "B", "C" }. + The path as a decomposed qualified name. + + + Represents an EDM property constructor specified as part of a CSDL Record expression. + + + Gets the name of the property + The name of the property. + + + Gets the expression for the value of the property. + The expression for the value of the property. + + + Represents an EDM property reference expression. + + + + Gets the referenced property. + + + Represents an EDM record construction expression. + + + Gets the declared type of the record, or null if there is no declared type. + The declared type of the record, or null if there is no declared type. + + + Gets the constructed property values. + The constructed property values. + + + Represents an EDM string constant expression. + + + + Represents an EDM value term reference expression. + + + Gets the expression for the structured value containing the referenced term property. + The expression for the structured value containing the referenced term property. + + + Gets the optional qualifier. + The optional qualifier. + + + Gets the referenced value term. + The referenced value term. + + + Represents a reference to an EDM binary type. + + + Initializes a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Initializes a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Denotes whether the maximum length is the maximum allowed value. + The maximum length of a value of this type. + Denotes whether the length can vary. + + + Gets a value indicating whether this type specifies fixed length. + true if this type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this type specifies the maximum allowed max length. + true if this type specifies the maximum allowed maximum length; otherwise, false. + + + Gets the maximum length of this type. + The maximum length of this type. + + + Represents a definition of an EDM collection type. + + + Initializes a new instance of the EdmCollectionType class. + The type of the elements in this collection. + + + + Gets the kind of this type. + + + Represents a reference to an EDM collection type. + + + Initializes a new instance of the class. + The type definition this reference refers to. + Denotes whether the type can be nullable. + + + Gets the collection type to which this type refers. + The collection type to which this type refers. + + + Represents a definition of an EDM complex type. + + + Initializes a new instance of the EdmComplexType class. + The namespace this type belongs to. + The name of this type within its namespace. + + + Initializes a new instance of the EdmComplexType class. Note: Complex type inheritance is not supported in EDM version 3.0 and above. + The namespace this type belongs to. + The name of this type within its namespace. + The base type of this complex type. + Denotes whether this complex type is abstract. + Denotes whether this type is open. + + + Initializes a new instance of the EdmComplexType class. + The namespace this type belongs to. + The name of this type within its namespace. + Denotes whether this type is open. + + + + + + Gets the kind of this type. + + + Represents a reference to an EDM complex type. + + + Initializes a new instance of the class. + The type definition this reference refers to. + Denotes whether the type can be nullable. + + + Contains constant values that apply to the EDM model, regardless of source (for CSDL/EDMX specific constants see ). + + + Version 1.0 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2006/04/edm". + + + Version 1.1 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2007/05/edm". + + + Version 1.2 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2008/01/edm". + + + Version 2.0 of EDM. Corresponds to CSDL namespaces "http://schemas.microsoft.com/ado/2008/09/edm" and "http://schemas.microsoft.com/ado/2009/08/edm". + + + Version 3.0 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2009/11/edm". + + + The current latest version of EDM. + + + Provides predefined declarations relevant to EDM semantics. + + + Gets the model's annotations manager. + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The name of the entity container being found. + + + Searches for functions with the given name in this model and returns an empty enumerable if no such function exists. + A set functions sharing the specified qualified name, or an empty enumerable if no such function exists. + The qualified name of the function being found. + + + Searches for a type with the given name in this model and returns null if no such type exists. + The requested type, or null if no such type exists. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The qualified name of the value term being found. + + + Searches for vocabulary annotations specified by this model or a referenced model for a given element. + The vocabulary annotations for the element. + The annotated element. + + + + + + + + Gets a reference to a datetime primitive type definition. + A new datetime type reference. + Flag specifying if the referenced type should be nullable. + + + Gets a reference to a datetime with offset primitive type definition. + A new datetime with offset type reference. + Flag specifying if the referenced type should be nullable. + + + + + + + + + + + + + + + + + + + + + + Gets a reference to a time primitive type definition. + A new time type reference. + Flag specifying if the referenced type should be nullable. + + + + + + + + Represents a reference to an EDM decimal type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + The precision of values with this type. + The scale of values with this type. + + + Gets the precision of this type. + The precision of this type. + + + Gets the scale of this type. + The scale of this type. + + + Represents an EDM documentation. + + + Creates a new instance of the class. + + + Creates a new instance of the class. + A summary of the documentation. + A long description of the documentation. + + + Gets or sets a long description of this documentation. + A long description of this documentation. + + + Gets or sets a summary of this documentation. + A summary of this documentation. + + + Represents the common base class for all EDM elements. + + + Creates a new instance of the class. + + + Represents an EDM entity container. + + + Initializes a new instance of the EdmEntityContainer class. + Namespace of the entity container. + Name of the entity container. + + + Adds an entity container element to this entity container. + The element to add. + + + Creates and adds an entity set to this entity container. + Created entity set. + Name of the entity set. + The entity type of the elements in this entity set. + + + Creates and adds a function import to this entity container. + Created function import. + Name of the function import. + Return type of the function import. + + + Creates and adds a function import to this entity container. + Created function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + + + Creates and adds a function import to this entity container. + Created function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + A value indicating whether this function import has side-effects. + A value indicating whether this functon import can be composed inside expressions. + A value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + + + Gets a collection of the elements of this entity container. + A collection of the elements of this entity container. + + + Searches for an entity set with the given name in this entity container and returns null if no such set exists. + The requested element, or null if the element does not exist. + The name of the element being found. + + + Searches for function imports with the given name in this entity container and returns null if no such function import exists. + A group of the requested function imports, or null if no such function import exists. + The name of the function import being found. + + + Gets or sets the name of this entity container. + The name of this entity container. + + + Gets the namespace of this entity container. + + + Gets the kind of this schema element. + + + Represents a definition of an EDM entity reference type. + + + + + Gets the kind of this type. + + + Represents a reference to an EDM entity reference type. + + + Creates a new instance of the class. + The definition referred to by this reference. + Denotes whether the type can be nullable. + + + Gets the entity reference definition to which this type refers. + The entity reference definition to which this type refers. + + + Represents an EDM entity set. + + + Initializes a new instance of the EdmEntitySet class. + An containing this entity set. + Name of the entity set. + The entity type of the elements in this entity set. + + + Adds a navigation target, specifying the destination entity set of a navigation property of an entity in this entity set. + The navigation property the target is being set for. + The destination entity set of the specified navigation property. + + + Gets or sets the container of this entity set. + + + + + Finds the entity set that a navigation property targets. + The entity set that the navigation propertion targets, or null if no such entity set exists. + The navigation property. + + + + Gets the navigation targets of this entity set. + + + Represents a definition of an EDM entity type. + + + Initializes a new instance of the EdmEntityType class. + Namespace the entity belongs to. + Name of the entity. + + + Initializes a new instance of the EdmEntityType class. + Namespace the entity belongs to. + Name of the entity. + The base type of this entity type. + + + Initializes a new instance of the EdmEntityType class. + Namespace the entity belongs to. + Name of the entity. + The base type of this entity type. + Denotes an entity that cannot be instantiated. + Denotes if the type is open. + + + Adds the keyProperties to the key of this entity type. + The key properties. + + + Adds the keyProperties to the key of this entity type. + The key properties. + + + Creates and adds a one-side navigation property to this type. Navigation property partner is created, but not added to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + + + Creates and adds a one-side navigation property to this type. Navigation property partner is created, but not added to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + Multiplicity of the navigation source. + + + Creates and adds a navigation property to this type and adds its navigation partner to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + A value indicating whether the the navigation target is contained inside the navigation source. + An action to take when an instance of the navigation source type is deleted. + Name of the partner property. + Multiplicity of the navigation source. + A value indicating whether the the navigation source is contained inside the navigation target. + An action to take when an instance of the navigation target type is deleted. + + + Creates and adds a navigation property to this type and adds its navigation partner to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + Name of the partner property. + Multiplicity of the navigation source. + + + + + + + + Gets the kind of this type. + + + Represents a reference to an EDM entity type. + + + Creates a new instance of the class. + The definition refered to by this reference. + Denotes whether the type can be nullable. + + + Represents a member of an EDM enumeration type. + + + Initializes a new instance of the EdmEnumMember class. + The type that declares this member. + Name of this enumeration member. + Value of this enumeration member. + + + Gets the type that this member belongs to. + + + Gets the value of this enumeration type member. + + + Represents the definition of an Edm enumeration type. + + + Initializes a new instance of the EdmEnumType class. + The underlying type of this enumeration type. + + + Initializes a new instance of the EdmEnumType class. + The underlying type of this enumeration type. + Namespace this enumeration type belongs to. + Name of this enumeration type. + A value indicating whether the enumeration type can be treated as a bit field. + + + Gets the members of this enumeration type. + + + Gets or sets the name of this enumeration type. + + + Gets or sets the namespace this schema element belongs to. + + + Removes an existing member from this enum type + The member to add. + + + Gets the kind of this schema element. + + + Gets or sets a value indicating whether the enumeration type can be treated as a bit field. + + + Gets the kind of this type. + + + Gets the underlying type of this enumeration type. + + + Represents a reference to an EDM enumeration type. + + + Creates a new instance of the class. + The definition refered to by this reference. + Denotes whether the type can be nullable. + + + Represents an EDM function. + + + Creates a new instance of the class. + Namespace of the function. + Name of the function. + Return type of the function. + + + Initializes a new instance of the EdmFunction class. + Namespace of the function. + Name of the function. + Return type of the function. + Defining expression of the function (for example an eSQL expression). + + + Gets or sets the defining expression of this function. + The defining expression of this function. + + + Gets or sets the namespace of this function. + The namespace of this function. + + + Gets the element kind of this function, which is always Function. + The element kind of this function. + + + Represents an EDM function or function import. + + + Creates a new instance of the class. + The name of the function. + The return type of the function. + + + Adds a parameter to this function (as the last parameter). + The parameter being added. + + + Adds a parameter to this function (as the last parameter). + The name of the parameter being added. + The type of the parameter being added. + + + Creates and adds a parameter to this function (as the last parameter). + Created parameter. + The name of the parameter being added. + The type of the parameter being added. + Mode of the parameter. + + + Searches for a parameter with the given name in this function and returns null if no such parameter exists. + The requested parameter, or null if no such parameter exists. + The name of the parameter to be found. + + + Gets or sets the name of this function. + The name of this function. + + + Gets the parameters of this function. + The parameters of this function. + + + Gets or sets the return type of this function. + The return type of this function. + + + Represents an EDM function import. + + + Initializes a new instance of class (side-effecting, non-composable, non-bindable). + An containing this function import. + Name of the function import. + Return type of the function import. + + + Initializes a new instance of class (side-effecting, non-composable, non-bindable). + An containing this function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + + + Initializes a new instance of class. + An containing this function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + A value indicating whether this function import has side-effects. + A value indicating whether this functon import can be composed inside expressions. + A value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + + + + + Gets or sets the container of this function. + + + + + + Represents an EDM function parameter. + + + Initializes a new instance of the EdmFunctionParameter class. + Declaring function of the parameter. + Name of the parameter. + Type of the parameter. + + + Initializes a new instance of the EdmFunctionParameter class. + Declaring function of the parameter. + Name of the parameter. + Type of the parameter. + Mode of the parameter. + + + Gets the function or function import that declared this parameter. + + + Gets the mode of this parameter. + The mode of this parameter. + + + Gets the type of this parameter. + The type of this parameter. + + + Represents an EDM model. + + + + + + Adds a model reference to this model. + The model to reference. + + + Adds a vocabulary annotation to this model. + The annotation to be added. + + + Searches for vocabulary annotations specified by this model. + The vocabulary annotations for the element. + The annotated element. + + + + Removes an model reference from this model. + The model reference to be removed + + + Removes a vocabulary annotation from this model. + The annotation to be removed. + + + + Gets the collection of vocabulary annotations that are contained in this model. + + + Represents an EDM model. + + + Initializes a new instance of the EdmModelBase class. + Models to which this model refers. + Annotations manager for the model to use. + + + Adds a model reference to this model. + The model to reference. + + + Gets the model's annotations manager. + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The name of the entity container being found. + + + Searches for a function with the given name in this model and returns null if no such function exists. + A group of functions sharing the specified qualified name, or an empty enumerable if no such function exists. + The qualified name of the function being found. + + + Searches for a type with the given name in this model and returns null if no such type exists. + The requested type, or null if no such type exists. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The qualified name of the value term being found. + + + Searches for vocabulary annotations specified by this model or a referenced model for a given element. + The vocabulary annotations for the element. + The annotated element. + + + + + Removes an model reference from this model. + The model reference to be removed + + + + + + Represents a common base class for all named EDM elements. + + + Creates a new instance of the class. + + + Creates a new instance of the class. + The name of the element. + + + The name of the element. + + + Gets the name of this element. + The name of this element. + + + Represents an EDM navigation property. + + + Adds the properties to the list of dependent properties. + The dependent properties. + + + Adds the properties to the list of dependent properties. + The dependent properties. + + + Gets a value indicating whether the navigation target is contained inside the navigation source. + + + Creates two navigation properties representing an association between two entity types. + Navigation property pointing from sourceEntityType to targetEntityType. + Navigation property name. + Navigation target type. + Navigation target multiplicity. + A value indicating whether the navigation source logically contains the navigation target. + Action to take upon deletion of an instance of the navigation source. + Navigation partner property name. + Navigation source type. + Navigation source multiplicity + A value indicating whether the navigation target logically contains the navigation source. + Action to take upon deletion of an instance of the navigation target. + + + Creates two navigation properties representing an association between two entity types. + Navigation property pointing from sourceEntityType to targetEntityType. + Navigation property name. + Navigation target type. + Navigation target multiplicity. + Navigation partner property name. + Navigation source type. + Navigation source multiplicity + + + Creates two navigation properties representing an association between two entity types. + Navigation property. + Navigation property name. + Type of the navigation property. + A value indicating whether the navigation source logically contains the navigation target. + Action to take upon deletion of an instance of the navigation source. + Navigation partner property name. + Type of the navigation partner property. + A value indicating whether the navigation target logically contains the navigation source. + Action to take upon deletion of an instance of the navigation target. + + + Gets the entity type that this navigation property belongs to. + The entity type that this navigation property belongs to. + + + Gets or sets the dependent properties of the association this navigation property expresses. + The dependent properties of the association this navigation property expresses. + + + Gets a value indicating whether this navigation property is from the principal end of the association. + + + Gets the partner of this navigation property. + + + Gets or sets the action to take when an element of the defining type is deleted. + The action to take when an element of the defining type is deleted. + + + Gets or sets the navigation property from this properties destination back to the declaring type of this property. + The navigation property from this properties destination back to the declaring type of this property. + + + Gets the kind of this property. + The kind of this property. + + + Represents a reference to an EDM primitive type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Represents an EDM property. + + + Creates a new instance of the class. + The type that declares this property. + Name of the property. + Type of the property. + + + Gets the type that this property belongs to. + The type that this property belongs to. + + + Gets or sets the name of this property. + The name of this property. + + + Gets the kind of this property. + The kind of this property. + + + Gets or sets the type of this property. + The type of this property. + + + Represents a definition of an EDM row type. + + + + Gets the kind of this type. + + + Represents a reference to an EDM row type. + + + Creates a new instance of the class. + Type that describes this value. + Denotes whether the type can be nullable. + + + Represents a reference to an EDM spatial type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Spatial Reference Identifier for the spatial type being created. + + + Gets the precision of this temporal type. + The precision of this temporal type. + + + Represents a reference to an EDM string type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Denotes whether the max length is the maximum allowed value. + Maximum length of a value of this type. + Denotes whether the length can vary. + Denotes if string is encoded using Unicode. + Indicates the collation string to be used by the underlying store. + + + Gets a string representing the collation of this string type. + The collation of this string type. + + + Gets a value indicating whether this string type specifies fixed length. + True if this string type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this string type specifies the maximum allowed max length. + True if this string type specifies the maximum allowed max length; otherwise, false. + + + Gets a value indicating whether this string type supports unicode encoding. + True if this string type supports Unicode encoding; otherwise, false. + + + Gets the maximum length of this string type. + The maximum length of this string type. + + + Represents an EDM structural (i.e. non-navigation) property. + + + Initializes a new instance of the EdmStructuralProperty class. + The type that declares this property. + Name of the property. + Type of the property. + + + Creates a new instance of the class. + The type that declares this property. + The name of the property. + The type of the property. + The default value of this property. + The concurrency mode of this property. + + + Gets the concurrency mode of this property. + The concurrency mode of this property. + + + Gets the default value of this property. + The default value of this property. + + + Gets the kind of this property. + The kind of this property. + + + Common base class for definitions of EDM structured types. + + + Initializes a new instance of the EdmStructuredType class. + + + Initializes a new instance of the EdmStructuredType class. + Denotes a structured type that cannot be instantiated. + Denotes if the type is open. + Base type of the type + + + + Creates and adds a structural property to this type. + Created structural property. + Name of the property. + Type of the property. + + + Creates and adds a structural property to this type. + Created structural property. + Name of the property. + Type of the property. + The default value of this property. + The concurrency mode of this property. + + + + + + + + + + Represents a reference to an EDM temporal (Time, DateTime, DateTimeOffset) type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Precision of values with this type. + + + Gets the precision of this temporal type. + The precision of this temporal type. + + + Represents the definition of an EDM type. + + + Initializes a new instance of the class. + + + + + Represents a reference to an EDM type. + + + Creates a new instance of the class. + The type that describes this value. + Denotes whether the type can be nullable. + + + Gets the definition to which this type refers. + The definition to which this type refers. + + + Gets a value indicating whether this type is nullable. + True if this type is nullable; otherwise, false. + + + Returns the text representation of the current object. + The text representation of the current object. + + + Represents an EDM value term. + + + Initializes a new instance of the EdmValueTerm class. + Namespace of the term. + Name of the term within the namespace. + + + Initializes a new instance of the EdmValueTerm class. + Namespace of the term. + Name of the term within the namespace. + Type of the term. + + + Gets the local name of this term. + The local name of this term. + + + Gets the namespace of this term. + The namespace of this term. + + + Gets the schema element kind of this term. + The schema element kind of this term. + + + Gets the kind of this term. + The kind of this term. + + + Gets the type of this term. + The type of this term. + + + Represents an EDM annotation with an immediate native value. + + + Initializes a new instance of the class. + Namespace of the annotation. + Name of the annotation within the namespace. + Value of the annotation + + + The name of the annotation + + + The namespace Uri of the annotation. + + + Gets the value of this annotation. + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + Element to which the annotation is attached. + Namespace of the annotation. + Name of the annotation within the namespace. + + + Initializes a new instance of the class. + Element to which the annotation is attached. + Namespace of the annotation. + Name of the annotation within the namespace. + Value of the annotation + + + Gets or sets the element to which the annotation is attached. + + + Gets or sets the local name of the annotation + + + Gets or sets the namespace Uri of the annotation. + + + Gets the value of this annotation. + + + EdmDirectValueAnnotationsManager provides services for setting and getting transient annotations on elements. + + + Initializes a new instance of the EdmDirectValueAnnotationsManager class. + + + Retrieves an annotation value for an EDM element. Returns null if no annotation with the given name exists for the given element. + Returns the annotation that corresponds to the provided name. Returns null if no annotation with the given name exists for the given element. + The annotated element. + Namespace that the annotation belongs to. + Local name of the annotation. + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + The set of requested annotations + + + Retrieves the annotations that are directly attached to an element. + The annotations that are directly attached to an element (outside the control of the manager). + The element in question. + + + Gets annotations associated with an element. + The immediate value annotations for the element. + The annotated element. + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + New annotation to set. + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + The annotations to set + + + Represents a property binding specified as part of an EDM type annotation. + + + Initializes a new instance of the class. + + + Gets or sets the property that is given a value by the annotation. + + + Gets or sets the expression producing the value of the annotation. + + + Represents an EDM type annotation. + + + Initializes a new instance of the class. + + + Adds the property to this type annotation. + The property value binding being added. + + + Gets the value annotations for the properties of the type. + + + Removes the property from this type annotation. + The property value binding being removed. + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + Type of the annotation value. + + + Initializes a new instance of the EdmTypedDirectValueAnnotationBinding class. + + + Initializes a new instance of the EdmTypedDirectValueAnnotationBinding class. + Element to which the annotation is attached. + + + Initializes a new instance of the EdmTypedDirectValueAnnotationBinding class. + Element to which the annotation is attached. + Value of the annotation + + + Gets or sets the element to which the annotation is attached. + + + Gets the local name of the annotation + + + Gets the namespace Uri of the annotation. + + + Gets or sets the value of this annotation. + + + Represents an EDM value annotation. + + + Initializes a new instance of the class. + + + Gets or sets the expression producing the value of the annotation. + + + Represents an EDM annotation with an immediate value. + + + Initializes a new instance of the class. + + + Gets or sets the qualifier used to discriminate between multiple bindings of the same property or type. + + + Gets or sets the element the annotation applies to. + + + Gets or sets the term bound by the annotation. + + + Represents an EDM type assertion expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the expression for which the type is asserted. + + + Gets or sets the asserted type. + + + Represents an EDM multi-value construction expression. + + + Initializes a new instance of the class. + The constructed element values. + + + Adds the element to this expression. + The element being added. + + + Gets or sets the declared type of the collection. + + + Gets the constructed element values. + + + Gets the kind of this expression. + + + Removes the element from this expression. + The element being removed. + + + Represents an EDM entity set reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced entity set. + + + Represents an EDM enumeration member reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced enum member. + + + Represents an EDM function application expression. + + + Initializes a new instance of the class. + + + Adds the argument to this function. + The argument being added. + + + Gets or sets the applied function. + + + Gets the arguments to the function. + + + Gets the kind of this expression. + + + Removes the argument from this function. + The argument being removed. + + + Represents an EDM function reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced function. + + + Represents an EDM if expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the expression to evaluate if evaluates to false. + + + Gets or sets the expression to evaluate if evaluates to true. + + + Gets or sets the test expression. + + + Represents an EDM type test expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the expression whose type is to be tested. + + + Gets or sets the type to be tested against. + + + Represents an EDM labeled expression. + + + Initializes a new instance of the class. + + + Gets or sets the underlying element expression. + + + Gets the expression kind. + + + Gets or sets the label. + + + Represents an EDM labeled expression reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced labeled element. + + + Represents an EDM parameter reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced parameter. + + + Represents an EDM path expression. + + + Initializes a new instance of the class. + + + Adds the segment to this path. + The path segment being added. + + + Gets the kind of this expression. + + + Gets the path as a decomposed qualified name. "A.B.C" is { "A", "B", "C" }. + + + Removes the segment from this path. + The path segment being removed. + + + Represents an EDM property constructor specified as part of a EDM record construction expression. + + + Initializes a new instance of the class. + + + Gets or sets the name of the property. + + + Gets or sets the expression for the value of the property. + + + Represents an EDM property reference expression. + + + Initializes a new instance of the class. + + + Gets or sets the expression for the structured value containing the referenced property. + + + Gets the kind of this expression. + + + Gets or sets the referenced property. + + + Represents an EDM record construction expression. + + + Initializes a new instance of the class. + + + Adds the property to this record. + The property being added. + + + Gets or sets the declared type of the record, or null if there is no declared type. + + + Gets the kind of this expression. + + + Gets the constructed property values. + + + Removes the property from this record. + The property being removed. + + + Represents an EDM value term reference expression. + + + Initializes a new instance of the class. + + + Gets or sets the expression for the structured value containing the referenced term property. + + + Gets the kind of this expression. + + + Gets or sets the optional qualifier. + + + Gets or sets the referenced value term. + + + Represents an EDM binary constant. + + + Initializes a new instance of the class. + Type of the integer. + Integer value represented by this value. + + + Initializes a new instance of the class. + Integer value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM boolean constant. + + + Initializes a new instance of the class. + Type of the boolean. + Boolean value represented by this value. + + + Initializes a new instance of the class. + Boolean value represented by this value. + + + Gets the kind of this expression. + + + Gets a value indicating whether the value of this boolean value is true or false. + + + Gets the kind of this value. + + + Represents an EDM collection value. + + + Initializes a new instance of the class. + A reference to a collection type that describes this collection value + The collection of values stored in this collection value + + + Gets the values stored in this collection. + + + Gets the kind of this value. + + + Represents an EDM datetime constant. + + + Initializes a new instance of the class. + Type of the DateTime. + DateTime value represented by this value. + + + Initializes a new instance of the class. + DateTime value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM datetime with offset constant. + + + Initializes a new instance of the class. + Type of the DateTimeOffset. + DateTimeOffset value represented by this value. + + + Initializes a new instance of the class. + DateTimeOffset value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM decimal constant. + + + Initializes a new instance of the class. + Type of the decimal. + Decimal value represented by this value. + + + Initializes a new instance of the class. + Decimal value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM enumeration type value. + + + Initializes a new instance of the class. + A reference to the enumeration type that describes this value. + The enumeration type value. + + + Initializes a new instance of the class. + A reference to the enumeration type that describes this value. + The underlying type value. + + + Gets or sets the underlying type value of the enumeration type. + + + Gets the kind of this value. + + + Represents an EDM floating point constant. + + + Initializes a new instance of the class. + Type of the floating point. + Floating point value represented by this value. + + + Initializes a new instance of the class. + Floating point value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM guid constant. + + + Initializes a new instance of the class. + Type of the integer. + Integer value represented by this value. + + + Initializes a new instance of the class. + Integer value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM integer constant. + + + Initializes a new instance of the class. + Type of the integer. + Integer value represented by this value. + + + Initializes a new instance of the class. + Integer value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM null. + + + Gets the kind of this expression. + + + Singleton null expression instance. + + + Gets the kind of this value. + + + Represents a value of an EDM property. + + + Initializes a new instance of the EdmPropertyValue class. + Name of the property for which this provides a value. + Value of the property. + + + Gets the name of the property for which this provides a value. + + + Gets the property's value. + + + Represents an EDM string constant. + + + Initializes a new instance of the class. + Type of the string. + String value represented by this value. + + + Initializes a new instance of the class. + String value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM structured value. + + + Initializes a new instance of the EdmStructuredValue class. + Type that describes this value. + Child values of this value. + + + Retrieves the value corresponding to the given property name. Returns null if no such value exists. + The requested value, or null if no such value exists. + The property that describes the value being found. + + + Gets the property values of this structured value. + + + Gets the kind of this value. + + + Represents an EDM time constant. + + + Initializes a new instance of the class. + Type of the Time. + Time value represented by this value. + + + Initializes a new instance of the class. + Time value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM value. + + + Initializes a new instance of the EdmValue class. + Type of the value. + + + Gets {insert text here}. + + + Gets the type of this value. + + + Gets the kind of this value. + + + Represents a reportable error in EDM. + + + Creates a new instance of the class. + The location where the error occurred. + An integer code representing the error. + A human readable message describing the error. + + + Gets an integer code representing the error. + The code representing the error. + + + Gets the location of the error in the file in which it occurred. + The location of the error in the file in which it occurred. + + + Gets a human readable string describing the error. + A human readable string describing the error. + + + Gets a string representation of the error. + A string representation of the error. + + + EdmLib validation error codes + + + + + + References to EDM stream type are not supported before version 3.0. + + + References to EDM spatial types are not supported before version 3.0. + + + An exception was thrown by the underlying xml reader. + + + + + + + + + + + + + + + + + + + + + + + + An XML attribute or element representing EDM type is missing. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The value of the property must not be null. + + + An object with an interface kind property does not implement the interface corresponding to the value of that property. For example this error will be reported for an object that implements interface with kind property reporting .Entity, but does not implement interface. + + + The value of an interface kind property is not semantically valid. A semantically valid model must not contain elements of kind 'None'. + + + An enumeration property must not contain null elements. + + + The value of the enum type property is out of range. + + + If property P1 is a navigation property and P2 is its parnter, then partner property of P2 must be P1. + + + A chain of base types is cyclic. + + + + + + + + + An error occured processing the OnDelete element + + + No complex type with that name exists. + + + + + + Function import specifies an entity set expression which is not supported in this context. Function import entity set expression can be either an entity set reference or a path starting with a function import parameter and traversing navigation properties. + + + + + + + + + + + + Invalid multiplicty of the principal end of a navigation. + + + + + + Invalid multiplicty of the dependent end of a navigation. + + + Open types are supported only in version 1.2 and after version 2.0 + + + Vocabulary annotations are not supported before EDM 3.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A composable function import must have return type. + + + + + + + + + Nullable complex Type not supported in version 1.0 and 2.0. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Could not find a function with this name. + + + + + + + + + + + + The principal end of a referential constraint must be one of the ends of the association that defined the referential constraint. + + + + + + + + + + + + Value terms are not supported before EDM 3.0 + + + + + + + + + + + + + + + + + + Unsupported function import parameter type. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Binary value is invalid. + + + Floating point value is invalid. + + + DateTime value is invalid. + + + DateTimeOffset value is invalid. + + + Decimal value is invalid. + + + Guid value is invalid. + + + The type kind None is not semantically valid. A semantically valid model must not contain elements of type kind None. + + + + + + + + + + + + The IsType expression is invalid because it does not have 1 element. + + + The type name is not fully qualified and not a primitive. + + + The term name is not fully qualified. + + + No model was parsed because no XmlReaders were provided. + + + Model could not be parsed because one of the XmlReaders was null. + + + IsMaxMaxLength cannot be true if MaxLength is non-null. + + + ImmediateValueAnnotation is invalid as an element annotation. + + + The LabeledElement expression is invalid because it does not have 1 element. + + + Could not find a LabeledElement with that name + + + Could not find a enum member with that name + + + The AssertType expression is invalid because it does not have 1 element. + + + Could not find a Parameter with that name + + + A navigation property with = true must point to an optional target. + + + If a navigation property has = true and the target entity type is the same as the declaring type of the property, then the multiplicity of the source of navigation is Zero-Or-One. + + + If a navigation property has = true and the target entity type is defferent than the declaring type of the property, then the multiplicity of the source of navigation is One. + + + Navigation properties with setting are not supported before version 3.0. + + + The annotation target path cannot possibly refer to an annotable element. + + + A nullable type is not valid if a non-nullable type is required. + + + The expression is a primitive constant, and cannot be valid for an non-primitive type. + + + The primitive type is not valid for the requested type. + + + Null is not valid in a non nullable expression. + + + The expression is not valid for the asserted type. + + + A collection expression is not valid for a non-collection type. + + + A record expression is not valid for a non-structured type. + + + The record expression does not have all of the properties required for the specified type. + + + The record expression's type is not open, but the record expression has extra properties. + + + Target has multiple annotations with the same term and same qualifier. + + + Function application has wrong number of arguments for the function being applied. + + + Is it invalid to have multiple using statements with the same alias in a single schema element. + + + A model cannot be serialized to CSDL if it has references to types without fully qualified names. + + + The model could not be serialized because multiple schemas were produced and only a single output stream was found. + + + The Edmx version is not valid. + + + The EdmVersion is not valid. + + + Nothing was written because no schemas were produced. + + + Model has multiple entity containers with the same name. + + + The container name of a container element must be the full name of the container entity container. + + + A primitive constant expression is not valid for a non-primitive type. + + + The value of the integer constant is out of range for the asserted type. + + + The length of the string constant is too large for the asserted type. + + + The length of the binary constant is too large for the asserted type. + + + None is not a valid mode for a function import parameter. + + + A type without other errors must not have kind of none. + + + A primitive type without other errors must not have kind of none. + + + A property without other errors must not have kind of none. + + + A term without other errors must not have kind of none. + + + A schema element without other errors must not have kind of none. + + + An entity container element without other errors must not have kind of none. + + + A binary value must have content. + + + There can only be a single navigation property mapping with containment that targets a particular entity set. + + + The navigation properties partner does not point back to the correct type. + + + An entity set can only have one navigation property with containment. + + + If a navigation property is traversed from an entity set, and then it's partner is traversed from the target of the first mapping, the destination should be the originating entity set. + + + There can only be a single mapping from a given EntitySet with a particular navigation property. + + + An entity set must have a mapping for all of the navigation properties in its element type. + + + Type annotation does not have a property binding for all required properties. + + + Type annotation has a property binding for a non-existant property and its type is not open. + + + Time value is invalid. + + + The primitive type is invalid. + + + An Enum type must have an underlying type of integer. + + + Could not find a term with this name. + + + The principal properties of a referential constraint must match the key of the referential constraint. + + + A direct value annotation with the same name and namespace already exists. + + + AssociationSetEnd cannot infer an entity set because no set exists of the given type. + + + AssociationSetEnd cannot infer an entity set because more than one set exists of the given type. + + + Invalid entity set path. + + + Invalid enum member path. + + + An annotation qualifier must be a simple name. + + + Enum type could not be resolved. + + + Could not find a target with this name. + + + Represents a collection of validation methods. + + + Validates the and all of its properties given certain version. + True if model is valid, otherwise false. + The root of the model to be validated. + The custom rule set to validate against. + The errors encountered while validating the model. + + + Validates the and all of its properties using the current version of the model. If the model has no version, is used. + True if model is valid, otherwise false. + The root of the model to be validated. + The errors encountered while validating the model. + + + Validates the and all of its properties given certain version. + True if model is valid, otherwise false. + The root of the model to be validated. + The version of EDM to validate against. + The errors encountered while validating the model. + + + Collection of extension methods to assert that an expression is of the required type. + + + Determines if the type of an expression is compatible with the provided type + A value indicating whether the expression is valid for the given type or not. + The expression to assert the type of. + The type to assert the expression as. + Errors produced if the expression does not match the specified type. + + + Defines an object as a location of itself. + + + Gets the object. + + + Gets a string representation of the location. + A string representation of the location. + + + Specifies a context that records errors reported by validation rules. + + + Adds an error with the validation context. + The location of the error. + The value representing the error. + The message text describing the error. + + + Adds an error with the validation context. + The error to register. + + + Method returns true if the element is known to have structural errors associated with it. + True if the element has structural errors associated with it. + The element to test. + + + Gets the model being validated. + The model being validated. + + + Contains IsBad() and Errors() extension methods. + + + Gets the errors, if any, that belong to this element or elements that this element contains. For example errors for a structural type include the errors of the type itself and errors of its declared properties. The method does not analyze elements referenced by this element. For example errors of a property do not include errors from its type. + Any errors that belong to this element or elements that element contains. + Reference to the calling object. + + + Returns true if this element contains errors returned by the <see cref="M:Microsoft.Data.Edm.Validation.ValidationExtensionMethods.Errors(Microsoft.Data.Edm.IEdmElement)" /> method. + This element is an invalid element. + Reference to the calling object. + + + Gets the errors, if any, that belong to this type reference or its definition. + Any errors that belong to this type reference or its definition. + The type reference. + + + Represents a semantic validation rule. + + + Creates a new instance of the class. + + + Represents a validation rule that is valid for a specific type. + The type that the rule is valid for. + + + + Built in Edm validation rules + + + Validates that the max length of a binary type is not negative. + + + Validates that IsMaxMaxLength cannot be true if MaxLength is non-null. + + + Validates that all properties of a collection expression are of the correct type. + + + Validates that a complex type is not abstract. + + + Validates that a complex type does not inherit. + + + Validates that if a function import is composable, it must have a return type. + + + Validates that the precision is between 0 and the max precision of the decimal type. + + + Validates that the scale is between 0 and the precision of the decimal type. + + + Validates that no direct value annotations share the same name and namespace. + + + The container name of an entity container element must match the full name of the containing entity container. + + + Validates that there are no duplicate names in an entity container. + + + An entity container element without other errors must not have kind of none. + + + Validates that the entity type wrapped in this entity reference can be found through the model being validated. + + + Validates that an entity set can only have a single navigation property targetting it that has Contains set to true. + + + Validates that the entity type of an entity set can be found from the model being validated. + + + Validates that if a navigation property is traversed to another entity set, and then the navigation properties partner is traversed, the destination will be the source entity set. + + + Validates that no navigation property is mapped to two different entity sets. + + + + Validates that there are not duplicate properties in an entity key. + + + Validates that all parts of an entity key are scalar. + + + Validates that no part of an entity key is a binary primitive type. + + + Validates that a key is not defined if there is already a key in the base type. + + + Validates that no part of an entity key is nullable. + + + Validates that the entity type has a key. + + + Validates that all properties in the key of an entity blong to that entity. + + + + Raises an error if the underlying type of an enum type is not an integer type. + + + Validates that there are not duplicate enum members in an enum. + + + Raises an error if an enum type is found. + + + Validates the types of a function application are correct. + + + Validates that a function does not have multiple parameters with the same name. + + + Validates that if a function is bindable, it must have parameters. + + + Validates that if a function is composable, it is not also sideeffecting. + + + Validates that the entity set of a function import is defined using a path or an entity set reference expression. + + + + Validates that a function is not bindable. + + + Validates that a function import is not composable. + + + Validates that a function import is not sideeffecting. + + + Validates that no function import parameters have mode of none. + + + Validates that the type of a function imports parameter is correct. + + + + Validates that a function import has an allowed return type + + + + Validates that no function parameters are output parameters. + + + + Validates that an if expression has a boolean condition. + + + Validates that an immediate value annotation that is flagged to be serialized as an element can be serialized safely. + + + Validates that an immediate value annotation has a name and a namespace. + + + Validates that there are not duplicate properties in an entity key. + + + Validates every schema element in the current model is unique across all referenced models. + + + Validates every schema element in the current model (except for entity containers) is unique across all referenced models. + + + Validates that an element name matches the allowed pattern of names according to the CSDL spec. + + + Validates that an element name is not too long according to the CSDL spec. + + + Validates that a name is not empty or whitespace. + + + Validates that is not set prior to V3. + + + Validates that the type of a navigation property corresponds to the other end of the association and the multiplicity of the other end. + + + Validates that if the dependent properties are equivalent to the key of the dependent end, the multiplicity of the dependent end cannot be 1 Validates multiplicity of the dependent end according to the following rules: 0..1, 1 - if dependent properties represent the dependent end key. * - if dependent properties don't represent the dependent end key. + + + Validates that all dependent properties of a navigation property belong to the dependent entity type. + + + Validates that the dependent properties of a navigation property contain no duplicates. + + + Validates that the navigation property does not have both a multiplicity of many and an OnDelete operation. + + + Validates that only one end of an association has an OnDelete operation. + + + Validates that all dependent properties are a subset of the dependent entity types key. + + + Validates that the target of a navigation property's partner is the declaring type of the original. + + + Validates multiplicity of the principal end: 0..1 - if some dependent properties are nullable, 1 - if some dependent properties are not nullable. * - not allowed. + + + Validates that each pair of properties between the dependent properties and the principal ends key are of the same type. + + + Validates that if a navigation property has = true and the target entity type is defferent than the declaring type of the property, then the multiplicity of the source of navigation is One. + + + Validates that if a navigation property has = true and the target entity type is the same as the declaring type of the property, then the multiplicity of the source of navigation is Zero-Or-One. This depends on there being a targetting cycle. Because of the rule , we know that either this is always true, or there will be an error + + + Validates that if a navigation property has = true and the target entity type is the same as the declaring type of the property, then the multiplicity of the target of navigation is 0..1 or Many. This depends on there being a targetting cycle. Because of the rule , we know that either this is always true, or there will be an error + + + Open types are supported only in version 1.2 and after version 2.0. + + + A primtive type without other errors must not have kind of none. + + + Validates that if a primitive value declares a type, the value is acceptable for the type. + + + A property without other errors must not have kind of none. + + + Validates that the value of a property value binding is the correct type. + + + Validates that if a value record expression declares a type, the property types are correct. + + + Validates that a row type does not have a base type. + + + Validates that a row type contains at least one property. + + + A schema element without other errors must not have kind of none. + + + Validates that an element namespace matches the allowed pattern of namespaces according to the CSDL spec. + + + Validates that an element namespace is not too long according to the CSDL spec. + + + Validates that an element namespace is not empty or whitespace. + + + Validates that an element namespace is not a reserved system namespace. + + + References to EDM spatial types are not supported before version 3.0. + + + References to EDM stream type are not supported before version 3.0. + + + Validates that the max length of a string is not negative. + + + Validates that IsMaxMaxLength cannot be true if MaxLength is non-null. + + + Validates that the property is of an allowed type. + + + Validates that if the concurrency mode of a property is fixed, the type is primitive. + + + Validates that any property with a complex type is not nullable. + + + Validates that the base type of a complex type is complex, and the base type of an entity type is an entity. + + + Validates that the base type of a structured type can be found from the model being validated. + + + Validates that a type does not have a property with the same name as that type. + + + Validates that the declaring type of a property contains that property. + + + Validates that there are not duplicate properties in a type. + + + Validates that the precision is between 0 and the max precision of the temporal type. + + + A term without other errors must not have kind of none. + + + Validates that a type annotation implements its term type properly. + + + Validates that a vocabulary annotations term can be found through the model containing the annotation. + + + A type without other errors must not have kind of none. + + + Validates that a type reference refers to a type that can be found through the model being validated. + + + Validates that if a value annotation declares a type, the expression for that annotation has the correct type. + + + Validates that a vocabulary annotations term can be found through the model containing the annotation. + + + Value terms are not supported before EDM 3.0. + + + Validates that there are no annotations that share the same term and qualifier. + + + Validates that a vocabulary annotations target can be found through the model containing the annotation. + + + Qualifier must be simple name. + + + Vocabulary annotations are not supported before EDM 3.0. + + + Provides a set of rules to run during validation. + + + Creates a new instance of the class. + The rules to be contained in this ruleset. + + + Initializes a new instance of the ValidationRuleSet class. + Ruleset whose rules should be contained in this set. + Additional rules to add to the set. + + + Gets the default validation ruleset for the given version. + The set of rules to validate that the model conforms to the given version. + The EDM version being validated. + + + Gets all of the rules in this ruleset. + All of the rules in this ruleset. + + + Gets all of the rules in this ruleset. + All of the rules in this ruleset. + + + Defines Edm values + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value with an unknown or error kind. + + + Represents an EDM binary value. + + + Gets the definition of this binary value. + + + Represents an EDM boolean value. + + + Gets a value indicating whether the value of this boolean value is true or false. + + + Represents an EDM collection value. + + + Gets the values stored in this collection. + + + Represents an EDM datetime with offset value. + + + Gets the definition of this value. + + + Represents an EDM datetime value. + + + Gets the definition of this datetime value. + + + Represents an EDM decimal value. + + + Gets the definition of this decimal value. + + + Represents a lazily computed value. + + + Gets the data stored in this value. + + + Represents an EDM enumeration type value. + + + Gets the underlying type value of the enumeration type. + + + Represents an EDM floating point value. + + + Gets the definition of this floating value. + + + Represents an EDM integer value. + + + Gets the definition of this guid value. + + + Represents an EDM integer value. + + + Gets the definition of this integer value. + + + + + Represents a value of an EDM property. + + + Gets the name of the property this value is associated with. + + + Represents an EDM string value. + + + Gets the definition of this string value. + + + Represents an EDM structured value. + + + Finds the value corresponding to the provided property name. + The found property, or null if no property was found. + Property to find the value of. + + + Gets the property values of this structured value. + + + Represents an EDM time value. + + + Gets the definition of this time value. + + + Represents an EDM value. + + + Gets the type of this value. + + + Gets the kind of this value. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.OData.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.OData.dll new file mode 100644 index 0000000..6d9d0b9 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.OData.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.OData.xml b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.OData.xml new file mode 100644 index 0000000..53df6a6 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.OData.xml @@ -0,0 +1,2152 @@ + + + + Microsoft.Data.OData + + + + Represents an interface for synchronous OData request messages. + + + Returns a value of an HTTP header. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Gets or sets the HTTP method used for this request message. + The HTTP method used for this request message. + + + Sets the value of an HTTP header. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the request URL for this request message. + The request URL for this request message. + + + Represents an interface for asynchronous OData request messages. + + + Asynchronously get the stream backing for this message. + The stream for this message. + + + Represents an interface for synchronous OData response messages. + + + Returns a value of an HTTP header. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Sets the value of an HTTP header. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the result status code of the response message. + The result status code of the response message. + + + Represents an interface for asynchronous OData response messages. + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + Supports custom resolution of URLs found in the payload. + + + Implements a custom URL resolution scheme. This method returns null if no custom resolution is desired. If the method returns a non-null URL that value will be used without further validation. + An instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + Represents an OData action. + + + Creates a new instance of the class. + + + Represents the base class for all annotatable types in OData library. + + + Creates a new instance of the class. + + + Gets or sets the annotation by type. + The annotation of type T or null if not present. + The type of the annotation. + + + Sets an annotation of type T. + The annotation to set. + The type of the annotation. + + + Represents an association link. + + + Creates a new instance of the class. + + + Gets or sets the name of the association link. + The name of the associate link. + + + Gets or sets the URI representing the Unified Resource Locator (URL) of the link. + The URI representing the Unified Resource Locator (URL) of the link. + + + Displays a message representing an operation in a batch request. + + + Returns a value of an HTTP header of this operation. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Gets the HTTP method used for this request message. + The HTTP method used for this request message. + + + Implements a custom URL resolution scheme. + An instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + Sets the value of an HTTP header of this operation. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the request URL for this request message. + The request URL for this request message. + + + Displays a message representing an operation in a batch response. + + + Returns a value of an HTTP header of this operation. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Method to implement a custom URL resolution scheme. This method returns null if not custom resolution is desired. If the method returns a non-null URL that value will be used without further validation. + A instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + Sets the value of an HTTP header of this operation. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the result status code of the response message. + The result status code of the response message. + + + Represents a class for reading OData batch messages; also verifies the proper sequence of read calls on the reader. + + + Returns an for reading the content of a batch operation. + A request message for reading the content of a batch operation. + + + Asynchronously returns an for reading the content of a batch operation. + A task that when completed returns a request message for reading the content of a batch operation. + + + Returns an for reading the content of a batch operation. + A response message for reading the content of a batch operation. + + + Asynchronously returns an for reading the content of a batch operation. + A task that when completed returns a response message for reading the content of a batch operation. + + + Reads the next part from the batch message payload. + true if more items were read; otherwise false. + + + Asynchronously reads the next part from the batch message payload. + A task that when completed indicates whether more items were read. + + + The current state of the batch reader. + + + Enumeration with all the states the batch reader can be in. + + + The state the batch reader is in after having been created. + + + The batch reader detected an operation. + + + The batch reader detected the start of a change set. + + + The batch reader completed reading a change set. + + + The batch reader completed reading the batch payload. + + + The batch reader encountered an error reading the batch payload. + + + Writes OData batch messages; also verifies the proper sequence of write calls on the writer. + + + Creates an for writing an operation of a batch request. + The message that can be used to write the request operation. + The Http method to be used for this request operation. + The Uri to be used for this request operation. + + + Creates a message for asynchronously writing an operation of a batch request. + The message that can be used to asynchronously write the request operation. + The HTTP method to be used for this request operation. + The URI to be used for this request operation. + + + Creates a message for writing an operation of a batch response. + The message that can be used to write the response operation. + + + Asynchronously creates an for writing an operation of a batch response. + A task that when completed returns the newly created operation response message. + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + Ends a batch; can only be called after WriteStartBatch has been called and if no other active changeset or operation exist. + + + Asynchronously ends a batch; can only be called after WriteStartBatch has been called and if no other active change set or operation exist. + A task instance that represents the asynchronous write operation. + + + Ends an active changeset; this can only be called after WriteStartChangeset and only once for each changeset. + + + Asynchronously ends an active change set; this can only be called after WriteStartChangeset and only once for each change set. + A task instance that represents the asynchronous write operation. + + + Starts a new batch; can be only called once and as first call. + + + Asynchronously starts a new batch; can be only called once and as first call. + A task instance that represents the asynchronous write operation. + + + Starts a new changeset; can only be called after WriteStartBatch and if no other active operation or changeset exists. + + + Asynchronously starts a new change set; can only be called after WriteStartBatch and if no other active operation or change set exists. + A task instance that represents the asynchronous write operation. + + + Represents the base class for OData collection readers. + + + Creates a new instance of the class. + + + Gets the most recent item that has been read. + The most recent item that has been read. + + + Reads the next item from the message payload. + True if more items were read; otherwise false. + + + Asynchronously reads the next item from the message payload. + A task that when completed indicates whether more items were read. + + + Gets or sets the current state of the reader. + The current state of the reader. + + + Enumerates all the possible states of . + + + The reader is at the start; nothing has been read yet. + + + The reader has started reading and is reading the start element of the collection wrapper. + + + The reader read an item from the collection. + + + The reader has finished reading and is reading the end element of the collection wrapper. + + + The reader has thrown an exception; nothing can be read from the reader anymore. + + + The reader has completed; nothing can be read anymore. + + + OData representation of a top-level collection. + + + Initializes a new instance of the class. + + + The name of the collection (ATOM only). + + + OData representation of a Collection. + + + Initializes a new instance of the class. + + + The items in the bag value. + + + The type of the collection value. + + + Represents the base class for OData collection writers. + + + Creates a new instance of the class. + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + Finishes writing a collection. + + + Asynchronously finish writing a collection. + A task instance that represents the asynchronous write operation. + + + Starts writing an entry. + The collection item to write. + + + Asynchronously start writing a collection item. + A task instance that represents the asynchronous write operation. + The collection item to write. + + + Start writing a collection. + The representing the collection. + + + Asynchronously start writing a collection. + A task instance that represents the asynchronous write operation. + The representing the collection. + + + Represents the OData complex value. + + + Creates a new instance of the class. + + + Gets or sets the properties and values of the complex value. + The properties and values of the complex value. + + + Gets or sets the type of the complex value. + The type of the complex value. + + + Constant values used by the OData or HTTP protocol or OData library. + + + Name of the HTTP content-ID header. + + + Name of the HTTP content type header. + + + Name of the OData 'DataServiceVersion' HTTP header. + + + HTTP method name for DELETE requests. + + + HTTP method name for GET requests. + + + Custom HTTP method name for MERGE requests. + + + HTTP method name for PATCH requests. + + + HTTP method name for POST requests. + + + HTTP method name for PUT requests. + + + Exception type representing exception when Content-Type of a message is not supported. + + + Creates a new instance of the class. + + + Creates a new instance of the class from the specified SerializationInfo and StreamingContext instances. + A SerializationInfo containing the information required to serialize the new ODataException. + A StreamingContext containing the source of the serialized stream associated with the new ODataException. + + + Creates a new instance of the class. + Plain text error message for this exception. + + + Creates a new instance of the class. + Plain text error message for this exception. + Exception that caused this exception to be thrown. + + + Represents an OData entity reference link. + + + Creates a new instance of the class. + + + Gets or sets the URI representing the URL of the referenced entity. + The URI representing the URL of the referenced entity. + + + Represents a collection of entity reference links. + + + Creates a new instance of the class. + + + Represents the optional inline count of the $links collection. + + + Gets or sets the enumerable of instances representing the links of the referenced entities. + The enumerable of instances. + + + Represents the optional next link of the $links collection. + + + Represents a single entity. + + + Creates a new instance of the class. + + + Gets or sets the entity actions. + The entity actions. + + + Gets or sets the association links. + The association links. + + + Gets or sets the link used to edit the entry. + The link used to edit the entry. + + + Gets or sets the entry ETag. + The entry ETag. + + + Gets or sets the entity functions. + The entity functions. + + + Gets or sets the Entry identifier. + The Entry identifier. + + + Gets or sets the default media resource of the media link entry. + The default media resource of the media link entry. + + + Gets or sets the entry properties. + The entry properties. + + + Gets or sets a link that can be used to read the entry. + The link that can be used to read the entry. + + + Gets or sets the type name of the entry. + The type name of the entry. + + + Represents an error payload. + + + Creates a new instance of the class. + + + Gets or sets the error code to be used in payloads. + The error code to be used in payloads. + + + Gets or sets the implementation specific debugging information to help determine the cause of the error. + The implementation specific debugging information. + + + Gets or sets the error message. + The error message. + + + Gets or sets the language for the exception Message. + The language for the exception Message. + + + Represents an in-stream error parsed when reading a payload. + + + Creates a new instance of the class with default values. + + + Creates a new instance of the class with an object. + The instance representing the error read from the payload. + + + Creates a new instance of the class with an error message. + The plain text error message for this exception. + + + Creates a new instance of the class with an error message and an object. + The plain text error message for this exception. + The instance representing the error read from the payload. + + + Creates a new instance of the class with an error message and an inner exception. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + + + Creates a new instance of the class with an error message, an inner exception, and an object. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + The instance representing the error read from the payload. + + + Gets or sets the instance representing the error read from the payload. + The instance representing the error read from the payload. + + + Represents an exception in the OData library. + + + Creates a new instance of the class with default values. + + + Creates a new instance of the class from the specified and instances. + A containing the information required to serialize the new . + A containing the source of the serialized stream associated with the new . + + + Creates a new instance of the class with an error message. + The plain text error message for this exception. + + + Creates a new instance of the class with an error message and an inner exception. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + + + Describes a collection of entities. + + + Creates a new instance of the class. + + + Gets or sets the number of items in the feed. + The number of items in the feed. + + + Gets or sets the URI that identifies the entity set represented by the feed. + The URI that identifies the entity set represented by the feed. + + + Gets or sets the URI representing the next page link. + The URI representing the next page link. + + + Enumerates the format type in connection to processing OData payloads. + + + Initializes a new instance of the class. + + + ATOM format; we also use this for all Xml based formats (if ATOM can't be used). + + + The batch format instance. + + + JSON format + + + The metadata format instance. + + + RAW format; used for raw values. + + + Represents an OData function. + + + Creates a new instance of the class. + + + Contains properties used to implement specific debugging information to help determine the cause of the error. + + + Initializes a new instance of the class with default values. + + + Initializes a new instance of the class with exception object. + The used to create the inner error. + + + Gets or sets the nested implementation specific debugging information. + The nested implementation specific debugging information. + + + Gets or sets the error message. + The error message. + + + Gets or sets the stack trace for this error. + The stack trace for this error. + + + Gets or sets the type name of this error, for example, the type name of an exception. + The type name of this error. + + + Represents the base class for and classes. + + + Initializes a new instance of the class. + + + Quotas to use for limiting resource consumption when reading or writing OData messages. + + + Constructor to create default message quotas for OData readers and writers. + + + Copy constructor. + The instance to copy. + + + The maximum number of entity mapping attributes to be found for an entity type (on the type itself and all its base types). + + + The maximum depth of nesting allowed when reading or writing recursive payloads. + + + The maximum number of operations allowed in a single changeset. + + + The maximum number of top level query operations and changesets allowed in a single batch. + + + The maximum number of bytes that should be read from the message. + + + Represents the reader class used to read all OData payloads (entries, feeds, metadata documents, service documents, and so on). + + + Creates a new for the given request message. + The request message for which to create the reader. + + + Creates a new for the given request message and message reader settings. + The request message for which to create the reader. + The message reader settings to use for reading the message payload. + + + Creates a new for the given request message and message reader settings. + The request message for which to create the reader. + The message reader settings to use for reading the message payload. + The metadata provider to use. + + + Creates a new for the given response message. + The response message for which to create the reader. + + + Creates a new for the given response message and message reader settings. + The response message for which to create the reader. + The message reader settings to use for reading the message payload. + + + Creates a new for the given response message and message reader settings. + The response message for which to create the reader. + The message reader settings to use for reading the message payload. + The metadata provider to use. + + + Creates an to read a batch of requests or responses. + The created batch reader. + + + Asynchronously creates an to read a batch of requests or responses. + A running task for the created batch reader. + + + Creates an to read a collection of primitive or complex values (as result of a service operation invocation). + The created collection reader. + + + Creates an to read a collection of primitive or complex values (as result of a service operation invocation). + The created collection reader. + The expected resource type for the items in the collection. + + + Asynchronously creates an to read a collection of primitive or complex values (as result of a service operation invocation). + A running task for the created collection reader. + + + + Creates an to read an entry. + The created reader. + + + Creates an to read an entry. + The created reader. + The expected entity type for the entry to be read. + + + Asynchronously creates an to read an entry. + A running task for the created reader. + + + + Creates an to read a feed. + The created reader. + + + Creates an to read a feed. + The created reader. + The expected base resource type for the entities in the feed. + + + Asynchronously creates an to read a feed. + A running task for the created reader. + + + + + + Determines the potential payload kinds and formats of the payload being read and returns it. + The set of potential payload kinds and formats for the payload being read by this reader. + + + Determines the potential payload kinds and formats of the payload being read and returns it. + The set of potential payload kinds and formats for the payload being read by this reader. + + + + implementation to cleanup unmanaged resources of the reader. + + + Reads a singleton result of a $links query (entity reference link) as the message payload. + The entity reference link read from the message payload. + + + Asynchronously reads a singleton result of a $links query (entity reference link) as the message payload. + A running task representing the reading of the entity reference link. + + + Reads the result of a $links query (entity reference links) as the message payload. + The entity reference links read as message payload. + + + Asynchronously reads the result of a $links query as the message payload. + A task representing the asynchronous reading of the entity reference links. + + + Reads an as the message payload. + The read from the message payload. + + + Asynchronously reads an as the message payload. + A task representing the asynchronous operation of reading the error. + + + Reads the message body as metadata document. + Returns . + + + Reads an as message payload. + The property read from the payload. + + + Reads an as message payload. + The property read from the payload. + The expected resource type of the property to read. + + + Asynchronously reads an as message payload. + A task representing the asynchronous operation of reading the property. + + + + Reads a service document payload. + The service document read. + + + Asynchronously reads a service document payload. + A task representing the asynchronous operation of reading the service document. + + + Reads a single value as the message body. + The read value. + The expected resource type for the value to be read; null if no expected type is available. + + + + Represents the configuration settings for OData message readers. + + + Initializes a new instance of the class with default values. + + + + Gets or sets the document base URI (used as base for all relative URIs). If this is set, it must be an absolute URI. + The base URI. + + + Gets or sets a value that indicates whether the reader checks for valid XML characters. + true if the reader checks for valid XML characters; otherwise, false. + + + Gets or sets a value that indicates whether the message stream will not be disposed after finishing writing with the message. + true if the message stream will not be disposed after finishing writing with the message; otherwise false. The default value is false. + + + Gets or sets a value that indicates whether not to convert all primitive values to the type specified in the payload. + true if primitive values and report values are not converted; false if all primitive values are converted to the type specified in the payload. The default value is false. + + + + + + + + The maximum OData protocol version the reader should accept and understand. + + + Quotas to use for limiting resource consumption when reading an OData message. + + + The behavior the reader should use when it finds undeclared property. + + + Represents the writer class used to write all OData payloads (entries, feeds, metadata documents, service documents, and so on.). + + + Creates a new for the given request message. + The request message for which to create the writer. + + + Creates a new for the given request message and message writer settings. + The request message for which to create the writer. + The message writer settings to use for writing the message payload. + + + Creates a new for the given request message and message writer settings. + The request message for which to create the writer. + The message writer settings to use for writing the message payload. + The metadata provider to use. + + + Creates a new for the given response message. + The response message for which to create the writer. + + + Creates a new for the given response message and message writer settings. + The response message for which to create the writer. + The message writer settings to use for writing the message payload. + + + Creates a new for the given response message and message writer settings. + The response message for which to create the writer. + The message writer settings to use for writing the message payload. + The metadata provider to use. + + + Creates an to write a batch of requests or responses. + The created batch writer. + + + Asynchronously creates an to write a batch of requests or responses. + A running task for the created batch writer. + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + The created collection writer. + + + Asynchronously creates an to write a collection of primitive or complex values (as result of a service operation invocation). + A running task for the created collection writer. + + + Creates an to write an entry. + The created writer. + + + Asynchronously creates an to write an entry. + A running task for the created writer. + + + Creates an to write a feed. + The created writer. + + + Asynchronously creates an to write a feed. + A running task for the created writer. + + + Creates an to write a parameter payload. + The created parameter writer. + The function import whose parameters will be written. + + + Asynchronously creates an to write a parameter payload. + The created parameter writer. + The function import whose parameters will be written. + + + + implementation to cleanup unmanaged resources of the writer. + + + Writes a singleton result of a $links query as the message payload. + The entity reference link to write as the message payload. + + + Asynchronously writes a singleton result of a $links query as the message payload. + A running task representing the writing of the link. + The link result to write as the message payload. + + + Writes the result of a $links query as the message payload. + The entity reference links to write as message payload. + + + Asynchronously writes the result of a $links query as the message payload. + A task representing the asynchronous writing of the entity reference links. + The entity reference links to write as message payload. + + + Writes an as the message payload. + The error to write. + A flag indicating whether debug information (for example, the inner error from the ) should be included in the payload. This should only be used in debug scenarios. + + + Asynchronously writes an as the message payload. + A task representing the asynchronous operation of writing the error. + The error to write. + A flag indicating whether debug information (for example, the inner error from the ) should be included in the payload. This should only be used in debug scenarios. + + + Writes the metadata document as the message body. + + + Writes an as the message payload. + The property to write. + + + Asynchronously writes an as the message payload. + A task representing the asynchronous operation of writing the property. + The property to write + + + Writes a service document with the specified as the message payload. + The default workspace to write in the service document. + + + Asynchronously writes a service document with the specified as the message payload. + A task representing the asynchronous operation of writing the service document. + The default workspace to write in the service document. + + + Writes a single value as the message body. + The value to write. + + + Asynchronously writes a single value as the message body. + A running task representing the writing of the value. + The value to write. + + + Represents the configuration settings for OData message writers. + + + Initializes a new instance of the class with default settings. + + + + Gets or sets the document base URI which is used as base for all relative URIs. + The document base URI which is used as base for all relative URIs. + + + Gets or sets a value that indicates whether the reader checks for valid XML characters. + true if the reader checks for valid XML characters; otherwise, false. + + + Gets or sets a value that indicates whether the message stream will not be disposed after finishing writing with the message. + true if the message stream will not be disposed after finishing writing with the message; otherwise false. The default value is false. + + + + + + Gets or sets a value to indicate whether the writer uses indentation. + true if the writer uses indentation; otherwise, false. + + + Quotas to use for limiting resource consumption when writing an OData message. + + + Sets the format to be used when writing the payload. This will automatically set a compatible content type header. + The format to use for writing the payload. + + + Sets the acceptable media types and character sets from which the content type will be computed when writing the payload. + The acceptable media types used to determine the content type of the message. This is a comma separated list of content types as specified in RFC 2616, Section 14.1 + The acceptable charsets to use to determine the encoding of the message. This is a comma separated list of charsets as specified in RFC 2616, Section 14.2 + + + Gets or sets the OData protocol version to be used for writing payloads. + The OData protocol version to be used for writing payloads. + + + Represents a single link. + + + Initializes a new instance of the class. + + + Gets or sets a value that indicates whether the navigation link represents a collection or an entry. + true if the navigation link represents a collection; false if the navigation represents an entry. + + + Gets or sets the name of the link. + The name of the link. + + + Gets or sets the URI representing the Unified Resource Locator (URL) of the link. + The URI representing the Unified Resource Locator (URL) of the link. + + + Represents a function or an action. + + + Initializes a new instance of the class. + + + The URI that identifies the or the . + + + Gets or sets the URI to invoke the or the . + The URI to invoke the or the . + + + Gets or sets a human-readable description of the or the . + A human-readable description of the or the . + + + Base class for OData parameter readers. + + + Initializes a new instance of the class. + + + Creates an to read the collection value when the state is ODataParameterReaderState.Collection. + An to read the collection value when the state is ODataParameterReaderState.Collection. + + + Gets the name of the current parameter that is being read. + The name of the current parameter that is being read. + + + Reads the next parameter from the message payload. + true if more items were read; otherwise false. + + + Asynchronously reads the next item from the message payload. + A task that when completed indicates whether more items were read. + + + Gets the current state of the reader. + The current state of the reader. + + + Gets the value of the current parameter that is being read. + The value of the current parameter that is being read. + + + Enumeration of all possible states of an . + + + The reader is at the start; nothing has been read yet. + + + The reader read a primitive or a complex parameter. + + + The reader is reading a collection parameter. + + + The reader has thrown an exception; nothing can be read from the reader anymore. + + + The reader has completed; nothing can be read anymore. + + + Base class for OData collection writers. + + + Initializes a new instance of the class. + + + Creates an to write the value of a collection parameter. + The newly created . + The name of the collection parameter to write. + + + + Flushes the write buffer to the underlying stream. + + + Asynchronously flushes the write buffer to the underlying stream. + A task instance that represents the asynchronous operation. + + + Finish writing a parameter payload. + + + Asynchronously finish writing a parameter payload. + A task instance that represents the asynchronous write operation. + + + Start writing a parameter payload. + + + Asynchronously start writing a parameter payload. + A task instance that represents the asynchronous write operation. + + + Start writing a value parameter. + The name of the parameter to write. + The value of the parameter to write. + + + Asynchronously start writing a value parameter. + A task instance that represents the asynchronous write operation. + The name of the parameter to write. + The value of the parameter to write. + + + Enumerates the different kinds of payloads that ODatLib can write. + + + Specifies a payload kind for writing a feed. + + + Specifies a payload kind for writing an entry. + + + Specifies a payload kind for writing a property. + + + Specifies the payload kind for writing an entity reference link. + + + Specifies the payload kind for writing entity reference links. + + + Specifies a payload kind for writing a raw value. + + + Specifies the payload kind for writing a binary value. + + + Specifies a payload kind for writing a collection. + + + Specifies a payload kind for writing a service document. + + + Specifies a payload kind for writing a metadata document. + + + Specifies a payload kind for writing an error. + + + Specifies the payload kind for writing a batch. + + + Specifies a payload kind for writing a parameter. + + + Specifies an unknown format. + + + Represents the set of information available for payload kind detection. + + + The encoding derived from the content type or the default encoding. + The encoding derived from the content type or the default encoding. + + + The being used for reading the message. + + + The for the payload. + + + The possible payload kinds based on content type negotiation. + + + Represents the result of running payload kind detection for a specified payload kind and format. + + + The format for the detected payload kind. + + + The detected payload kind. + + + Represents a single property of an entry. + + + Initializes a new instance of the class. + + + Gets or sets the property name. + The property name. + + + Gets or sets the property value. + The property value. + + + Represents the base class for OData readers. + + + Initializes a new instance of the class. + + + Gets the most recent that has been read. + The most recent that has been read. + + + Reads the next from the message payload. + true if more items were read; otherwise false. + + + Asynchronously reads the next from the message payload. + A task that when completed indicates whether more items were read. + + + Gets the current state of the reader. + The current state of the reader. + + + Enumeration of all possible states of an . + + + The reader is at the start; nothing has been read yet. + + + The start of a feed has been read. + + + The end of a feed has been read. + + + The start of an entry has been read. + + + The end of an entry has been read. + + + The start of a navigation link has been read. + + + The end of a navigation link has been read. + + + An entity reference link was read. + + + The reader has thrown an exception; nothing can be read from the reader anymore. + + + The reader has completed; nothing can be read anymore. + + + Represents a class that contains collection of information about a resource in a workspace of a data service. + + + Initializes a new instance of the class. + + + Gets or sets the URI representing the Unified Resource Locator (URL) to the collection. + The URI representing the Unified Resource Locator (URL) to the collection. + + + Represents a media resource. + + + Initializes a new instance of the class. + + + Gets or sets the content media type. + The content media type. + + + Gets or sets the edit link for media resource. + The edit link for media resource. + + + Gets or sets the media resource ETag. + The media resource ETag. + + + Gets or sets the read link for media resource. + The read link for media resource. + + + Behavior of readers when reading undeclared property. + + + The default behavior - the reader will fail if it finds a property which is not declared by the model and the type is not open. + + + The reader will skip reading the property if it's not declared by the model. + + + The reader will read and report link properties which are not declared by the model. + + + Represents the utility methods used with the OData library. + + + Checks whether the annotatable has an HttpMethod annotation. + The (non-null) value of the HttpMethod annotation of the annotatable or null if no such annotation exists. + The containing the annotation. + The to check. + + + Checks whether the annotatable has a MIME type annotation. + The (non-null) value of the MIME type annotation of the annotatable or null if no MIME type annotation exists. + The containing the annotation. + The to check. + + + Returns the format used by the message reader for reading the payload. + The format used by the messageReader for reading the payload. + The to get the read format from. + + + Checks whether the entityType has a default stream. + true if the entity type has a default stream; otherwise false. + The containing the annotation. + The to check. + + + Gets the value of IsAlwaysBindable annotation on the functionImport. + The value of the annotation if it exists; false otherwise. + The containing the annotation. + The to get the annotation from. + functionImport + + + Checks whether the entityContainer is the default entity container. + true if the entityContainer is the default container; otherwise false. + The containing the annotation. + The to check. + + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + The containing the annotations. + The to process. + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + The containing the annotations. + The to process. + The maximum number of entity mapping attributes to be found for an entity type (on the type itself and all its base types). + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + The to process. + The maximum number of entity mapping attributes to be found for an entity type (on the type itself and all its base types). + + + Gets the reader behavior for null property value on the specified property. + The behavior to use when reading null value for this property. + The model containing the annotation. + The property to check. + + + + + + Turns the in-memory representations of the supported, OData-specific annotations into their serializable form. + The containing the annotations. + The to process. + + + Adds or removes a default stream to/from the entityType. + The containing the annotation. + The to modify. + true to add a default stream to the entity type; false to remove an existing default stream (if any). + + + Sets the content-type and data service version headers on the message used by the message writer. + The message writer to set the headers for. + The kind of payload to be written with the message writer. + + + Sets the HttpMethod annotation of the annotatable to httpMethod. + The contatining the annotation. + The to modify. + The HttpMethod value to set as annotation value; if null, an existing annotation will be removed. + + + Sets the value of IsAlwaysBindable annotation of the functionImport to isAlwaysBindable + The containing the annotation. + The to set the annotation on. + The value of the annotation to set. + functionImport + + + Adds or removes a default stream to/from the entityContainer. + The containing the annotation. + The to modify. + true to set the entityContainer as the default container; false to remove an existing default container annotation (if any). + + + Sets the MIME type annotation of the annotatable to mimeType. + The containing the annotation. + The to modify. + The MIME type value to set as annotation value; if null, an existing annotation will be removed. + + + Adds a transient annotation to indicate how null values for the specified property should be read. + The containing the annotations. + The to modify. + The new behavior for reading null values for this property. + + + + + Specifies the OData protocol version. + + + The version 1.0. + + + The version 2.0. + + + The version 3.0. + + + Represents the workspace of a data service. + + + Initializes a new instance of the class. + + + Gets or sets the set of collections in the workspace. + The set of collections in the workspace. + + + Represents a base class for OData writers. + + + Initializes a new instance of the class. + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + Finishes the writing of a feed, an entry, or a navigation link. + + + Asynchronously finish writing a feed, entry, or navigation link. + A task instance that represents the asynchronous write operation. + + + Writes an entity reference link, which is used to represent binding to an existing resource in a request payload. + The entity reference link to write. + + + Asynchronously writes an entity reference link, which is used to represent binding to an existing resource in a request payload. + A task instance that represents the asynchronous write operation. + The entity reference link to write. + + + Starts the writing of an entry. + The entry or item to write. + + + Starts the writing of a feed. + The feed or collection to write. + + + Starts the writing of a navigation link. + The navigation link to write. + + + Asynchronously start writing an entry. + A task instance that represents the asynchronous write operation. + The entry or item to write. + + + Asynchronously start writing a feed. + A task instance that represents the asynchronous write operation. + The feed or collection to write. + + + Asynchronously start writing a navigation link. + A task instance that represents the asynchronous write operation. + The navigation link to writer. + + + Represents an annotation which stores a list of projected properties for an entry. + + + Initializes a new instance of the class. + The enumeration of projected property names. + + + Annotation which stores the type name to serialize. + + + Initializes a new instance of the class. + + + Gets or sets the type name to serialize, for the annotated item. + The type name to serialize, for the annotated item. + + + Atom metadata description for a categories element (app:categories). + + + Initializes a new instance of the class. + + + Gets or sets the atom category elements inside this categories element. + The atom category elements inside this categories element. + + + Gets or sets a value that indicates whether the list of categories is fixed or an open set. + true if the list of categories is fixed; false if the list of categories is an open set. + + + Gets or sets the URI of the category document. + The URI of the category document. + + + Gets or sets the URI indicating the scheme of the categories without a scheme. + The URI indicating the scheme of the categories without a scheme. + + + Represents an Atom metadata description for a category. + + + Initializes a new instance of the class. + + + Gets or sets a human-readable label for display in user interfaces. + A human-readable label. + + + Gets or sets the URI that indicates the scheme of the category. + The URI that indicates the scheme of the category. + + + Gets or sets the string value identifying the category. + The string value identifying the category. + + + Represents a type for Atom Syndication Format (Atom) entry annotationsAsArray. + + + Initializes a new instance of the class. + + + Gets or sets a collection of authors of an entry. + A collection of authors of an entry. + + + Gets or sets the categories of an entry. + The categories of an entry. + + + The ATOM metadata for the category element which stores the type name of the entry. + + + Gets or sets a collection of contributors of an entry. + A collection of contributors of an entry. + + + Gets or sets an Atom link metadata for the edit link. + An Atom link metadata for the edit link. + + + Gets or sets the collection of all Atom link information except for the self/edit links and the navigation property links. + The collection of all Atom link information except for the self/edit links and the navigation property links. + + + Gets or sets the date and time when the entry was published. + The date and time when the entry was published. + + + Gets or sets the rights text of an entry. + The rights text of an entry. + + + Gets or sets an Atom link metadata for the self link. + An Atom link metadata for the self link. + + + Gets or sets the source of an entry and if the entry was copied from a different stream the property contains the feed metadata of the original feed. + The source of an entry. + + + Gets or sets the summary of the entry. + The summary of the entry. + + + Gets or sets the title of the entry. + The title of the entry. + + + Gets or sets the date and time of last update to the source. + The date and time of last update to the source. + + + Represents a type for Atom Syndication Format (Atom) feed annotationsAsArray. + + + Initializes a new instance of the class. + + + Gets or sets a collection of authors of a feed. + A collection of authors of a feed. + + + Gets or sets the categories of a feed. + The categories of a feed. + + + Gets or sets a collection of contributors of a feed. + A collection of contributors of a feed. + + + Gets or sets the generator of a feed. + The generator of a feed. + + + Gets or sets the URI of the icon for a feed. + The URI of the icon for a feed. + + + Gets or sets the collection of all Atom link information except for the next page and self links. + The collection of all Atom link information except for the next page and self links. + + + Gets or sets the URI for the feed's logo. + The URI for the feed?s logo. + + + The next page link of the feed. This link should point to the next page of results. + + + Gets or sets the rights text of a feed. + The rights text of a feed. + + + Gets or sets the self link of the feed. This link should point to the source of the feed. + The self link of the feed. + + + Gets or sets the identifier for the feed if used as metadata of an Atom:source element. + The identifier for the feed if used as metadata of an Atom:source element. + + + Gets or sets the subtitle of a feed. + The subtitle of a feed. + + + Gets or sets the title of the feed. + The title of the feed. + + + Gets or sets the date and time of last update to the source. + The date and time of last update to the source. + + + Represents an Atom metadata description of a content generator. + + + Initializes a new instance of the class. + + + Gets or sets the human readable name of the generator of the content. + The human readable name of the generator of the content. + + + Gets or sets the (optional) URI describing the generator of the content. + The (optional) URI describing the generator of the content. + + + Gets or sets the (optional) version of the generator. + The (optional) version of the generator. + + + Represents an Atom metadata description for a link. + + + Initializes a new instance of the class. + + + Gets or sets the URI of the link. + The URI of the link. + + + Gets or sets the language tag (for example, en-US) of the resource pointed to by the link. + The language tag of the resource pointed to by the link. + + + Gets or sets a hint at the length of the content returned from the link. + A hint at the length of the content returned from the link. + + + Gets or sets the media type of the data returned by the link. + The media type of the data returned by the link. + + + Gets or sets the link's relation type. + The link’s relation type. + + + Gets or sets a human-readable description of the link. + A human-readable description of the link. + + + Represents an Atom metadata description for a person. + + + Creates a new instance of the class. + + + Gets or sets an email address associated with the person. + An email address associated with the person. + + + Gets or sets the name of the person (required). + The name of the person (required). + + + + Converts a string to an instance. + The instance created for name. + The name used in the person metadata. + + + Gets or sets an IRI associated with the person. + An IRI associated with the person. + + + Represents an Atom metadata description for a collection (in a workspace). + + + Creates a new instance of the class. + + + Gets or sets the accept range of media types for this collection. + The accept range of media types for this collection. + + + Gets or sets the categories for this collection. + The categories for this collection. + + + Gets or sets the title of the collection. + The title of the collection. + + + Represents an Atom metadata for stream reference values. + + + Creates a new instance of the class. + + + Gets or sets an Atom link metadata for the edit link. + An Atom link metadata for the edit link. + + + Gets or sets an Atom link metadata for the self link. + An Atom link metadata for the self link. + + + Represents an Atom metadata description for a text construct (plain text, html or xhtml). + + + Creates a new instance of the class. + + + Gets or sets the kind of the text construct (plain text, html, xhtml). + The kind of the text construct. + + + + Gets or sets the text content. + The text content. + + + Converts a string to an instance. + The instance created for text. + The to convert to an . + + + Specifies the different kinds of text content in Atom metadata. + + + The plain text. + + + The html text. + + + The xhtml text. + + + Represents an Atom metadata description for a workspace. + + + Creates a new instance of the class. + + + Gets or sets the title of the workspace. + The title of the workspace. + + + Represents the Atom-specific extension methods. + + + Determines an extension method to get the for an annotatable association link. + An instance or null if no annotation of that type exists. + The association link to get the annotation from. + + + Determines an extension method to get the for an annotatable entry. + An instance or null if no annotation of that type exists. + The entry instance to get the annotation from. + + + Determines an extension method to get the for an annotatable feed. + An instance or null if no annotation of that type exists. + The feed instance to get the annotation from. + + + Determines an extension method to get the for an annotatable navigation link. + An instance or null if no annotation of that type exists. + The navigation link instance to get the annotation from. + + + Determines an extension method to get the for an annotatable (resource) collection. + An instance or null if no annotation of that type exists. + The (resource) collection to get the annotation from. + + + Determines an extension method to get the for an annotatable workspace. + An instance or null if no annotation of that type exists. + The workspace to get the annotation from. + + + Represents an annotation to hold information for a particular property. + + + Creates a new instance of the class. + + + Defines the behavior for readers when reading property with null value. + + + Represents an enumerable of that new items can be added to. + + + Creates a new instance of the class. + + + Creates a new instance of the class. + An enumerable of used to initialize the instance. This argument must not be null. + + + Adds the mapping to the list of all mappings represented by this class. + The to add to the enumerable represented by this class. + + + Returns an enumerator for the instances in this enumerable. + An enumerator for the instances in this enumerable. + + + Returns a non-generic enumerator for the instances in this enumerable. + A non-generic enumerator for the instances in this enumerable. + + + Behavior of readers when reading property with null value. + + + The default behavior - this means validate the null value against the declared type and then report the null value. + + + This means to not report the value and not validate it against the model. + + + This means to report the value, but not validate it against the model. + + + Class to represent a null value with or without type information for URI paremeters. + + + Initializes a new instance of the class. + + + String representation of the type of this null value. 'null' indicates that no type information was provided. + + + URI Utility methods. + + + Converts the given value to a corresponding CLR type. Expects the value to have already been properly unescaped from an actual Uri. + A CLR object that the value represents. + Value from a Uri to be converted. + Version to be compliant with. + + + Converts the given value to a corresponding CLR type. Expects the value to have already been properly unescaped from an actual Uri. + A CLR object that the value represents. + Value from a Uri to be converted. + Version to be compliant with. + Optional model to perform verification against. + Optional IEdmTypeReference to perform verification against. Callers must provide a model containing this type if it is specified. + + + Converts the given object to a string for use in a Uri. Does not perform any of the escaping that provides. No type verification is used. + A string representation of value for use in a Url. + Value to be converted. + Version to be compliant with. + + + Converts the given object to a string for use in a Uri. Does not perform any of the escaping that provides. Will perform type verification based on the given model if possible. + A string representation of value for use in a Url. + Value to be converted. + Version to be compliant with. + Optional model to perform verification against. + + + Attribute that specifies a custom mapping between properties of an entity type and elements of an entry in an Open Data Protocol (OData) feed returned by the data service.  + + + Creates a new instance of the . + The name of the property, as string, of the entity type that is mapped to the specified property of the feed item. + A value that represents the element in the feed to which to map the property. This value must be set to None if the is not null. + A value that identifies the format of the content to display in the feed. + Boolean value that is true when the property being mapped must appear both in its mapped-to location and in the content section of the feed. + + + Creates an instance of the to map a property to a custom feed element. + The name of the property of the entity type, as string, that is mapped to the specified property in the feed. + The name of the target, as string, in the resulting feed to which the property is mapped. + This parameter, together with , specifies the namespace in which the element exists. + Specifies the namespace URI of the element, as string, specified by the property. + Boolean value that is true when the property being mapped must appear both in its mapped-to location and in the content section of the feed. + + + Gets a Boolean value that indicates whether a property value should be repeated both in the content section of the feed and in the mapped location. + A value that is true when the property is mapped into both locations in the feed; otherwise, false. + + + Gets the name of the property of the syndication item that will be mapped to the specified element of the feed. + String value that contains property name. + + + Gets a string value that, together with , specifies the namespace in which the element exists. + String value that contains the target namespace prefix. + + + Gets a string value that specifies the namespace URI of the element specified by the property. + String that contains the namespace URI. + + + Gets the name of the custom target in the feed to which the property is mapped. + String value with target XML element or attribute. + + + Gets the syndication item in the entry targeted by the mapping. + A value that is the target of the mapping. + + + Gets the type of content of the property mapped by . + A string that identifies the type of content in the feed element. + + + Enumeration type that is used to identify the syndication item element or attribute in the Open Data Protocol (OData) feed to which an entity property is mapped. + + + A custom property element. + + + The atom:email child element of the atom:author element. + + + The atom:name child element of the atom:author element. + + + The atom:uri child element of the atom:author element. + + + The atom:email child element of the atom:contributor element. + + + The atom:name child element of the atom:contributor element. + + + The atom:uri child element of the atom:contributor element. + + + The atom:updated element. + + + The atom:published element. + + + The atom:rights element. + + + The atom:summary element. + + + The atom:title element. + + + The label attribute of the atom:category element. + + + The scheme attribute of the atom:category element. + + + The term attribute of the atom:category element. + + + The href attribute of the atom:link element. + + + The hreflang attribute of the atom:link element. + + + The length attribute of the atom:link element. + + + The rel attribute of the atom:link element. + + + The title attribute of the atom:link element. + + + The type attribute of the atom:link element. + + + Enumeration used to identify text content of syndication item. + + + Plain text content. + + + HTML content. + + + XHTML content. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.Client.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.Client.dll new file mode 100644 index 0000000..bed06b7 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.Client.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.Client.xml b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.Client.xml new file mode 100644 index 0000000..233f8c6 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.Client.xml @@ -0,0 +1,1473 @@ + + + + Microsoft.Data.Services.Client + + + + Holds information about a ServiceAction. + + + Initializes a new instance of the class. + + + Represents a parameter associated with a service action. + + + Instantiates a new BodyOperationParameter + The name of the body operation parameter. + The value of the body operation parameter. + + + Results returned after a call to when enumerating operation responses returned by the class. + + + Gets the or modified by a change operation. + An or modified by a change operation. + + + Represents errors that occur during execution of WCF Data Services client applications. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Initializes a new instance of the class. + The string value that contains the error message. + The System.Exception object that contains the inner exception. + The integer value that contains status code. + + + Initializes a new instance of the class. + The string value that contains the error message. + The integer value that contains status code. + + + [SECURITY CRITICAL] Initializes a new instance of the class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Gets the HTTP error status code returned after . + An integer value that represents the exception. + + + Represents a dynamic entity collection that provides notifications when items get added, removed, or when the list is refreshed. + An entity type. + + + Creates a new instance of the class. + + + Creates a new instance of the class based on query execution. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + + + Creates a new instance of the class based on query execution and with the specified tracking mode. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + + + Creates a new instance of the class a based on query execution and with the supplied change method delegates. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Creates a new instance of the class that uses the specified . + The used to track changes to objects in the collection. + + + Creates a new instance of the class a based on query execution, with the supplied change method delegates, and that uses the supplied . + The used to track items in the collection. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Creates a new instance of the class with the supplied change method delegates and that uses the specified . + The used to track items in the collection. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Removes all items from the collection, and optionally detaches all the items from the . + When true, detaches all items from the . + + + Gets a continuation object that is used to return the next set of paged results. + A object that contains the URI to return the next set of paged results. + + + Disables tracking of all items in the collection. + + + Adds a specified item to the collection at the specified index. + Index at which to add the item. + The item to add. + + + Loads a collection of entity objects into the collection. + Collection of entity objects to be added to the . + + + Loads a single entity object into the collection. + Entity object to be added. + + + The represents the runtime context of the data service. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified . + An absolute URI that identifies the root of a data service. + When the is null. + If the is not an absolute URI -or-If the is a well formed URI without a query or query fragment. + + + Initializes a new instance of the class with the specified and targeting the specific . + An absolute URI that identifies the root of a data service. + A value that is the maximum protocol version that the client understands. + + + Gets or sets whether the client requests that the data service return entity data in the response message to a change request. + A object that determines whether to request a response form the data service. + + + Adds the specified link to the set of objects the is tracking. + The source object for the new link. + The name of the navigation property on the source object that returns the related object. + The object related to the source object by the new link. + When , , or are null. + If a link already exists.-or-If either the or objects are in a or state.-or-If is not a collection. + + + Adds the specified object to the set of objects that the is tracking. + The name of the entity set to which the resource will be added. + The object to be tracked by the . + When or is null. + When is empty.-or-When does not have a key property defined. + When the entity is already being tracked by the context. + + + Adds a related object to the context and creates the link that defines the relationship between the two objects in a single request. + The parent object that is being tracked by the context. + The name of the navigation property that returns the related object based on an association between the two entities. + The related object that is being added. + + + Gets a value that indicates whether the is currently applying changes to tracked objects. + Returns true when changes are currently being applied; otherwise returns false. + + + Notifies the to start tracking the specified link that defines a relationship between entity objects. + The source object in the new link. + The name of the property on the source object that represents the link between the source and target object. + The target object in the link that is bound to the source object specified in this call. The target object must be of the type identified by the source property or a subtype. + When , , or is null. + When the link between the two entities already exists.-or-When or is in an or state. + + + Notifies the to start tracking the specified resource and supplies the location of the resource within the specified resource set. + The name of the set that contains the resource. + The resource to be tracked by the . The resource is attached in the Unchanged state. + When or is null. + When is an empty string.-or-When the does not have a key property defined. + When the is already being tracked by the context. + + + Notifies the to start tracking the specified resource and supplies the location of the resource in the specified resource set. + The string value that contains the name of the entity set to which to the entity is attached. + The entity to add. + An etag value that represents the state of the entity the last time it was retrieved from the data service. This value is treated as an opaque string; no validation is performed on it by the client library. + When is null.-or-When is null. + When is an empty string.-or-When the supplied object does not have a key property. + When the supplied object is already being tracked by the context + + + Gets the absolute URI identifying the root of the target data service. + An absolute URI that identifies the root of a T data service. + + + Asynchronously sends a request to the data service to retrieve the next page of data in a paged query result. + An that represents the status of the operation. + A object that represents the next page of data to return from the data service. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + The type returned by the query. + + + Asynchronously sends the request so that this call does not block processing while waiting for the results from the service. + An object that is used to track the status of the asynchronous operation. + The URI to which the query request will be sent. The URI may be any valid data service URI; it can contain $ query parameters. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + The type returned by the query. + + + + + + + Asynchronously submits a group of queries as a batch to the data service. + An object that is used to track the status of the asynchronous operation. + The delegate that is called when a response to the batch request is received. + User-defined state object that is used to pass context data to the callback method. + The array of query requests to include in the batch request. + + + Asynchronously gets the binary data stream that belongs to the specified entity, by using the specified message headers. + An object that is used to track the status of the asynchronous operation. + The entity that has a the binary data stream to retrieve. + Instance of the class that contains settings for the HTTP request message. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + Any of the parameters supplied to the method is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary data stream. + + + Asynchronously gets a named binary data stream that belongs to the specified entity, by using the specified message headers. + An object that is used to track the status of the asynchronous operation. + The entity that has the binary data stream to retrieve. + The name of the binary stream to request. + Instance of the class that contains settings for the HTTP request message. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Asynchronously loads the value of the specified property from the data service. + An IAsyncResult that represents the status of the asynchronous operation. + The entity that contains the property to load. + The name of the property on the specified entity to load. + The delegate called when a response to the request is received. + The user-defined state object that is used to pass context data to the callback method. + + + Asynchronously loads the next page of related entities from the data service by using the supplied query continuation object. + An that represents the status of the operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entity data to return from the data service. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Asynchronously loads a page of related entities from the data service by using the supplied next link URI. + An object that is used to track the status of the asynchronous operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + The URI used to load the next results page. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Asynchronously submits the pending changes to the data service collected by the since the last time changes were saved. + An IAsyncResult that represents the status of the asynchronous operation. + The delegate to call when the operation is completed. + The user-defined state object that is used to pass context data to the callback method. + + + Asynchronously submits the pending changes to the data service collected by the since the last time changes were saved. + An that represents the status of the asynchronous operation. + The options for how the client can save the pending set of changes. + The delegate to call when the operation is completed. + The user-defined state object that is used to pass context data to the callback method. + + + Attempts to cancel the operation that is associated with the supplied object. + The object from the operation being canceled. + + + Creates a data service query for data of a specified generic type. + A new instance that represents a data service query. + A string that resolves to a URI. + The type returned by the query + + + Gets or sets the authentication information that is used by each query created by using the object. + The base authentication interface for retrieving credentials for Web client authentication. + + + Gets or sets the XML namespace for data items, not metadata items, of an Atom payload. + A string representing the XML namespace for data items of a payload in the ATOM format. + + + Changes the state of the link to deleted in the list of links being tracked by the . + The source object in the link to be marked for deletion. + The name of the navigation property on the source object that is used to access the target object. + The target object involved in the link that is bound to the source object. The target object must be of the type identified by the source property or a subtype. + When , , or is null. + When or is in a or state.-or-When is not a collection. + + + Changes the state of the specified object to be deleted in the . + The tracked entity to be changed to the deleted state. + When is null. + When the object is not being tracked by the . + + + Removes the entity from the list of entities that the is tracking. + Returns true if the specified entity was detached; otherwise false. + The tracked entity to be detached from the . + When is null. + + + Removes the specified link from the list of links being tracked by the . + Returns true if the specified entity was detached; otherwise false. + The source object participating in the link to be marked for deletion. + The name of the property on the source object that represents the source in the link between the source and the target. + The target object involved in the link that is bound to the source object. The target object must be of the type identified by the source property or a subtype. + When or are null. + When is an empty string. + + + + Called to complete the . + The results returned by the query operation. + + object. + The type returned by the query. + When is null. + When did not originate from this instance. -or- When the method was previously called. + When an error is raised either during execution of the request or when it converts the contents of the response message into objects. + When the data service returns an HTTP 404: Resource Not Found error. + + + Called to complete the . + The DataServiceResult object that indicates the result of the batch operation. + An that represents the status of the asynchronous operation. + + + Called to complete the asynchronous operation of retrieving a binary data stream. + An instance of which contains the response stream along with its metadata. + The result from the operation that contains the binary data stream. + + + Called to complete the operation. + The response to the load operation. + An that represents the status of the asynchronous operation. + + + Called to complete the operation. + A object that indicates the result of the batch operation. + An that represents the status of the asynchronous operation. + + + Gets a list of all the resources currently being tracked by the . + A list of objects that represent all the resources currently being tracked by the . + + + Sends a request to the data service to retrieve the next page of data in a paged query result. + The response that contains the next page of data in the query result. + A object that represents the next page of data to return from the data service. + The type returned by the query. + + + Sends a request to the data service to execute a specific URI. + The results of the query operation. + The URI to which the query request will be sent. The URI may be any valid data service URI. Can contain $ query parameters. + The type that the query returns. + When a response is not received from a request to the . + When is null. + When is not a valid URI for the data service. + When an error is raised either during execution of the request or when it converts the contents of the response message into objects. + When the data service returns an HTTP 404: Resource Not Found error. + + + + + + + Submits a group of queries as a batch to the data service. + The response to the batch operation. + Array of objects that make up the queries. + + + Gets the for the supplied entity object. + The instance for the , or null if an does not exist for the object. + The object for which to return the entity descriptor. + + + Gets the for a specific link that defines the relationship between two entities. + The instance for the specified relationship, or null if a does not exist for the relationship. + Source object in the link + The name of the navigation property on the object that returns the related object. + The related entity. + + + Gets a URI of the location of .edmx metadata. + A URI that identifies the location of the metadata description, in .edmx format, for the data service identified by the base URI that is passed to the constructor. + + + Gets the binary data stream that belongs to the specified entity. + An instance of that represents the response. + The entity that has the binary stream to retrieve. + The is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary stream. + + + Gets binary data stream for the specified entity by using the specified message headers. + An instance of that represents the response. + The entity that has the binary stream to retrieve. + Instance of class that contains settings for the HTTP request message. + + is null.-or- is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary stream. + + + Gets the binary data stream that belongs to the specified entity, by using the specified Content-Type message header. + An instance of that represents the response. + The entity that has the binary data stream to retrieve. + The Content-Type of the binary data stream requested from the data service, specified in the Accept header. + + is null.-or- is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related stream. + + + Gets a named binary data stream that belongs to the specified entity, by using the specified Content-Type message header. + An instance of that represents the response. + The entity that has the binary data stream to retrieve. + The name of the binary stream to request. + Instance of class that contains settings for the HTTP request message. + + + Gets the URI that is used to return a binary data stream. + The read URI of the binary data stream. + The entity that has a related binary stream to retrieve. + If the entity specified is null. + The is not tracked by this . + + + Gets the URI that is used to return a named binary data stream. + The read URI of the binary data stream. + The entity that has the named binary data stream to retrieve. + The name of the stream to request. + + + Gets or sets whether the properties read from the type must be mapped to properties on the client-side type. + A Boolean value that indicates whether the properties read from the type must be mapped to properties on the client-side type. + + + Gets or sets whether an exception is raised when a 404 error (resource not found) is returned by the data service. + When set to true, the client library returns an empty set instead of raising a when the data service returns an HTTP 404: Resource Not Found error. + + + Gets the collection of all associations or links currently being tracked by the object. + A collection of objects that represent all associations or links current being tracked by the current being tracked by the object. + + + Loads deferred content for a specified property from the data service. + The response to the load operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + + + Loads the next page of related entities from the data service by using the supplied query continuation object. + The response that contains the next page of related entity data. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entities to load from the data service. + When is in the or state. + + + Loads the next page of related entities from the data service by using the supplied generic query continuation object. + The response that contains the next page of related entity data. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entities to load from the data service. + Element type of collection to load. + When is in the or state. + + + Loads a page of related entities by using the supplied next link URI. + An instance of that contains the results of the request. + The entity that contains the property to load. + The name of the property of the specified entity to load. + The URI that is used to load the next results page. + When is in a or state. + + + Gets the maximum version of the Open Data Protocol (OData) that the client is allowed to use. + The maximum version of OData that the client is allowed to use. + + + Gets or sets the synchronization option for receiving entities from a data service. + One of the members of the enumeration. + + + Occurs after entity data has been completely read into the entity object. + + + Gets or sets the delegate method that is used to resolve the entity set URI when the value cannot be determined from an edit-link or self-link URI. + A value that is a delegate that takes a and returns a value. + + + Gets or sets a function to override the default type resolution strategy used by the client library when you send entities to a data service. + Returns a string that contains the name of the . + + + Gets or sets a function that is used to override the default type resolution option that is used by the client library when receiving entities from a data service. + A function delegate that identifies an override function that is used to override the default type resolution option that is used by the client library. + + + Saves the changes that the is tracking to storage. + A that contains status, headers, and errors that result from the call to . + + + Saves the changes that the is tracking to storage. + A that contains status, headers, and errors that result from the call to . + A member of the enumeration that specifies the materialization option. + + + Gets or sets the values that are used by the method. + The current options for the save changes operation. + + + Occurs when a new has been created. + + + + Notifies the that a new link exists between the objects specified and that the link is represented by the property specified by the parameter. + The source object for the new link. + The property on the source object that identifies the target object of the new link. + The child object involved in the new link that is to be initialized by calling this method. The target object must be a subtype of the type identified by the parameter. If is set to null, the call represents a delete link operation. + When , or are null. + When the specified link already exists.-or-When the objects supplied as or are in the or state.-or-When is not a navigation property that defines a reference to a single related object. + + + Sets a binary data stream for the specified entity, with the specified headers in the request message. + The entity to which the binary stream belongs. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + An instance of the class that contains settings for the HTTP request message. + Any of the parameters supplied to the method are null. + The is not being tracked by this instance. -or-The has the applied. + + + Sets a binary data stream that belongs to the specified entity, with the specified Content-Type and Slug headers in the request message. + The entity to which the data stream belongs. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + The Content-Type header value for the request message. + The Slug header value for the request message. + Any of the parameters supplied to the method are null. + The is not being tracked by this instance. -or-The entity has the applied. + + + Sets a named binary data stream that belongs to the specified entity, with the specified headers in the request message. + The entity to which the binary stream belongs. + The name of the binary stream to save. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + An instance of the class that contains settings for the HTTP request message. + + + The entity to which the binary stream belongs. + The name of the binary stream to save. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + The Content-Type header value for the request message. + + + Gets or sets the time-out option (in seconds) that is used for the underlying HTTP request to the data service. + An integer that indicates the time interval (in seconds) before time-out of a service request. + + + Test retrieval of an entity being tracked by the by reference to the URI of the entity. + If an entity is found at , the entity is returned in the out parameter and true is returned. If no entity is found, false is returned. + The URI of the tracked entity to be retrieved. + The entity to be retrieved. + The type of the entity. + When is null. + + + Retrieves the canonical URI associated with the specified entity, if available. + Returns true if the canonical URI is returned in the out parameter. If the specified entity is not tracked by the or is in the added state, no URI is available and false is returned. + The entity identified by the . + The URI of the entity. + When is null. + + + Gets or sets the URI used to indicate what type scheme is used by the service. + A object that contains the type scheme. + + + Changes the state of the specified object in the to . + The tracked entity to be assigned to the state. + When is null. + When is in the state. + + + Gets or sets a Boolean value that indicates whether to use post tunneling. + A Boolean value that indicates whether to use post tunneling. + + + Occurs after an entity has been fully serialized into XML in a request message. + + + An abstract class that represents a single query request to WCF Data Services.  + + + Asynchronously sends a request to execute the data service query. + An object that is used to track the status of the asynchronous operation. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Called to complete the asynchronous operation of executing a data service query. + An that contains the results of the query operation. + The result from the operation that contains the query results. + When the data service returns an HTTP 404: Resource Not Found error. + + + Executes the query against the data service. + An that contains the results of the query operation. + When the data service returns an HTTP 404: Resource Not Found error. + + + Represents an expression that contains the query to the data service. + An object that represents the query. + + + Represents the query provider instance. + An representing the data source provider. + + + Gets the object that can be used to iterate through the collection returned by the query. + An enumerator over the query results. + + + Represents a single query request to a data service. + Type of results returned by the query. + + + Creates a new with the query option set in the URI generated by the returned query. + A new query that includes the requested query option appended to the URI of the supplied query + The string value that contains the name of the query string option to add. + The object that contains the value of the query string option. + + + Starts an asynchronous network operation that executes the query represented by this object instance. + An that represents the status of the asynchronous operation. + The delegate to invoke when the operation completes. + User defined object used to transfer state between the start of the operation and the callback defined by . + + + Returns the type of the object used in the template to create the instance. + Returns representing the type used in the template when the query is created. + + + Ends an asynchronous query request to a data service. + Returns an that contains the results of the query operation. + The pending asynchronous query request. + + + Executes the query and returns the results as a collection that implements IEnumerable. + An in which represents the type of the query results. + When the data service returns an HTTP 404: Resource Not Found error. + + + Expands a query to include entities from a related entity set in the query response, where the related entity is of a specific type in a type hierarchy. + Returns a that with the expand option included. + A lambda expression that indicates the navigation property that returns the entity set to include in the expanded query. + Target type of the last property on the expand path. + + + Expands a query to include entities from a related entity set in the query response. + A new query that includes the requested $expand query option appended to the URI of the supplied query. + The expand path in the format Orders/Order_Details. + + + Represents an expression containing the query to the data service. + A object representing the query. + + + Executes the query and returns the results as a collection. + A typed enumerator over the results in which represents the type of the query results. + + + Requests that the count of all entities in the entity set be returned inline with the query results. + A new object that has the inline count option set. + + + Represents the query provider instance. + A representing the data source provider. + + + Get the URI for the query. + The URI of the request. + + + Executes the query and returns the results as a collection. + An enumerator over the query results. + + + Represents the URI of the query to the data service. + A URI as string that represents the query to the data service for this instance. + + + Encapsulates a URI that returns the next page of a paged WCF Data Services query result. + + + Gets the URI that is used to return the next page of data from a paged query result. + A URI that returns the next page of data. + + + Returns the next link URI as a string. + A string representation of the next link URI. + + + Encapsulates a URI that returns the next page of a paged WCF Data Services query result.  + The type of continuation token. + + + Exception that indicates an error occurred loading the property value from the data service. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.The string value that the contains error message. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. The string value that contains the error message. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. The inner exception object. + + + Initializes a new instance of the class. + The string value that contains the error message. + The inner exception object. + The object. + + + Gets the that indicates the exception results. + A object that indicates the exception results. + + + Represents request objects submitted as a batch to WCF Data Services. + + + Gets the type of object submitted as a batch to the data service. + Type object. + + + Gets the URI of the request object submitted to a data service. + URI of the request object. + + + Represents request objects submitted as a batch to the data service. + An entity type. + + + Initializes a new instance of the class. + The URI object that contains the request string. + + + Gets the type of the object used to create the instance. + A value that indicates the type of data returned. + + + Gets the URI object that contains the request string. + A object that contains the request string. + + + Represents the URI of the query to the data service. + The requested URI as a value. + + + Represents additional metadata that is included in a request message to WCF Data Services. + + + Creates a new instance of the class. + + + Gets or sets the Accept header of the request message. + The value of the Accept header. + + + Gets or sets the Content-Type header of the request message. + The value of the Content-Type header. + + + Gets the headers in the request message. + The headers in the request message. + + + Gets or sets the value of the Slug header of the request message. + A value that is the Slug header of the request. + + + Represents the error thrown if the data service returns a response code less than 200 or greater than 299, or the top-level element in the response is <error>. This class cannot be inherited. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.The error message text. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Initializes a new instance of the class. + Error message text. + Exception object that contains the inner exception. + + object. + + + Gets the response as a object. + A object. + + + Represents the response to operations sent to the data service as a result of calling . + + + The headers from an HTTP response associated with a batch request. + An object containing the name-value pairs of an HTTP response. + + + The status code from an HTTP response associated with a batch request. + An integer based on status codes defined in Hypertext Transfer Protocol. + + + Gets an enumerator that enables retrieval of responses to operations being tracked by objects within the . + An enumerator over the response received from the service. + + + Gets a Boolean value that indicates whether the response contains multiple results. + A Boolean value that indicates whether the response contains multiple results. + + + Gets an enumerator that enables retrieval of responses to operations being tracked by objects within the . + An enumerator over the response received from the service. + + + Determines whether the client requests that the data service return inserted or updated entity data as an entry in the response message. + + + The Prefer header is not included in the request, which is the default behavior. + + + Requests that the data service returns a copy of the inserted or changed entity as an entry in the body of the response message. + + + Request that the data service not return a copy of the inserted or changed entity as an entry in the body of the response message. + + + Represents the URL of a binary resource stream. + + + Gets or sets the MIME Content-Type of the binary resource stream. + The Content-Type value for the stream. + + + Gets or sets the URI used to edit the binary resource stream. + The URI used to edit the stream. + + + The eTag value that is used to determine concurrency for a binary resource stream. + The value of the eTag header for the stream. + + + The name of the binary resource stream. + The name of the binary resource stream. + + + Occurs when a property value changes. + + + The URI that returns the binary resource stream. + The URI of the stream. + + + Represents a response from WCF Data Services that contains binary data as a stream. + + + Gets the Content-Disposition header field for the response stream. + The contents of the Content-Disposition header field. + + + Gets the content type of the response stream. + The content type of the response stream. + + + Releases all resources used by the current instance of the class. + + + Gets the collection of headers from the response. + The headers collection from the response message as a object. + + + Gets the binary property data from the data service as a binary stream. + The stream that contains the binary property data. + When the is already disposed. + + + Abstract class from which is derived. + + + When overridden in a derived class, gets the state of the object at the time this instance was constructed. + An of the object returned at the time this instance was constructed. + + + Encapsulates the arguments of a delegate + + + The context that is associated with the entity object that has changed. + The context that is tracking the changed object. + + + The entity object that has changed. + The changed object. + + + The name of the property on the entity object that references the target object. + The name of the changed property. + + + The object that is currently referenced by the changed property on the entity object. + The current value that references a target entity. + + + The entity set of the source object. + An entity set name. + + + The entity set to which the target entity object belongs + An entity set name. + + + Encapsulates the arguments of a delegate. + + + A value that indicates how the collection was changed. + A value that indicates how the collection was changed. + + + The that has changed. + A reference to the collection that has changed. + + + The associated with the that has changed. + The context associated with the collection that has changed + + + The navigation property on the source object that references the collection that has changed. + The navigation property name. + + + The source object that references the target object in the collection by using a navigation property. + The source object. + + + The entity set of the source object. + An entity set name. + + + The entity object in the collection that has changed. + The changed entity object in the collection. + + + The entity set name of the object in the collection. + An entity set name. + + + Description of modifications done to entities by operations returned in a . + + + Gets or sets the URI that modifies the entity. + The edit link URI for the entity resource. + + + Gets or sets the URI that modifies the binary property data of the entity. + The property contains the edit-media link URI for the Media Resource that is associated with the entity, which is a Media Link Entry. + + + Gets the entity that contains the update data. + An object that contains update data. + + + Gets an eTag value that indicates the state of data targeted for update since the last call to . + A string value that indicates the state of data. + + + Gets or sets the URI that is the identity value of the entity. + The property corresponds to the identity element of the entry that represents the entity in the Atom response. + + + Returns a collection of links that are the relationships in which the entity participates. + A of objects that represents links in which the entity participates. + + + + Gets the parent entity that is related to the entity. + An object that is the parent entity in the relationship link. + + + Gets the name of the property of the entity that is a navigation property and links to the parent entity. + The name of the parent property. + + + Gets or sets the URI that accesses the binary property data of the entity. + A URI that accesses the binary property as a stream. + + + Gets or sets the URI that is used to return the entity resource. + A URI that returns the entity. + + + Gets or sets the name of the type in the data source to which the entity is mapped. + A string that is the name of the data type. + + + Returns a collection of named binary data streams that belong to the entity. + A of objects that are the named binary data streams that belong to the entity. + + + Gets the eTag for the media resource associated with an entity that is a media link entry. + A string value that indicates the state of data. + + + Represents the enumeration that identifies the state of an entity being tracked by the . + + + The entity was detached since the last call to . + + + The entity is unchanged since the last call to . + + + The entity was added since the last call to . + + + The entity was deleted since the last call to . + + + The entity was modified since the last call to . + + + Holds information about a ServiceFunction. + + + Initializes a new instance of the class. + + + IODataRequestMessage interface implementation. + + + Returns the value of the header with the given name. + Returns the value of the header with the given name. + Name of the header. + + + Gets the stream to be used to write the request payload. + Stream to which the request payload needs to be written. + + + Returns the collection of request headers. + + + Returns the underlying HttpWebRequest + + + Returns the method for this request. + + + Sets the value of the header with the given name. + Name of the header. + Value of the header. + + + Returns the request url. + + + Response from an Invoke call. + + + Consutrcts an InvokeResponse identical to an OperationResponse. + The HTTP headers. + + + Provides a description of modifications done to entities by operations returned in a . + + + A source entity in a link returned by a . + + . + + + The identifier property of the source entity in a link returned by a . + The string identifier of an identity property in a source entity. + + + The source entity in a link returned by a . + + . + + + Encapsulates information about a link, or relationship, between entities. + + + + The name of the link. + The name of the link. + + + The URI that is the navigation property representation of the link. + The navigation link URI. + + + Signifies that the specified class is to be treated as a media link entry. + + + Creates a new instance of . + A string value that identifies the property that holds media data. + + + The name of the property on the class that holds the media, usually binary data. + A string value that identifies the property that holds media data. + + + Determines the synchronization option for sending or receiving entities to or from WCF Data Services.  + + + Append new entities only. Existing entities or their original values will not be modified. No client-side changes are lost in this merge. This is the default behavior. + + + All current values on the client are overwritten with current values from the data service regardless of whether they have been changed on the client. + + + Current values that have been changed on the client are not modified, but any unchanged values are updated with current values from the data service. No client-side changes are lost in this merge. + + + Objects are always loaded from persisted storage. Any property changes made to objects in the object context are overwritten by the data source values. + + + Annotates a property on a class that has been annotated with the . + + + Creates a new instance of the MimeTypePropertyAttribute. + A string that contains the name of the new property attribute. + A string that contains the Mime type of the new property attribute. + + + Gets the name of the MimeTypePropertyAttribute. + A string that contains the name of the property attribute. + + + Gets the Mime type of the MimeTypePropertyAttribute + A string that contains the Mime type of the property attribute. + + + Holds information about a service operation. + + + Identifies the service operation. + + + The URI to invoke the service operation. + + + Human-readable description of the service operation. + + + Represents a parameter passed to a service action, service function or a service operation. when it is Executed. + + + Instantiates a new OperationParameter + The name of the operation parameter. + The value of the operation parameter. + + + The name of the operation parameter. + + + The value of the operation parameter. + + + Abstract class that represents the response of a single query or create, update, or delete operation. + + + Gets error thrown by the operation. + An object that contains the error. + + + When overridden in a derived class, contains the HTTP response headers associated with a single operation. + + object that contains name value pairs of headers and values. + + + When overridden in a derived class, gets or sets the HTTP response code associated with a single operation. + Integer value that contains response code. + + + Represents the responses to a . + + + Gets a object containing the URI that is used to retrieve the next results page. + An object containing the URI that is used to return the next results page. + + + Gets a object that contains the URI that is used to retrieve the next page of related entities in the specified collection. + A continuation object that points to the next page for the collection. + The collection of related objects being loaded. + The type of the items in the collection. + + + Gets a object containing the URI that is used to retrieve the next page of related entities in the specified collection. + A continuation object that points to the next page for the collection. + The collection of related objects being loaded. + + + Executes the and returns items. + The enumerator to a collection of items. + + + + + + Gets the that generates the items. + A object. + + + The server result set count value from a query, if the query has requested the value. + The return value can be either a zero or positive value equal to the number of entities in the set on the server. + Thrown when the count tag is not found in the response stream. + + + Represents the responses to a . + + + + Gets a object that contains the URI that is used to retrieve the next results page. + An object that contains the URI that is used to return the next results page. + + + Executes the and gets items. + An enumerator to a collection of items. + + + The server result set count value from a query, if the query has requested the value. + The return value can be either zero or a positive value equal to the number of entities in the set on the server. + + + Gives access to the entity and an object that represents an Atom entry. is used with the and events. + + + Gets the base URI base of the entry or feed. + Returns . + + + Gets an entry or feed data represented as an . + + + + + + Gets the object representation of data returned from the property. + + representation of the property. + + + Indicates change options when is called. + + + Pending changes are saved by using multiple requests to the server, but the operation stops on the first failure (default). + + + All pending changes are saved in a single batch request. + + + Pending changes are saved by using multiple requests to the server, and the operation continues after an error occurs. + + + Pending updates are made by replacing all values of the entity in the data source with values from the updated entity. + + + + + + Event args for the SendingRequest2 event. + + + The request header collection. + + + Returns true if this event is fired for request within a batch, otherwise returns false. + + + The web request reported through this event. The handler may modify or replace it. + + + Used with the event to provide access to the instance that the client is about to send to the target data service. + + + Gets or sets the instance about to be sent by the client library to the data service. + + . + + + Gets the collection protocol headers that are associated with the request to the data service. + A collection of protocol headers that are associated with the request. + + + Contains information about a named binary resource stream. + + + The that represents the entity to which the named resource stream belongs. + The of the entity. + + + The that represents the binary resource stream. + Returns . + + + Determines whether changes that are made to a are tracked. + + + Changes made to items in the are not tracked automatically by the client. + + + Changes to items in the are automatically tracked by the client. + + + Represents a parameter associated with a service operation or a service function. + + + Instantiates a new UriOperationParameter + The name of the uri operation parameter. + The value of the uri operation parameter. + + + Asynchronously loads items into the collection, when it represents the navigation property of an entity. + When the collection does not belong to a parent entity.-or-When the parent entity is not tracked by the .-or-When a previous call to is not yet complete. + + + Asynchronously loads the collection by executing a . + The that, when executed, returns the entities to load into the collection. + When query is null or not a . + When a previous call to is not yet complete. + + + Occurs when an asynchronous load operation completes. + + + Loads the next page of data into the collection. + A value that is true when the has a continuation token; otherwise false. + + + Gets a value that indicates the type of HTTP implementation to use when accessing the data service. + A value that indicates the HTTP implementation to use when accessing the data service. + + + Gets or sets whether default credentials are used to authenticate requests to the data service. + true when the default credentials should be used; otherwise false. + + + Executes the query and returns the result as a collection. + An enumerator over the results of the query. + + + Represents the type of HTTP implementation to use when accessing the data service. + + + The client automatically determines the HTTP implementation to use. This is the recommended setting. + + + A Silverlight client HTTP implementation is used. + + + An XMLHTTP implementation is used. + + + Used as the class for the event. + + + Gets the response to an asynchronous load operation. + A that represents the response to a load operation. + + + Marks a class as an entity type in WCF Data Services. + + + Creates a new instance of the class. + + + Denotes the key property or properties of an entity. + + + Initializes a new instance of the class. + The string that contains name of the key attribute. + + + Initializes a new instance of the class. + An array of string values that contain key attribute names. + + + Gets the names of key attributes. + String value that contains names of key attributes. + + + Represents the versions of the Open Data Protocol (OData) that the data service may support. + + + Version 1 of the OData protocol. + + + Version 2 of the OData protocol. + + + Version 3 of the OData protocol. + + + Indicates the entity set to which a client data service class belongs. + + + Creates a new instance of the . + The entity set to which the class belongs. + + + Gets the entity set to which the class belongs. + The entity set as string value. + + + Indicates that a class that is an entity type has a default binary data stream. + + + Creates a new instance of the class. + + + Indicates that a class that is an entity type has a related named binary stream. + + + Creates a new instance of the class. + The name of a binary stream that belongs to the attributed entity. + + + The name of a binary stream that belongs to the attributed entity. + The name of the binary stream. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.dll new file mode 100644 index 0000000..a9add63 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.xml b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.xml new file mode 100644 index 0000000..fb94e7f --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.Data.Services.xml @@ -0,0 +1,2578 @@ + + + + Microsoft.Data.Services + + + + The on a method is used to process updates on the specified entity set name. + + + Creates a new change interceptor for an entity set specified by the parameter . + The name of the entity set that contains the entity to which the interceptor applies. + + + Gets the name of the entity set to which the interceptor applies. + The string value that represents entity set name. + + + The main entry point for developing an Open Data Protocol (OData) data service by using WCF Data Services. + Type that defines the data service. + + + Creates a new data service that deploys data of the type indicated by the template class. + + + Attaches the data service host to the data service identified by the parameter . + An instance of . + + + Creates a data source of the template class that will be used by the data service. + An instance of the data source. + + + Gets the data source instance currently being used to process the request. + The data source instance for the service. + + + Called when an exception is raised while processing a request. + Exception arguments. + + + Called before processing each request. For batch requests, it is called one time for the top batch request and one time for each operation in the batch. + + that contains information about the request. + + + Gets an object that defines the events for the data service processing pipeline. + A object that is used to define events for the data service processing pipeline. + + + Processes an HTTP request. + + + Processes an HTTP request. + Response message. + The body of the HTTP request. + + + Adds settings that define behavior to a custom data service. + + + Gets or sets whether the server will accept requests with filters that contain all or any expressions. + A Boolean value that is true when the server accepts all or any expressions; otherwise false. + + + Gets or sets whether requests with the $count path segment or the $inlinecount query options are accepted. + true if count requests are supported; otherwise false. + + + Gets or sets whether projection requests should be accepted. + true if projection requests are supported; otherwise false. + + + Gets or sets whether spatial literal values are supported in the URI. + A boolean value that is true when spatial literals are supported in the URI; otherwise false. + + + Get or sets whether relationship links are included in responses from the data service. + A value that is true when relationship links are returned; otherwise false. + + + Gets or sets whether to invoke change interceptors when a link is deleted. + A value that is true when interceptors should be invoked; otherwise false. + + + Gets or sets the maximum protocol version that is supported by the response sent by the data service. + A that is the maximum version allowed in the response. + + + Get or sets whether to use the order of key properties as defined in the metadata of an Entity Framework or reflection provider when constructing an implicit OrderBy query. + Returns that is true when the order of key properties is inferred from the provider metadata and false when an alphabetical order is used. + + + Manages the configuration of WCF Data Services. + + + Builds the annotation models to be applied to the data model of the provider. + Delegate the + + + Gets a object that defines additional behaviors of the data service. + A object. + + + Gets or sets whether the data model is validated before it is written as a response to a request to the $metadata endpoint. + Returns true when metadata validation is disabled; otherwise false. + + + Registers a data type with the data service runtime so that it can be used by a custom data service provider. + The namespace-qualified name of the type that is enabled for use with the custom data service provider. + + + Gets or sets whether the data service runtime should convert the type that is contained in the payload to the actual property type that is specified in the request. + A Boolean value that indicates whether to perform the conversion. + + + Gets or sets the maximum number of change sets and query operations that are allowed in a single batch. + A value that is the maximum number of change sets. + + + Gets or set the maximum number of changes that can be included in a single change set. + The maximum number of changes allowed. + + + Gets or sets the maximum number of related entities that can be included in a single request by using the $expand operator. + The maximum number of related entities. + + + Get or sets the maximum number of related entities that can be included in an $expand path in a single request. + The maximum depth of an $expand path. + + + Get or sets the maximum number of objects to insert that can be contained in a single POST request. + The maximum number of objects. + + + Get or sets the maximum number of items in each returned collection. + The maximum number of items. + + + Adds a type to the list of types that are recognized by the data service. + Type to add to the collection of known types. + + + Sets the permissions for the specified entity set resource. + Name of the entity set for which to set permissions. + Access rights to be granted to this resource, passed as an value. + + + Sets the maximum page size for an entity set resource. + Name of entity set resource for which to set the page size. + Page size for the entity set resource that is specified in . + + + Sets the permissions for the specified service action. + Name of the service action for which to set permissions. + Access rights to be granted to this action, passed as a value. + + + Sets the permissions for the specified service operation. + Name of the service operation for which to set permissions. + Access rights to be granted to this resource, passed as a value. + + + Gets or sets whether verbose errors should be returned by the data service. + Whether verbose errors are returned. + + + Represents an instance of the class with a specified message that describes the error. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class. + The HTTP status code returned by the exception. + The error message for the exception. + + + Initializes a new instance of the class. + The HTTP status code of the exception. + The string value that contains the error code. + The string value that contains the error message. + The string value that indicates the language of the error message. + The exception that is the cause of the current exception. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. + + + Gets the error code. + The integer value that represents the error code. + + + [SECURITY CRITICAL] Gets data on the object that caused the exception. + + . + + . + + + Gets the error message language. + The string value that represents the message language. + + + Gets the HTTP status code returned by the exception. + HTTP status code for the exception. + + + The WCF Data Services class derived from used to instantiate data services. + + + Instantiates for WCF Data Services. + Identifies the WCF Data Services to the host. + The URI of the host. + + + The class used by the infrastructure of WCF Data Services to connect to Windows Communication Foundation (WCF).  + + + Creates a new instance of DataServiceHostFactory. + + + Creates a new from the URI. + New . + Specifies the type of WCF service to host. + An array of base addresses for the service. + + + Represents the current operation being processed. + + + Get the request URI for the current operation. + The of the operation. + + + Gets the base service URI for the request. + The base of the operation. + + + + Gets a value that indicates whether the current operation is part of a batch request. + true when the operation is part of a batch request; otherwise false. + + + Gets the request headers for the current operation. + A object that contains the request headers. + + + Gets the HTTP request method for the operation + The HTTP request method. + + + Gets the response headers for the current operation. + A object that contains the response headers. + + + Gets or sets the status code of the response. + The status code of the operation response. + + + Defines the events for the data service processing pipeline. + + + Creates a new instance. + + + Occurs after the change set has been processed. + + + Occurs after the request has been processed. + + + Occurs before the change set is processed. + + + Occurs before the request is processed. + + + Event argument class for events. + + + Gets the context of the operation that raised the event. + A that is the operation context. + + + An enumeration used to define access rights to data that is deployed by WCF Data Services. + + + Denies all rights to access data. + + + Authorization to read single data items. + + + Authorization to read sets of data. + + + Authorization to create new data items in data sets. + + + Authorization to replace data. + + + Authorization to delete data items from data sets. + + + Authorization to merge data. + + + Authorization to read data. + + + Authorization to write data. + + + Authorization to create, read, update, and delete data. + + + This attribute on an entity type is used to specify the properties that determine changes in content. + + + Initializes a new instance of the class. + The string value containing properties used in eTag value. + + + Initializes a new instance of the class. + String value containing properties used in eTag value. + + + Gets the names of properties used in the . + String value containing property names. + + + The segment of a query that indicates whether data should be returned inline instead of as deferred content. + + + Initializes an object with the specified property name and a filtering expression, possibly null. + The name of the property to be expanded. + The filter option in the query to which the expand segment applies. + + + Gets the property to be expanded. + The property to expand. + + + The filter option in the query to which the expand segment applies. + An expression that specifies the filter on target data. + + + A Boolean value that indicates whether the expand statement is used with a filter expression. + True or false. + + + Gets the maximum number of results expected. + The integer value that indicates maximum number of results. + + + The name of the property to be expanded. + A string value containing the name of the property. + + + A Boolean value that indicates whether the path includes a filter option on target data. + True if any of the segments in the path has a filter; false otherwise. + The enumeration of segments to check for filters. + + + The segments of a query that can be expanded by the $expand clause that follows a query. + + + Creates a collection of expand segments for a query. + + + Initializes a new collection of expand segments that is empty and has the specified initial capacity. + The number of expand segments that the new collection can initially store. + + + Boolean value that indicates whether segments to be expanded include a filter clause. + Boolean value that indicates whether segments to be expanded include a filter clause. + + + Specifies details of an exception that has occurred and the details of the associated HTTP response. + + + Gets or sets the exception that will be processed and returned in the response. + The exception that will be processed and returned in the response. + + + Gets the response content type. + The string value that indicates the response format. + + + Gets the status code that will be sent back in the HTTP header section of the response when an error occurs on the data service. + An integer value of the HTTP response status code. + + + Gets a value indicating whether the response has been written. + Boolean value that indicates whether response has been written. + + + Gets or sets a Boolean value that indicates whether verbose errors will be returned. + The Boolean value that indicates whether verbose errors will be returned. + + + The is used by WCF Data Services to set up the behavior of the service, including rights on entity sets and service operations, limits on the allowed requests, registering types not discoverable by default, and the default verbosity on error handling. + + + + Gets the maximum number of requests that can be handled in a batch. + Integer value that indicates the maximum number of requests that can be handled in a batch. + + + Gets the maximum number of change sets that can be handled in a batch. + Integer value that indicates the maximum number of change sets that can be handled in a batch. + + + Gets or sets the maximum number of segments that can be expanded by the $expand query option for all requests to the data service. + The maximum number of segments to expand. + + + Gets or sets a maximum number of segments supported in a single $expand path for all requests to the data service. + Integer representing the maximum number of supported segments in $expand path. + + + Gets or sets the maximum number of objects that can be inserted in a single request. + The integer value that contains the maximum number of objects that can be inserted in a single request. + + + Gets the maximum number of results per collection. + The integer value that indicates the maximum number of results per collection. + + + Registers a resource type for use by the data service. + The resource type to register. + + + Sets the access rules for the specified entity set. + The name of the entity set for configured access. + The rights allowed for the entity set. + + + Sets the access rules for the specified service operation. + The name of the service operation on which to set access rights. + The rights allowed according to enumeration. + + + Gets or sets whether verbose errors are used by default for all responses from the data service. + A Boolean value that indicates whether verbose errors are returned. + + + Interface that specifies interactions between WCF Data Services and its hosting environment. + + + Gets an absolute URI that is the URI as sent by the client. + A string that is the absolute URI of the request. + + + Gets an absolute URI that is the root URI of the data service. + A string that is the absolute root URI of the data service. + + + Gets a data item identified by the identity key contained by the parameter of the method. + The data item requested by the query serialized as a string. + String value containing identity key of item requested. + + + Handles a data service exception using information in the parameter. + + that contains information on the exception object. + + + The transport protocol specified by the request accept header. + String that indicates the transport protocol required by the request. + + + Gets a string representing the value of the Accept-Charset HTTP header. + String representing the value of the Accept-Charset HTTP header. + + + Gets the transport protocol specified by the content type header. + String value that indicates content type. + + + Gets the request method of GET, PUT, POST, or DELETE. + String value that indicates request method. + + + Gets the value for the If-Match header on the current request. + String value for the If-Match header on the current request. + + + Gets the value for the If-None-Match header on the current request. + String value for the If-None-Match header on the current request. + + + Gets the value that identifies the highest version that the request client is able to process. + A string that contains the highest version that the request client is able to process, possibly null. + + + Gets the stream that contains the HTTP request body. + + object that contains the request body. + + + Gets the value that identifies the version of the request that the client submitted, possibly null. + A string that identifies the version of the request that the client submitted, possibly null. + + + Gets a string value that represents cache control information. + A string value that represents cache control information. + + + Gets the transport protocol of the response. + String value containing the content type. + + + Gets an eTag value that represents the state of data in response. + A string value that represents the eTag state value. + + + Gets or sets the service location. + String that contains the service location. + + + Gets or sets the response code that indicates results of query. + Integer value that contains the response code. + + + Gets the response stream to which the HTTP response body will be written. + + object to which the response body will be written. + + + Gets the version used by the host in the response. + A string value that contains the host version. + + + Defines extensions to needed for request and response headers in HTTP. + + + Request header for an HTTP request. + String value of header. + + + Response header for an HTTP response. + String value of header. + + + Declares the members required to support enumerators for results and associated segments on an WCF Data Services $expand query option.   + + + Gets the element with expanded properties. + The object in a property expanded by . + + + Gets the value for a named property of the result. + The value of the property. + The name of the property for which to get enumerable results. + + + This interface declares the methods required to support the $expand query option for an WCF Data Services. + + + Applies expansions to the specified parameter. + An object of the same type as the supplied object that includes the specified . + The object to expand. + A collection of paths to expand. + + + Controls the visibility of a property or properties by WCF Data Services. + + + Initializes a new instance of the class. + A string value that contains the property or properties to be attributed. + + + Initializes a new instance of the class. + A string value that contains the property or properties to be attributed. + + + Gets or sets the property name or names to controlled by the attribute. + + + Provides access to members that control handing of request messages. + + + Provides an entry point for the request. + The resulting message for the supplied request. + The object that contains the request. + + + An interface used to insert or update a resource by the HTTP POST method. + + + Adds the specified value to the collection. + Target object that defines the property. + The name of the collection property to which the resource should be added.. + The opaque object representing the resource to be added. + + + Cancels a change to the data. + + + Creates the resource of the specified type and that belongs to the specified container. + The object representing a resource of specified type and belonging to the specified container. + The name of the entity set to which the resource belongs. + The full namespace-qualified type name of the resource. + + + Deletes the specified resource. + The resource to be deleted. + + + Gets the resource of the specified type identified by a query and type name. + An opaque object representing a resource of the specified type, referenced by the specified query. + Language integrated query (LINQ) pointing to a particular resource. + The fully qualified type name of resource. + + + Gets the value of the specified property on the target object. + The value of the object. + An opaque object that represents a resource. + The name of the property whose value needs to be retrieved. + + + Removes the specified value from the collection. + The target object that defines the property. + The name of the property whose value needs to be updated. + The property value that needs to be removed. + + + Resets the resource identified by the parameter to its default value. + The resource with its value reset to the default value. + The resource to be updated. + + + Returns the instance of the resource represented by the specified resource object. + Returns the instance of the resource represented by the specified resource object. + The object representing the resource whose instance needs to be retrieved. + + + Saves all the changes that have been made by using the APIs. + + + Sets the value of the specified reference property on the target object. + The target object that defines the property. + The name of the property whose value needs to be updated. + The property value to be updated. + + + Sets the value of the property with the specified name on the target resource to the specified property value. + The target object that defines the property. + The name of the property whose value needs to be updated. + The property value for update. + + + Indicates the MIME type of HTTP request. + + + Initializes a new instance of the class. + The name of the attribute. + The MIME type of the attribute. + + + Gets the name of the attribute. + A string value that contains the name of the attribute. + + + Gets the MIME type of a request. + A string that contains the MIME type. + + + Represents arguments used by an HTTP request to the data service. + + + Gets a Boolean value that indicates whether the HTTP request to the data service is a batch operation. + The Boolean value that indicates whether the HTTP request to the data service is a batch operation. + + + Gets the context that contains information about the current operation being processed. + An object that contains information about the current operation. + + + Gets the URI of an HTTP request to be process. + A that contains the URI of the request to be processed. + + + The on a method annotates it as a query interceptor on the specified entity set. + + + Initializes a new instance of the class for the entity set specified by the parameter. + The name of the entity set that contains the entity to which the interceptor applies. + + + Gets the name of the entity set that contains the entity to which the interceptor applies. + A string that indicates the name of the entity set that contains the entity to which the interceptor applies. + + + Access rights for service actions. + + + Specifies no rights on this service action. + + + Specifies the right to execute the service action. + + + An enumeration used to define access rights to service operations deployed by WCF Data Services. + + + No authorization to access the service operation. + + + Authorization to read a single data item by using the service operation. + + + Authorization to read multiple data items by using the service operation. + + + Authorization to read single or multiple data items deployed by the service operation. + + + All rights assigned to the service operation.. + + + Overrides entity set rights that are explicitly defined in the data service with the service operation rights. + + + Attribute used on service operations to specify that they return a single instance of their return element. + + + Initializes a new instance of the class. + + + An enumeration used to specify the update operations that were performed on an entity. + + + No operations were performed on the resource. + + + The entity was added. + + + The entity was modified. + + + The entity was deleted. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + Type of the expanded element. + + + Creates an instance of the class. + + + Gets or sets the description for the . + The description of the . + + + Gets or sets the element with expanded properties. + The object in a property expanded by . + + + Returns the value of the expanded property. + The value of the property. + The name of the property. + + + Returns a property object of the expanded property. + The property value. + The index of the property. + + + + Gets or sets the element with expanded properties. + The object in a property expanded by . + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Provides a wrapper over the result element with the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Gets the value of the named property for the result. + The value for the named property of the result. + Name of property for which to get the value. + + + Gets the value for the specified property by its index. + The value for the property. + Index of the property for which to get the value. + + + Gets a list of property names as text in a comma-separated format. + List of comma-separated names. + + + Gets the full name of the that represents the type of this result. + The full name of the type. + + + Provides a wrapper over the result element with the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Provides a wrapper over the result element with the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result element with the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result element and provides the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result element with the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result elements and provides the ability to project a subset of the properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result elements with the ability to project a subset of the properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result elements with the ability to project a subset of the properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result elements with the ability to project a subset of the properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result elements with the ability to project a subset of the properties. + + + Creates a new instance of the class. + + + Gets the value for the specified property by its index. + The value for the property. + Index of the property for which to get the value. + + + Gets or sets another instance of which contains the set of the next eight projected properties, and possibly another link. + The next set of properties. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + an instance of this class is assigned to the last in the list. + + + Creates a new instance of the class. + + + Use this class to represent a DataService type representing a collection property of primitive or complex types. + + + Resource type of a single item in the collection. + + + Performs late-bound operations on resource sets with a custom data service provider. + + + Compares two byte arrays for equality. + Returns a that is true when the arrays are equal; otherwise false. + First byte array. + Second byte array. + + + Compares two byte arrays for equality. + Returns a that is true when the arrays are not equal; otherwise false. + First byte array. + Second byte array. + + + Returns comparison information for Boolean parameters in an operation expression. + Value Condition -1 is less than . 0 x equals y. 1 is greater than . + The first parameter value. + The second parameter value. + + + Returns comparison information for GUID parameters in an operation expression. + Value Condition -1 is less than . 0 x equals y. 1 is greater than . + The first parameter value. + The second parameter value. + + + Returns comparison information for nullable Boolean parameters in an operation expression. + Value Condition -1 is less than . 0 x equals y. 1 is greater than . + The first parameter value. + The second parameter value. + + + Returns comparison information for nullable GUID parameters in an operation expression. + Value Condition -1 is less than . 0 x equals y. 1 is greater than . + The first parameter value. + The second parameter value. + + + Returns comparison information for string parameters in an operation expression. + Value Condition -1 is less than . 0 x equals y. 1 is greater than . + The first parameter value. + The second parameter value. + + + Casts a value to a specified type. + The cast to the requested . + The value to cast to the requested type. + Resource type for which to check. + + + Gets a named value from the specified object as a sequence. + An instance that contains the requested value as a sequence. + Object that contains the value. + + that is the property the value of which must be returned. + Type of the resulting sequence. + + + Gets a named value from the specified object. + An object that is the requested value. + Object that contains the value. + + that is the property the value of which must be returned. + + + + + + + Filters the supplied query based on the specified . + Returns an instance filtered by the supplied . + The instance to be filtered. + + used to filter the query. + Type of the instance supplied as the parameter. + Type representing the resource type supplied as the parameter. + + + Checks whether the given type is assignable from the resource type of a supplied object instance. + Returns a null value when the is not of the specified ; otherwise returns the supplied . + The object instance to check. + The against which to check for assignability. + Type of the . + + + Determines if the value is of a specified type. + A value that is true if the value is of the specified type; otherwise false. + The value to check. + + to compare with. + + + Use this class to represent a collection of entities. + + + Resource type of a single item in the collection. + The resource type. + + + This interface declares the methods required to support ServiceActions. + + + Determines whether a given serviceAction should be advertised as bindable to the given resourceInstance. + true if the service action should be advertised; false otherwise. + The data service operation context instance. + Service action to be advertised. + Instance of the resource to which the service action is bound. + true if the resource instance to be serialized is inside a feed; false otherwise. The value true suggests that this method might be called many times during serialization since it will get called once for every resource instance inside the feed. If it is an expensive operation to determine whether to advertise the service action for the resourceInstance, the provider may choose to always advertise in order to optimize for performance. + The to be serialized. The server constructs the version passed into this call, which may be replaced by an implementation of this interface. This should never be set to null unless returning false. + + + Builds up an instance of for the given serviceAction with the provided parameterTokens. + An instance of to invoke the action with. + The data service operation context instance. + The service action to invoke. + The parameter tokens required to invoke the service action. + + + Returns all service actions in the provider. + An enumeration of all service actions. + The data service operation context instance. + + + Gets a collection of actions having bindingParameterType as the binding parameter type. + A list of actions having bindingParameterType as the binding parameter type. + The data service operation context instance. + Instance of the binding parameter resource type () in question. + + + Tries to find the for the given serviceActionName. + true if the resolution is successful; false otherwise. + The data service operation context instance. + The name of the service action to resolve. + Returns the service action instance if the resolution is successful; null otherwise. + + + This interface declares the methods required to support invoking of an operation. + + + Gets the result of the call to Invoke. + The result of the call to Invoke. + + + Invokes the underlying operation. + + + Maintains metadata about a custom data service provider. + + + Container name for the data source. + String that contains the name of the container. + + + Namespace name for the data source. + String that contains the namespace name. + + + Attempts to return all types that derive from the specified resource type. + An collection of derived objects. + The base . + + + Gets the instance when given the source association end. + A instance. + Resource set of the source association end. + Resource type of the source association end. + Resource property of the source association end. + + + Determines whether a resource type has derived types. + true when represents an entity that has derived types; otherwise false. + A object to evaluate. + + + Gets all available containers. + An collection of objects. + + + Returns all the service operations in this data source. + An collection of objects. + + + Tries to get a resource set based on the specified name. + true when resource set with the given is found; otherwise false. + Name of the to resolve. + Returns the resource set or a null value if a resource set with the given is not found. + + + Tries to get a resource type based on the specified name. + true when resource type with the given is found; otherwise false. + Name of the type to resolve. + Returns the resource type or a null value if a resource type with the given is not found. + + + Tries to get a service operation based on the specified name. + true when service operation with the given is found; otherwise false. + Name of the service operation to resolve. + Returns the service operation or a null value if a service operation with the given is not found. + + + Returns all the types in this data source. + An collection of objects. + + + Provides paging support for the clients of a custom data service provider. + + + Returns the next-page token to put in the $skiptoken query option. + The next-page token as a collection of primitive types. + Enumerator for which the continuation token is being requested. + + + Gets the next-page token from the $skiptoken query option in the request URI. + Query for which the continuation token is being provided. + Resource type of the result on which the $skip token is to be applied. + Continuation token parsed into primitive type values. + + + Defines a metadata and query source implementation for a custom data service provider. + + + The data source object from which data is provided. + The data source. + + + Gets the value of the open property. + The value of the open property. + Instance of the type that declares the open property. + Name of the open property. + + + Gets the name and values of all the properties that are defined in the given instance of an open type. + A collection of name and values of all the open properties. + Instance of the type that declares the open property. + + + Gets the value of the open property. + Value for the property. + Instance of the type that declares the open property. + Value for the open property. + + + Gets the that represents the container. + An that represents the resource set, or a null value if there is no resource set for the specified . + The resource set. + + + Gets the resource type for the instance that is specified by the parameter. + The of the supplied object. + Instance to extract a resource type from. + + + Invokes the given service operation and returns the results. + The result of the service operation, or a null value for a service operation that returns void. + Service operation to invoke. + Values of parameters to pass to the service operation. + + + Gets a value that indicates whether null propagation is required in expression trees. + A value that indicates whether null propagation is required. + + + Enables binary data to be accessed and changed as a media resource that belongs to an entity that is a media link entry. + + + Deletes the associated media resource when a media link entry is deleted. + The media link entry that is deleted. + The instance that processes the request. + When or are null. + When is not an entity that has a binary property to stream. + When the stream associated with the cannot be deleted. + + + Returns a stream that contains the media resource data for the specified entity, which is a media link entry. + The data that contains the binary property data of the . + The entity that is a media link entry with a related media resource. + The eTag value sent as part of the HTTP request that is sent to the data service. + A nullable value that determines what kind of conditional request was issued to the data service, which is true when the eTag was sent in an If-Match header, false when the eTag was sent in an If-None-Match header, and null when the request was not conditional and no eTag was included in the request. + The instance used by the data service to process the request. + + + Returns the URI that is used to request the media resource that belongs to the specified entity. + A value that is used to request the binary data stream. + The entity that is a media link entry with a related media resource. + The instance used by the data service to process the request. + + + Returns the content-type of the media resource that belongs to the specified entity. + A valid MIME Content-Type value for the binary data. + The entity that is a media link entry with a related media resource. + The instance used by the data service to process the request. + + + Returns the eTag of the media resource that belongs to the specified media link entry. + eTag of the media resource associated with the . + The entity that is a media link entry with a related media resource. + The instance used by the data service to process the request. + + + Returns the stream that the data service uses to write the binary data for the media resource received from the client that belongs to the specified entity. + A valid the data service uses to write the contents of a binary data received from the client. + The entity that is a media link entry with a related media resource. + The eTag value that is sent as part of the HTTP request that is sent to the data service. + A nullable value that determines what kind of conditional request was issued to the data service, which is true when the eTag was sent in an If-Match header, false when the eTag was sent in an If-None-Match header, and null when the request was not conditional and no eTag was included in the request. + The instance that is used by the data service to process the request. + + + Returns a namespace-qualified type name that represents the type that the data service runtime must create for the media link entry that is associated with the data stream for the media resource that is being inserted. + A namespace-qualified type name. + Fully-qualified entity set name. + The instance that is used by the data service to process the request. + + + Gets the size of the stream buffer. + Integer that represents the size of buffer. + + + Enables binary data to be accessed and changed as a named stream that belongs to an entity type. + + + Returns a stream that contains the binary data for the named stream. + The entity to which the named stream belongs. + A object that represents the named stream. + The eTag value sent as part of the HTTP request that is sent to the data service. + A nullable value that determines what kind of conditional request was issued to the data service, which is true when the eTag was sent in an If-Match header, false when the eTag was sent in an If-None-Match header, and null when the request was not conditional and no eTag was included in the request. + The instance used by the data service to process the request. + + + Returns the URI that is used to request a specific named stream. + A value that is used to request the named binary data stream. + The entity with the named stream being requested. + A object that represents the named stream. + The instance used by the data service to process the request. + + + Returns the content-type of the specified named stream. + A valid MIME Content-Type value for the binary data. + The entity to which the named stream belongs. + A object that represents the named stream. + The instance used by the data service to process the request. + + + Returns the eTag of the specified named stream. + eTag value of the specified named stream. + The entity to which the named stream belongs. + A object that represents the named stream. + The instance used by the data service to process the request. + + + Returns the stream that the data service uses to write the binary data received from the client as the specified named stream. + A valid the data service uses to write the contents of a binary data received from the client. + The entity to which the named stream belongs. + A object that represents the named stream. + The eTag value sent as part of the HTTP request that is sent to the data service. + A nullable value that determines what kind of conditional request was issued to the data service, which is true when the eTag was sent in an If-Match header, false when the eTag was sent in an If-None-Match header, and null when the request was not conditional and no eTag was included in the request. + The instance used by the data service to process the request. + + + Defines the methods that must be implemented to supply eTag values to a custom data service provider. + + + Supplies the eTag value for the given entity resource. + Cookie that represents the resource. + A that is true when property values must be compared for equality; false when property values must be compared for inequality. + An list of the eTag property names and corresponding values. + + + Defines the methods required to support ServiceActions. + + + Queues up the invokable to be invoked during IUpdatable.SaveChanges(). + The invokable instance whose Invoke() method will be called during IUpdatable.SaveChanges(). + + + Used to perform late-bound operations on open properties. + + + Adds two values. + The result of the arithmetic operation. + First value to add. + Second value to add. + + + Performs a logical and operation between two expressions. + The result of the logical and operation. + Left value. + Right value. + + + Returns the ceiling of the given value. + The ceiling value for the given value. + A or object. + + + Concatenates two string values. + A new instance that is the concatenated string. + The first string. + The second string. + + + Converts a value to the specified type. + The converted value. + + + Returns the day value of the given instance. + The day value of the given instance. + A object. + + + + Divides two values. + The divided value. + The first value (dividend). + The second value (divisor). + + + Determines whether the end of one string matches another string. + Returns true when ends with ; otherwise returns false. + The string being compared. + The string to compare to. + + + Determines whether the specified objects are considered equal. + A value of true when both objects are equal; otherwise false. + The first object to compare. + The second object to compare. + + + Returns the floor of the given value. + Returns the floor value for the given object. + The or object to evaluate. + + + Gets a value from the specified property of a specified object. + The requested value; null if the value cannot be determined. + Object from which to get the property value. + Name of property from which to get the value. + + + Determines whether the value of one object is greater than another object. + Returns true when the value of the first object is greater than that of the second object; otherwise returns false. + The first value. + The second value. + + + Determines whether the value of one object is greater than or equal to another object. + Returns true when the value of the first object is greater than or equal to that of the second object; otherwise returns false. + The first value. + The second value. + + + Returns the hour value of the given instance. + The hour value of the given instance. + A object. + + + Returns the index of a substring in the target string. + Returns the index of the location of in the . + The target string. + The substring to find. + + + Gets the number of characters in the supplied string object. + The length of the string value. + The string to be checked. + + + Determines whether the value of one object is less than another object. + Returns true when the value of the first object is less than that of the second object; otherwise returns false. + The first value. + The second value. + + + Determines whether the value of one object is less than or equal to another object. + Returns true when the value of the first object is less than or equal to that of the second object; otherwise returns false. + The first value. + The second value. + + + Returns the minute value of the given instance. + The minute value of the given instance. + A object. + + + Calculates the arithmetic remainder of dividing one value by a second value. + The remainder value. + The first value (dividend). + The second value (divisor). + + + Returns the month value of the given instance. + The month value of the given instance. + A object. + + + Multiplies two values. + The product of the two values. + The first value. + The second value. + + + Returns the result of multiplying the specified value by negative one. + The product of multiplied by negative one. + The value to negate. + + + Performs a bitwise (logical) complement operation on the supplied value. + A bitwise complement of the supplied value. + Value to logically complement. + + + Performs a logical comparison of the two values to determine if they are not equal. + A value of true when both objects are not equal; otherwise returns false. + The first value. + The second value. + + + Performs a logical OR operation on two values. + The result of the logical OR operation. + The first value. + The second value. + + + Replaces one substring with a second substring in a target string. + A new string with the substring replaced with the new substring. + The string with the substring to replace. + The substring to be replaced. + The new substring. + + + Rounds the supplied value. + The rounded value. + A or to round. + + + Returns the second value of the given instance. + The second value of the given instance. + A object. + + + Checks whether the target string starts with the substring. + Returns true if the target string starts with the given substring, otherwise returns false. + The string being compared. + The substring that the might start with. + + + Returns the substring after the specified starting index location. + The substring. + The string from which to return the substring. + The starting index for the substring. + + + Returns the substring of a specific length after the specified starting index location. + The substring. + The string from which to return the substring. + The starting index for the substring. + The length of the substring. + + + Determines whether a substring occurs in another string. + true when occurs in , otherwise false. + The substring to locate. + The string to search. + + + Subtracts two values. + The result of the arithmetic operation. + First value in the subtraction. + Second value in the subtraction. + + + Returns a copy of a string converted to lowercase. + A new string value with only lowercase. + The string to convert. + + + Returns a copy of a string converted to uppercase. + A new string value with only uppercase characters. + The string to convert. + + + Removes all leading and trailing white-space characters from a string. + The trimmed string. + The string to trim. + + + Checks the type of a specified value. + A value that is true when the value is of the specified resource type; otherwise false. + The value to check. + Resource type for which to check. + + + Returns the year value of the given instance. + The year value of the given instance. + A object. + + + Use this class to represent a custom service operation. + + + PlaceHolder to hold custom state information about service operation. + + + Returns true, if this service operation has been set to read only. Otherwise returns false. + + + Protocol (for example HTTP) method the service operation responds to. + + + MIME type specified on primitive results, possibly null. + + + Name of the service operation. + + + Entity set from which entities are read (possibly null). + + + Set this service operation to readonly. + + + Use this type to represent a parameter on an operation. + + + Initializes a new . + Name of parameter. + resource type of parameter value. + + + PlaceHolder to hold custom state information about service operation parameter. + + + Returns true, if this parameter has been set to read only. Otherwise returns false. + + + Name of parameter. + + + Type of parameter values. + + + Sets this service operation parameter to readonly. + + + Enumeration for classifying the different kinds of operation parameter binding. + + + Used when the first parameter of a service action is not a binding parameter. + + + Used when the first parameter of a service action is a binding parameter and some or all instances of the binding parameter type may be bound to the service action. + + + Used when the first parameter of a service action is a binding parameter and all instances of the binding parameter type must be bound to the service action. + + + Describes an association between two resource sets. + + + Creates a new instance of the class. + Name of the association set. + + that is at the source end of the association set. + + that is at the target end of the association set. + + + + Gets the source end of the association set. + + that is at the source end of the association set. + + + Gets the target end of the association set. + + that is at the target end of the association set. + + + Gets the name of the association set. + The name of the association set. + + + Describes an end point of a resource association set. + + + Creates a new instance of the class. + Resource set to which the end belongs. + Resource type to which the end belongs. + Resource property that returns the end. + + + + Gets the resource property that returns the . + The resource property. + + + Gets the resource set for the . + The resource set. + + + Gets the resource type for the . + The resource type. + + + Provides a type to describe a property on a resource. + + + Initializes a new for an open property. + Property name for the property as string. + + . + The of the resource to which the property refers. + + + Gets a value that indicates whether this property can be accessed through reflection on the declaring resource instance type. + true when the property can be accessed through reflection; otherwise false. + + + Gets or sets custom state information about a resource property that is defined by the developer. + State information. + + + Gets a Boolean value that indicates whether the property is read-only. + True if the property is read-only. + + + Gets the kind of the resource property with regard to the resource. + A value. + + + Gets or sets MIME type for the property. + String value that indicates MIME type. + + + Gets the name of the resource property. + The name of the resource property as string. + + + Gets the type of the resource property. + The of the resource property. + + + Sets the resource property to read-only. + + + Enumeration for the kinds of properties that a resource can have. + + + A property that returns a primitive type. + + + A property that is part of the key. + + + A property that returns a complex type. + + + A property that returns a reference to another resource. + + + A property that returns a reference to a resource set. + + + An ETag property. + + + + + + A property that returns a stream. + + + Represents a collection of entity type values. + + + Creates a new collection of entity type values.. + The name of the set of items as string. + The of the items in the set. + + + Gets or sets custom state information that is defined by the developer. + State information defined by the developer. + + + Gets a Boolean value that indicates whether the set is read-only. + Boolean value that indicates whether resource set is read-only. + + + Gets the name of the collection. + String value that contains the name of the resource set. + + + Gets the type of the collection. + The . + + + Gets or sets the read-only status of the collection. + + + Get or sets whether to use the order of key properties as defined in the metadata of an Entity Framework or reflection provider when constructing an implicit OrderBy query. + Returns a that is true when the order of key properties is inferred from the provider metadata and false when an alphabetical order is used. + + + This class represents the path expression to calculate the target resource set of a Function or Procedure. + + + Creates a new instance of the class. + Path expression to calculate the target resource set of a function or procedure. + + + Path expression to calculate the target resource set of a function or procedure. + The path expression. + + + Represents a data service primitive, complex, or entity type. + + + Creates an instance of a data service . + CLR type that represents the format inside the WCF Data Services?runtime. + + of the resource type. + Base type of the resource type as string. + Namespace name of the resource type as string. + Name of the given resource type as string. + Boolean value that indicates whether the resource type is an abstract type. + + + Adds an for the resource type. + The to add. + + + Adds the property supplied by the parameter to the type. + + property to be added. + + + Gets a reference to base resource type, if any. + + of the base type. + + + Get whether the corresponding instance type represents the CLR type of this entity. + true if the instance type represents a CLR type; otherwise false. + + + Gets or sets a placeholder to hold custom state information about a resource type that is defined by the developer. + Custom state information defined by the developer. + + + Gets the list of properties for this type. + + of . + + + Gets the full name of the resource. + The full name of the resource type as string. + + + + Gets a representing a collection of the specified itemType items. + A object representing a collection of the specified itemType items. + The of a single item in the collection. + + + Gets a resource type that represent a primitive type when given a object. + The resource type. + + type from which to get the primitive type. + + + Reference to the CLR type that this resource represents. + The instance type as a . + + + Gets a Boolean value that indicates whether this is an abstract type. + True if is abstract. + + + Gets or sets a Boolean value that is true if the resource type includes a default stream. + A Boolean value that is true if the resource type includes a default stream. + + + Gets whether the resource type has open properties. + true if the resource type has open properties defined; otherwise false. + + + Gets a Boolean value that is true if this resource type has been set to read-only. + True if this resource type has been set to read-only; otherwise false. + + + Gets a list of key properties for this type + + of . + + + Returns a list of properties declared by this resource type. + The list of properties declared on this type. + + + Gets the name of the resource type. + Name of the resource type as string. + + + Gets the namespace of the resource type. + Namespace of the resource type as string. + + + Gets a list of properties declared on this type that includes only properties defined on the type, not in the base type. + + of . + + + List of properties declared on this type. + + of . + + + Gets the for the type. + + . + + + Sets the resource type to read-only. + + + Enumeration for the kind of resource key. + + + Entity type resource. + + + Complex type resource. + + + Primitive type resource. + + + + + + Represents a collection of entities. + + + Class that represents an action. + + + Initializes a new instance. + Name of the action. + Return type of the action. + the kind of the operation parameter binding (Never, Sometimes, Always). + In-order parameters for this action; the first parameter is the binding parameter. + Path expression to calculate the result resource set of the function if the action returns an entity or a collection of entity; null otherwise. + + + Initializes a new instance. + Name of the action. + Return type of the action. + Result resource set of the action if the action returns an entity or a collection of entity; null otherwise. + the kind of the operation parameter binding (Never, Sometimes, Always). + In-order parameters for this action. + + + The binding parameter to this action; null if this action is top-level. + + + Returns all the parameters for the given service action. + + + Path expression to calculate the result resource set of the function if the function returns an entity or a collection of entity. + + + Return type of the action. + + + Use this type to represent a parameter on a service action. + + + Initializes a new . + Name of parameter. + resource type of parameter value. + + + Represents a custom service operation. + + + Creates a new instance of the service operation. + Name of the service operation. + + that is the kind of result expected from this operation. + + that is the result of the operation. + + that is the result of the operation. + Protocol method to which the service operation responds. + Ordered collection of objects that are parameters for the operation. + + + Collection of in-order parameters for the service operation. + A of objects. + + + The kind of result that is expected by this service operation. + + that is the kind of result expected from this operation. + + + Type of results returned by this service operation. + Type of the results as a . + + + Represents parameter information for service operations. + + + Creates a new instance of . + Name of parameter. + Data type of parameter. + + + An enumeration that describes the kind of results that a service operation provides. + + + A single value that cannot be further composed. + + + An enumeration of values that cannot be further composed. + + + A queryable object that returns multiple elements. + + + A query that returns a single item. + + + No results. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.Configuration.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.Configuration.dll new file mode 100644 index 0000000..c5e7797 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.Configuration.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.Diagnostics.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.Diagnostics.dll new file mode 100644 index 0000000..665da2a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.Diagnostics.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.Diagnostics.xml b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.Diagnostics.xml new file mode 100644 index 0000000..e888933 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.Diagnostics.xml @@ -0,0 +1,2221 @@ + + + + Microsoft.WindowsAzure.Diagnostics + + + + + Provides access to common SDK constants. + + + + + The version to display in the command line tools banners. + + + + + Path to the SDK installation registry key. + + + + + Name of the registry value that contains the SDK installation path. + + + + + Name of the registry value that contains the SDK version string. + + + + + The version to display in the command line tools banners. + + + + + The GUID of the ETW log to use for Azure infrastructure logging. + + + + + Environment variable read by hosts to enable partial trust. + + + + + Environment variable for Agent RPC Endpoint. + + + + + String environment variable that defines the module name for system plugin tasks. + It is required to differenciate user startup task and system startup task. + + + + + Boolean environment variable that causes IISConfigurator to delete existing sites. + + + + + Boolean environment variable that causes IISConfigurator to configure URL rewrite. + + + + + Configurable operation timeout for IISConfigurator client connection through WCF. + This is in terms of minutes. + + + + + The name of the environment variable that contains the role type. + + + + + The role type value indicating a worker role. + + + + + The role type value indicating a web role hosted in HWC. + + + + + The role type value indicating a web role hosted in IIS. + + + + + Base path to SDK runtime endpoint discovery (no version specified). + + + + + Path to SDK runtime endpoint discovery. + + + + + Name of the runtime endpoint value. + + + + + Name of the runtime endpoint value. + + + + + Subject name of generated management certificates. + + + + + Registry key path to storage key path. + + + + + Registry key path to cloud drive devpath. + + + + + Name of the registry value that contains path for the devpath. + + + + + Name of the registry value that contains path for the devpath. + + + + + Name of the event log. + + + + + Name of the event guest agent source. + + + + + Name of the event runtime source. + + + + + The name of the private configuration setting use to determine if code is running under + the devfabric or not. + + + This is shared between the runtime and the devfabric. Do not change this, as it breaks + a contract between the two. + + + + + The name of the private configuration setting use to pass the path to the IIS Express installation root. + + + This is shared between the runtime and the devfabric. Do not change this, as it breaks + a contract between the two. + + + + + Path to a debugger to launch the role host process under. + + + + + Provides extension methods to the class. + + + + + Creates a new instance of the class for the specified deployment. + + A object. + The deployment ID for the current deployment. + A object. + + + + Creates an new instance of the class for the specified deployment, role, + and instance. + + A object. + The deployment ID for the current deployment. + The name of the role in the specified deployment. + The role instance ID. + A object. + + + + Allows sending configuration requests to a ConfigChannelServer. + + + + + Stores the name of the pipe. + + + + + Initializes a new instance of the class. + + Name of the pipe. + + + + Sends the configuration request. + + The config request. + The timeout. + true if the config was sent; otherwise false. + + + + Starts a named pipe server that listens for configuration change events. + + + + + Stores the name of the pipe. + + + + + Stores the server pipe. + + + + + Initializes a new instance of the class. + + Name of the pipe. + + + + Starts a named pipe server. + + + + + Stops the server. + + + + + Raises the event. + + The instance containing the event data. + + + + Handles client connections. + + The async result. + + + + Raised when a new configuration is sent. + + + + + Stores the data required for the ConfigurationRequest event. + + + + + Initializes a new instance of the class. + + The request. + + + + Gets the config request. + + The config request. + + + + Determines if a URI requires path style addressing + + + + + + + Advanced class used to explicitly configure the monitoring agent. + + + + + Creates an inital configuration for the diagnostic monitor. + + + + + Gets or sets the storage account to which logs are transferred. + + + + + Gets or sets the deployment ID of the role instance for which this diagnostic monitor is running. + + + + + Gets or sets the role instance ID. + + + + + Gets or sets the name of the role. + + + + + Gets or sets the name of the local directory where diagnostic monitor state is written. + + + + + Gets or sets the diagnostic monitor tools directory. + + + + + Gets or sets the polling interval for the diagnostic monitor. + + + + + Represents the configuation for performance counter data sources. + + + + + Gets or sets the rate at which to sample the performance counter, rounded up to the nearest second. + + + + + Gets or sets a performance counter specifier using standard Windows counter syntax. + + + See Specifying a Counter Path + for more information on performance counters. + + + + + Class to configure data buffers used to store diagnostic information. + + + + + Gets or sets the interval between scheduled transfers for this data buffer, in minutes. + + + This value is rounded up to the nearest minute. A value of TimeSpan.Zero disables any scheduled + data transfer. + + + + + Gets or sets the maximum amount of file system storage available to the specified data buffer. + + + By default buffer sizes are automatically allocated by Windows Azure. You can set this property + if you need to manage the buffer size explicitly. + + + + + Configuration class for data buffers that contain file-based logs. + + + Represents the configuration for file-based data buffers. + + + + + Gets a list of configured directories for file-based logs. + + + + + Configuation class for data buffers that hold performance counter information. + + + Represents the buffer configuration for performance counters. + + + + + Gets a list of configurations for performance counters that are being collected. + + + + + Configuration class for buffers used to hold information gathered from the Windows event logs. + + + Represents the buffer configuration for Windows event logs. + + + + + Gets a list of configured data sources for Windows event logs. + + + + + Specifies a logging level by which to filter records when performing a scheduled transfer. + + + When this property is set to LogLevel.Undefined, no filter is applied and all logging events at all levels are transferred. + + + + + Represents the configuration for a set of standard fixed data buffers for logging and diagnostic information. + + + + + Gets or sets the interval at which the diagnostic monitor polls for diagnostic configuration changes. + + + + Increasing the rate at which your service polls for configuration changes may affect your + storage costs. For more information, see . + + + Note that the configuration change polling interval cannot be set remotely. + + + + + + Gets or sets the total amount of file system storage allocated for all logging buffers. + + + + + Gets or sets the buffer configuration for basic Windows Azure logs. + + + + + + Gets or sets the buffer configuration for the logs generated by the underlying diagnostics infrastructure. + The diagnostic infrastructure logs are useful for troubleshooting the diagnostics system itself. + + + + + Gets or sets the buffer configuration for performance counter data. + + + + + Gets or sets the buffer configuration for Windows event logs. + + + + + Gets or sets the buffer configuration for file-based logs defined by the developer. + + + + + Represents information about ongoing data transfers from the local logs to a Windows Azure storage account. + + + + + Constructs an OnDemandTransferInfo object from queue messages sent by a diagnostic monitor on completion of an on-demand + transfer. + + The queue message. + An object. + + + + Gets or sets the unique ID for a given transfer request. + + + + + Gets or sets the deployment ID from which the source data is being transferred. + + + + + Gets or sets the name of the role from which the source data is being transferred. + + + + + Gets or sets the ID of the role instance from which the source data is being transferred. + + + + + Gets or sets the name of a queue where a completion message will be enqueued to provide information + about this transfer. + + + If notification of completion is requested, a single message will + be placed in the specified queue to signal completion. + + + + + Enumeration of a standard set of data buffers for logging. + + + + + Basic Windows Azure logs + + + + + Diagnostic infrastructure logs + + + + + Performance counters + + + + + Windows event logs + + + + + File-based logs defined by the developer. + + + IIS logs, Failed Request logs, and application crash dumps are a special case of file-based logs that are automatically + configured for the service. + + + + + Describes the configuration of a directory to which file-based logs are written. + + + IIS logs, Failed Request logs, and application crash dumps are a special case of file-based logs that are automatically + configured for the service. + + + + + Gets or sets the absolute path for the local directory to which file-based logs are being written. + + + + + Gets or sets the name of a container defined in a storage account where the + contents of file-based logs are to be transferred. + + + + A container is a resource defined by the Blob service under which blob data is stored. File-based logs are + copied from the local directory to blobs within this container when a scheduled or on-demand transfer is performed. + + + The Blob service endpoint is determined by the cloud storage account used to initialize the + for the role instance. + + + The directory from which file-based logs are transferred is the directory defined by the property + for this object. + + + + + + Gets or sets the maximum size of the directory defined by the property to which + file-based logs are written. + + + + + Defines a standard set of logging levels. + + + + + Logs all events at all levels. + + + + + Logs a critical alert. + + + + + Logs an error. + + + + + Logs a warning. + + + + + Logs an informational message. + + + + + Logs a verbose message. + + + + + Represents the buffer configuration for basic Windows Azure logs. + + + + + Gets or sets the logging level by which to filter records when performing a scheduled transfer. + + + When this property is set to LogLevel.Undefined, no filter is applied and all logging events at all levels are transferred. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents an active instance of a diagnostic monitor. + + + + + Returns the default initial diagnostic monitor configuration for the current role instance. + + A object. + + + Call this method to retrieve the initial configuration for all logging and diagnostic parameters for the current + role instance. Once you retrieve the initial configuration, you can modify configuration parameters and + update the configuration for the current instance. + + + By default, the overall quota for file system storage for all logging buffers is approximately 4 GB. This + storage space is automatically allocated across the various logging buffers in a dynamic fashion. + You can also configure individual buffer quotas if you prefer to manage them yourself. + + + The size of the overall quota for logging buffers is limited by the size of the DiagnosticStore local resource. + To increase the size of the overall quota, first increase the size of the DiagnosticStore resource. + + + + + + Starts a diagnostic monitor. + + The name of a configuration setting that + provides a connection string to a storage account. + + A object. + + + This method starts a diagnostic monitor with the default initial configuration. + Data buffers are written to the storage account indicated by the specified configuration setting. The storage + account may be the well-known development storage account, or a Windows Azure storage account in the cloud. + + + See Configuring Connection Strings for more information + about how to construct a connection string to a storage account. + + + This method also registers for notification of changes to configuration settings. + If the value of the connection string is changed, the diagnostic monitor will be + automatically reconfigured to use the new connection. + + + See Configuring Connection Strings for more information + about how to construct a connection string to a storage account. + + + + + + Starts a diagnostic monitor with a user-defined initial configuration. + + The name of a configuration setting that + provides a connection string to a storage account. + A object that + provides a custom initial configuration. + A object. + + + This method starts a diagnostic monitor with the specified initial configuration. + Data buffers are written to the storage account indicated by the specified configuration setting. The storage + account may be the well-known development storage account, or a Windows Azure storage account in the cloud. + + + This method also registers for notification of changes to configuration settings. + If the value of the connection string is changed, the monitoring agent will be + automatically reconfigured to use the new connection. + + + See Configuring Connection Strings for more information + about how to construct a connection string to a storage account. + + + + + + Starts a diagnostic monitor with a user-defined initial configuration. + + A object. + A object that + provides a custom initial configuration. + + A object. + + + + This method starts a diagnostic monitor with the specified storage account and initial configuration. + Data buffers are written to the specified storage account. + + + This method also registers for notification of changes to configuration settings. + If the value of the connection string is changed, the monitoring agent will be + automatically reconfigured to use the new connection. + + + See Configuring Connection Strings for more information + about how to construct a connection string to a storage account. + + + + + + Updates the storage account information for the current diagnostic monitor. + + A object. + + + + Stops the diagnostic monitor. + + + + + Specifies that the diagnostic monitor may use non-secure (HTTP) connections to + communicate with the storage account. + + + true if [allow insecure remote connections]; otherwise, false. + + + + This property should be set to true only in debugging + scenarios. In a production environment, the default connection used by the diagnostic monitor is secure (HTTPS). + When the diagnostic monitor is configured to use the development storage account, this property is ignored. + + + + + + Gets the local directory where state information for the diagnostic monitor is stored. + + + + + Represents the application crash dumps. + + + + + Enables collection of application crash dumps (mini dumps or full dumps) for this process. + + if set to true [enable full dumps]; if false, collect mini dumps only. + + + When you enable collection of crash dumps with this method, crash dumps are written to the crash dumps + directory (named "CrashDumps") in the default diagnostic store. The default diagnostic store is a local + resource that is automatically configured for the role and is named "DiagnosticStore". + You can retrieve the default diagnostic store by calling the + method. + + + + + + Enables collection of crash dumps (mini dumps or full dumps) for this process to a specified local directory. + + The absolute path to the local directory. + if set to true [enable full dumps]; if false, collect mini dumps only. + + + + Provides a class for managing the configuration of diagnostic monitors remotely. + + + + + Creates a new instance of the class. + + A connection string for a storage account. + The deployment ID. + + + See Configuring Connection Strings for more information + about how to construct a connection string to a storage account. + + + + + + Creates a new instance of the class. + + A object. + The deployment ID. + + + + Lists the set of roles which have successfully started at least one diagnostic monitor. + + A list of role names. + This method does not return a list of all roles in a deployment, but only the roles for which there is currently at least + once instance running a diagnostic monitor. + + + + Returns a list of IDs of active role instances that have a diagnostic monitor running. + + The name of the role. + A list of role instance IDs. + + + + Returns the list of role instance diagnostic managers for the specified role. + + The name of the role. + A list of objects. + + + + Returns the for the specified role instance. + + The name of the role. + The role instance ID. + A object. + + + + Specifies that the deployment diagnostic manager may use non-secure (HTTP) connections to + communicate with the storage account. + + + true if [allow insecure remote connections]; otherwise, false. + + + + This property should be set to true only in debugging + scenarios. In a production environment, the default connection used by the deployment diagnostic manager is secure (HTTPS). + When the deployment diagnostic manager is configured to use the development storage account, this property is ignored. + + + + + + Specifies options for an on-demand transfer. + + + + + Gets or sets the start of the time window for which event data is to be transferred. + + + + + Gets or sets the end of the time window for which event data is to be transferred. + + + + + Gets or sets the filter level for event data that has been logged with level information. + + + If the logging level is set to LogLevel.Undefined, all data is transferred regardless of logging level. + + + + + Gets or sets the name of the queue where transfer completion notification can optionally be sent. + + + + + Class for remotely mananging the configruation and diagnostic data for a given role instnace. + + + + + Initializes a new instance of the class. + + A object. + The deployment ID. + The name of the role. + The role instance ID. + + + + Gets the current diagnostic monitor configuration. + + A object. + + + + Sets the configuration for the diagnostic monitor. + + A object representing the new configuration. + + Setting the current configuration while on-demand transfers are pending results in an error. + + + + + Returns the set of active transfers, with associated transfer information. + + A Dictionary of data buffers and their associated on-demand transfer information. + + + + Begins an on-demand transfer of the specified data buffer. + + The name of the source buffer. + A request ID identifying the transfer. + + + + Begins an on-demand transfer of the specified data buffer. + + The name of the source buffer. + Options for the on-demand transfer. + A request ID identifying the transfer. + + + + Cancel all on-demand transfers that are currently in progress, returning the request ID for each transfer. + + Name of the data buffer. + A list of request IDs for the on-demand transfers that are in progress. + Currently there can be at most one active transfer per data buffer. + + + + Stops an on-demand transfer based on its request ID. + + The request ID. + + A boolean indicating whether the on-demand transfer was stopped. This method + may return false if the there is no active tranfer with the given request ID. + + + + + Specifies that the role instance diagnostic manager may use non-secure (HTTP) connections to + communicate with the storage account. + + + true if [allow insecure remote connections]; otherwise, false. + + + + This property should be set to true only in debugging + scenarios. In a production environment, the default connection used by the role instance diagnostic manager is secure (HTTPS). + When the role instance diagnostic manager is configured to use the development storage account, this property is ignored. + + + + + + Gets the deployment ID of this role instance. + + + + + Gets the name of the role for this role instance. + + + + + Gets the ID of this role instance. + + + + + Represents the trace listener used for basic Windows Azure logs. + + + + + Constructor for the class. + + + + + Releases the unmanaged resources used by the and optionally releases the managed resources. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + When overridden in a derived class, writes the specified message to the listener you create in the derived class. + + The message to write. + + + + When overridden in a derived class, writes a message to the listener you create in the derived class, followed by a line terminator. + + A message to write. + + + + Writes trace and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + + + + + + + + Writes trace information, a message, and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A message to write. + + + + + + + + Writes trace information, a formatted array of objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + A format string that contains zero or more format items, which correspond to objects in the array. + An object array containing zero or more objects to format. + + + + + + + + Writes trace information, an array of data objects and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + An array of objects to emit as data. + + + + + + + + Writes trace information, a data object and event information to the listener specific output. + + A object that contains the current process ID, thread ID, and stack trace information. + A name used to identify the output, typically the name of the application that generated the trace event. + One of the values specifying the type of event that has caused the trace. + A numeric identifier for the event. + The trace data to emit. + + + + + + + + Indicates whether the diagnostic monitor trace listener is thread-safe. + + + + diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.StorageClient.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.StorageClient.dll new file mode 100644 index 0000000..a2760d4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/Microsoft.WindowsAzure.StorageClient.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/System.Spatial.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/System.Spatial.dll new file mode 100644 index 0000000..6a8ee88 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/System.Spatial.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/System.Spatial.xml b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/System.Spatial.xml new file mode 100644 index 0000000..ad436e8 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/bin/System.Spatial.xml @@ -0,0 +1,1100 @@ + + + + System.Spatial + + + + Coordinate System Reference + + + Default Geography Reference (SRID 4326, WGS84) + + + Default Geometry Reference + + + The coordinate system ID according to the EPSG, or NULL if this is not an EPSG coordinate system. + + + Equals overload + True if equal + The other CoordinateSystem + + + Equals overload + True if equal + The other CoordinateSystem + + + Gets or creates a Geography coordinate system with the ID, or the default if null is given. + The coordinate system + The coordinate system id, according to the EPSG. Null indicates the default should be returned + + + Gets or creates a Geometry coordinate system with the ID, or the default if null is given. + The coordinate system + The coordinate system id, according to the EPSG. Null indicates the default should be returned + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + The coordinate system Id, no matter what scheme is used. + + + The Name of the Reference + + + Display the coordinate system for debugging + String representation of the coordinate system, for debugging + + + To a string that can be used with extended WKT. + String representation in the form of SRID=#; + + + Represents the extensions to formatters. + + + Writes the specified formatter. + A string value of the formatted object. + The formatter. + The spatial object. + + + Writes the specified formatter. + A string value of the formatted object. + The formatter. + The spatial object. + + + Represents a base class of geography shapes. + + + Initializes a new instance of the class. + The coordinate system of this geography. + The implementation that created this instance. + + + Gets the coordinate system of the geography. + The coordinate system of the geography. + + + Gets a value that indicates whether the geography is empty. + true if the geography is empty; otherwise, false. + + + Sends the current spatial object to the given pipeline. + The spatial pipeline. + + + Represents the collection of geographies. + + + Initializes a new instance of the class. + The coordinate system of this geography collection. + The implementation that created this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Gets the collection of geographies. + The collection of geographies. + + + Gets the hash code. + The hash code. + + + Represents the curve of geography. + + + Initializes a new instance of the class. + The coordinate system of this geography curve. + The implementation that created this instance. + + + Represents the full globe of geography. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Gets the hash code. + The hash code. + + + Represents a geography line string consist of an array of geo points. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets the point list. + The point list. + + + Represents the multi curve of geography. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Geography Multi-LineString + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Line Strings + + + Geography Multi-Point + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Points + + + Geography Multi-Polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Polygons + + + Geography MultiSurface + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Extension methods for the Geography operations + + + Geography Distance + The operation result + Operand 1 + Operand 2 + + + This is definition of the GeographyPipeline api + + + Initializes a new instance of the class. + + + Begin drawing a figure + Next position + + + Begin drawing a spatial object + The spatial type of the object + + + Ends the current figure + + + Ends the current spatial object + + + Draw a point in the specified coordinate + Next position + + + Setup the pipeline for reuse + + + Set the coordinate system + The CoordinateSystem + + + Geography point + + + Create a empty point + CoordinateSystem + The implementation that created this instance. + + + Creates the specified latitude. + The GeographyPoint that was created + The latitude. + The longitude. + + + Creates the specified latitude. + The GeographyPoint that was created + The latitude. + The longitude. + The z dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + The latitude. + The longitude. + The z dimension. + The m dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + the coordinate system to use + The latitude. + The longitude. + The z dimension. + The m dimension. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Latitude + + + Longitude + + + Nullable M + + + Nullable Z + + + Geography polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Set of rings + + + Represents one position in the Geographyal coordinate system + + + Creates a GeographyPosition from components + lattitude portion of position + longitude portion of position + + + Creates a GeographyPosition from components + lattitude portion of position + longitude portion of position + altitude portion of position + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Computes a hash code + a hash code + + + lattitude portion of position + + + longitude portion of position + + + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + first position + second position + + + Inequality comparison + true if left is not equal to right + first position + other position + + + Formats this instance to a readable string + The string representation of this instance + + + altitude portion of position + + + Geography Surface + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Formatter for Json Object + + + Initializes a new instance of the class. + + + Creates the implementation of the formatter + Returns the created GeoJsonFormatter implementation + + + Read from the source + The source json object + The spatial type to read + + + Convert spatial value to a Json Object + The json object + The spatial value + + + Base class of Geography Shapes + + + Geometry Constructor + The CoordinateSystem + The implementation that created this instance. + + + SRID of this instance of geometry + + + Is Geometry Empty + + + Sends the current spatial object to the given pipeline + The spatial pipeline + + + Geometry Collection + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Returns the Geometry instances in this collection. + + + Get Hashcode + The hashcode + + + Geometry Curve + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Geometry Line String + + + Constructor + CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Point list + + + Geometry MultiCurve + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Geometry Multi-LineString + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Line Strings + + + Geometry Multi-Point + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Points + + + Geometry Multi-Polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Polygons + + + + Extension methods for the Geography operations + + + Geometry Distance + The operation result + Operand 1 + Operand 2 + + + This is definition of the GeometryPipeline api + + + Initializes a new instance of the class. + + + Begin drawing a figure + Next position + + + Begin drawing a spatial object + The spatial type of the object + + + Ends the current figure + + + Ends the current spatial object + + + Draw a point in the specified coordinate + Next position + + + Setup the pipeline for reuse + + + Set the coordinate system + The CoordinateSystem + + + Geometry Point + + + Empty Point constructor + CoordinateSystem + The implementation that created this instance. + + + Creates the specified latitude. + The GeographyPoint that was created + The x dimension. + The y dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + The x dimension. + The y dimension. + The z dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + The x dimension. + The y dimension. + The z dimension. + The m dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + the coordinate system to use + The x dimension. + The y dimension. + The z dimension. + The m dimension. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Nullable M + + + Latitude + + + Longitude + + + Nullable Z + + + Geometry polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Set of rings + + + Represents one position in the Geometry coordinate system + + + Creates a GeometryPosition from components + x portion of position + y portion of position + + + Creates a GeometryPosition from components + x portion of position + y portion of position + altitude portion of position + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Computes a hash code + a hash code + + + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + first position + second position + + + Inequality comparison + true if left is not equal to right + first position + other position + + + Formats this instance to a readable string + The string representation of this instance + + + x portion of position + + + y portion of position + + + altitude portion of position + + + + The object to move spatial types to and from the GML format + + + Initializes a new instance of the class. + The implementation that created this instance. + + + Creates the implementation of the formatter + Returns the created GmlFormatter implementation + + + Provides access to the geography objects that this object constructs + + + Gets the geography object that was constructed most recently. + + + Fires when the provider constructs a geography object. + + + Provides access to the geometry objects that this object constructs + + + Gets the geometry object that was constructed most recently. + + + Fires when the provider constructs a geometry object. + + + + The spatial interface + + + Coordinate System + + + Is spatial type empty + + + the exception thrown on an unsuccessful parsing of the serialized format. + + + Creates a ParseErrorException + + + Creates a ParseErrorException from serialized data. + The instance that hosld the serialized object data about the exception being thrown. + The instance that contains contextual information about the source or destination. + + + Creates a ParseErrorException from a message + The message about the exception. + + + Creates a ParseErrorException from a message and previous exception + The message about the exception. + The exception that preceeded this one. + + + Creates Geometry or Geography instances from spatial data pipelines. + + + Initializes a new instance of the class. + The geography input. + The geometry input. + The geography output. + The geometry output. + + + Gets the geography object that was constructed most recently. + + + Gets the geometry object that was constructed most recently. + + + Creates an implementation of the builder + Returns the created SpatialBuilder implementation + + + Fires when the provider constructs a geography object. + + + Fires when the provider constructs a geometry object. + + + Base class for all Spatial Formats + The type of reader to be read from. + The type of reader to be read from. + + + Initializes a new instance of the <see cref="T:System.Spatial.SpatialFormatter`2" /> class. + The implementation that created this instance. + + + Creates the writerStream. + The writerStream that was created. + The stream that should be written to. + + + Creates the builder that will be called by the parser to build the new type. + the builder that was created. + + + Parses the input, and produces the object + The input to be parsed. + The type of object to produce + + + Parses the input, and produces the object + The input to be parsed. + The pipeline to call during reading. + The type of object to produce + + + Read the Geography from the readerStream and call the appopriate pipeline methods + The stream to read from. + The pipeline to call based on what is read. + + + Read the Geometry from the readerStream and call the appopriate pipeline methods + The stream to read from. + The pipeline to call based on what is read. + + + Creates a valid format from the spatial object. + The object that the format is being created for. + The stream to write the formatted object to. + + + Class responsible for knowing how to create the Geography and Geometry builders for a particular implemenation of Spatial types + + + Initializes a new instance of the class. + + + Creates a SpatialBuilder for this implemenation + The SpatialBuilder created. + + + Creates a Formatter for Json Object + The JsonObjectFormatter created + + + Creates a GmlFormatter for this implementation + The GmlFormatter created. + + + Creates a spatial Validator + The SpatialValidator created. + + + Creates a WellKnownTextSqlFormatter for this implementation + The WellKnownTextSqlFormatter created. + + + Creates a WellKnownTextSqlFormatter for this implementation + The WellKnownTextSqlFormatter created. + Controls the writing and reading of the Z and M dimension + + + Returns an instance of SpatialImplementation that is currently being used. + + + Property used to register Spatial operations implementation. + + + Class responsible for knowing how to perform operations for a particular implemenation of Spatial types + + + Initializes a new instance of the class. + + + Geography Distance + The operation result + Operand 1 + Operand 2 + + + Geometry Distance + The operation result + Operand 1 + Operand 2 + + + One link of a geospatial pipeline + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The geography chain. + The geometry chain. + + + Add the next pipeline + The last pipesegment in the chain, usually the one just created + the next pipleine + + + Gets the geography side of the pipeline. + + + Gets the geometry side of the pipeline. + + + + + Gets or sets the starting link. + The starting link. + + + Defines a list of allowed OpenGisTypes types. + + + Unknown + + + Point + + + Line String + + + Polygon + + + Multi-Point + + + Multi-Line-String + + + Multi-Polygon + + + Collection + + + Full Globe + + + This class provides a place to add extension methods that work with ISpatial + + + Allows the delegation of the call to the proper type (geography or Geometry) + The instance that will have SendTo called. + The pipeline that the instance will be sent to. + + + Base class for Spatial Type Validator implementations + + + Factory for creating the currently registered SpatialValidator implementation + The created SpatialValidator + + + The object to move spatial types to and from the WellKnownTextSql format + + + Initializes a new instance of the class. + The implementation that created this instance. + + + Creates the implementation of the formatter + Returns the created WellKnownTextSqlFormatter implementation + + + Creates the specified has Z. + The created WellKnownTextSqlFormatter. + Restricts the formatter to allow only two dimensions. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.csproj.FileListAbsolute.txt b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..e7a9df6 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.csproj.FileListAbsolute.txt @@ -0,0 +1,21 @@ +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\obj\Debug\ApressODataService.csprojResolveAssemblyReference.cache +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\ApressODataService.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\ApressODataService.pdb +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\EntityFramework.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Edm.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.OData.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Services.Client.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Services.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.WindowsAzure.Configuration.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.WindowsAzure.Diagnostics.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.WindowsAzure.StorageClient.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\System.Spatial.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\EntityFramework.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Edm.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.OData.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Services.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Services.Client.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.WindowsAzure.Diagnostics.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\System.Spatial.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\obj\Debug\ApressODataService.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\obj\Debug\ApressODataService.pdb diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.csprojResolveAssemblyReference.cache b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.csprojResolveAssemblyReference.cache new file mode 100644 index 0000000..56d1b4c Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.csprojResolveAssemblyReference.cache differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.dll new file mode 100644 index 0000000..d40e08d Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.pdb b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.pdb new file mode 100644 index 0000000..7f9e3c1 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/ApressODataService.pdb differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..cff9cf1 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TempPE/ApressBookModel.Designer.cs.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TempPE/ApressBookModel.Designer.cs.dll new file mode 100644 index 0000000..953c9ad Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TempPE/ApressBookModel.Designer.cs.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TempPE/ApressBookModel.cs.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TempPE/ApressBookModel.cs.dll new file mode 100644 index 0000000..7f05260 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TempPE/ApressBookModel.cs.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/edmxResourcesToEmbed/ApressBookModel.csdl b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/edmxResourcesToEmbed/ApressBookModel.csdl new file mode 100644 index 0000000..d3499f3 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/edmxResourcesToEmbed/ApressBookModel.csdl @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/edmxResourcesToEmbed/ApressBookModel.msl b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/edmxResourcesToEmbed/ApressBookModel.msl new file mode 100644 index 0000000..e021ffb --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/edmxResourcesToEmbed/ApressBookModel.msl @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/edmxResourcesToEmbed/ApressBookModel.ssdl b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/edmxResourcesToEmbed/ApressBookModel.ssdl new file mode 100644 index 0000000..76caa7f --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Debug/edmxResourcesToEmbed/ApressBookModel.ssdl @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/ApressODataService.csproj.FileListAbsolute.txt b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/ApressODataService.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..a9113a7 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/ApressODataService.csproj.FileListAbsolute.txt @@ -0,0 +1,20 @@ +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\ApressODataService.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\ApressODataService.pdb +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\EntityFramework.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Edm.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.OData.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Services.Client.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Services.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.WindowsAzure.Configuration.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.WindowsAzure.Diagnostics.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.WindowsAzure.StorageClient.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\System.Spatial.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\EntityFramework.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Edm.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.OData.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Services.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.Data.Services.Client.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\Microsoft.WindowsAzure.Diagnostics.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\bin\System.Spatial.xml +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\obj\Release\ApressODataService.dll +C:\Users\aapelpro\documents\visual studio 2012\Projects\ApressCloudService\ApressODataService\obj\Release\ApressODataService.pdb diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/ApressODataService.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/ApressODataService.dll new file mode 100644 index 0000000..2106a91 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/ApressODataService.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/ApressODataService.pdb b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/ApressODataService.pdb new file mode 100644 index 0000000..32feabc Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/ApressODataService.pdb differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache new file mode 100644 index 0000000..f1a3613 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TempPE/ApressBookModel.Designer.cs.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TempPE/ApressBookModel.Designer.cs.dll new file mode 100644 index 0000000..c77648a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TempPE/ApressBookModel.Designer.cs.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TempPE/ApressBookModel.cs.dll b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TempPE/ApressBookModel.cs.dll new file mode 100644 index 0000000..19e8ef6 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TempPE/ApressBookModel.cs.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs new file mode 100644 index 0000000..e69de29 diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs new file mode 100644 index 0000000..e69de29 diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs new file mode 100644 index 0000000..e69de29 diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TransformWebConfig/assist/Web.config b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TransformWebConfig/assist/Web.config new file mode 100644 index 0000000..c358444 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TransformWebConfig/assist/Web.config @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TransformWebConfig/original/Web.config b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TransformWebConfig/original/Web.config new file mode 100644 index 0000000..f54b97b --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TransformWebConfig/original/Web.config @@ -0,0 +1,74 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TransformWebConfig/transformed/Web.config b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TransformWebConfig/transformed/Web.config new file mode 100644 index 0000000..1dab85d --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/TransformWebConfig/transformed/Web.config @@ -0,0 +1,74 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/_WPPLastBuildInfo.txt b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/_WPPLastBuildInfo.txt new file mode 100644 index 0000000..dbb3ffc Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/_WPPLastBuildInfo.txt differ diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/edmxResourcesToEmbed/ApressBookModel.csdl b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/edmxResourcesToEmbed/ApressBookModel.csdl new file mode 100644 index 0000000..d3499f3 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/edmxResourcesToEmbed/ApressBookModel.csdl @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/edmxResourcesToEmbed/ApressBookModel.msl b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/edmxResourcesToEmbed/ApressBookModel.msl new file mode 100644 index 0000000..e021ffb --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/edmxResourcesToEmbed/ApressBookModel.msl @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/edmxResourcesToEmbed/ApressBookModel.ssdl b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/edmxResourcesToEmbed/ApressBookModel.ssdl new file mode 100644 index 0000000..76caa7f --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/obj/Release/edmxResourcesToEmbed/ApressBookModel.ssdl @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/ApressODataService/packages.config b/ApressBook SourceCode/ApressCloudService/ApressODataService/packages.config new file mode 100644 index 0000000..0c31569 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/ApressODataService/packages.config @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/Content/App.config.transform b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/Content/App.config.transform new file mode 100644 index 0000000..4fa1b95 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/Content/App.config.transform @@ -0,0 +1,5 @@ + + + + + diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/Content/Web.config.transform b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/Content/Web.config.transform new file mode 100644 index 0000000..4fa1b95 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/Content/Web.config.transform @@ -0,0 +1,5 @@ + + + + + diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/EntityFramework.5.0.0.nupkg b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/EntityFramework.5.0.0.nupkg new file mode 100644 index 0000000..df457eb Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/EntityFramework.5.0.0.nupkg differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/EntityFramework.5.0.0.nuspec b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/EntityFramework.5.0.0.nuspec new file mode 100644 index 0000000..001ec4f --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/EntityFramework.5.0.0.nuspec @@ -0,0 +1,22 @@ + + + + EntityFramework + 5.0.0 + Microsoft + Microsoft + http://go.microsoft.com/fwlink/?LinkId=253898&clcid=0x409 + http://go.microsoft.com/fwlink/?LinkId=253891&clcid=0x409 + true + Entity Framework is Microsoft's recommended data access technology for new applications. + Entity Framework is Microsoft's recommended data access technology for new applications. + en-US + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net40/EntityFramework.dll b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net40/EntityFramework.dll new file mode 100644 index 0000000..8caef36 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net40/EntityFramework.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net40/EntityFramework.xml b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net40/EntityFramework.xml new file mode 100644 index 0000000..4057d68 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net40/EntityFramework.xml @@ -0,0 +1,18061 @@ + + + + EntityFramework + + + + + Specifies the database column that a property is mapped to. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The name of the column the property is mapped to. + + + + The name of the column the property is mapped to. + + + + + The zero-based order of the column the property is mapped to. + + + + + The database provider specific data type of the column the property is mapped to. + + + + + Denotes that the class is a complex type. + Complex types are non-scalar properties of entity types that enable scalar properties to be organized within entities. + Complex types do not have keys and cannot be managed by the Entity Framework apart from the parent object. + + + + + Specifies how the database generates values for a property. + + + + + Initializes a new instance of the class. + + The pattern used to generate values for the property in the database. + + + + The pattern used to generate values for the property in the database. + + + + + The pattern used to generate values for a property in the database. + + + + + The database does not generate values. + + + + + The database generates a value when a row is inserted. + + + + + The database generates a value when a row is inserted or updated. + + + + + Denotes a property used as a foreign key in a relationship. + The annotation may be placed on the foreign key property and specify the associated navigation property name, + or placed on a navigation property and specify the associated foreign key name. + + + + + Initializes a new instance of the class. + + + If placed on a foreign key property, the name of the associated navigation property. + If placed on a navigation property, the name of the associated foreign key(s). + If a navigation property has multiple foreign keys, a comma separated list should be supplied. + + + + + If placed on a foreign key property, the name of the associated navigation property. + If placed on a navigation property, the name of the associated foreign key(s). + + + + + Specifies the inverse of a navigation property that represents the other end of the same relationship. + + + + + Initializes a new instance of the class. + + The navigation property representing the other end of the same relationship. + + + + The navigation property representing the other end of the same relationship. + + + + + Specifies the maximum length of array/string data allowed in a property. + + + + + Initializes a new instance of the class. + + + The maximum allowable length of array/string data. + Value must be greater than zero. + + + + + Initializes a new instance of the class. + The maximum allowable length supported by the database will be used. + + + + + Determines whether a specified object is valid. (Overrides ) + + + This method returns true if the is null. + It is assumed the is used if the value may not be null. + + The object to validate. + true if the value is null or less than or equal to the specified maximum length, otherwise false + Length is zero or less than negative one. + + + + Applies formatting to a specified error message. (Overrides ) + + The name to include in the formatted string. + A localized string to describe the maximum acceptable length. + + + + Checks that Length has a legal value. Throws InvalidOperationException if not. + + + + + Gets the maximum allowable length of the array/string data. + + + + + Specifies the minimum length of array/string data allowed in a property. + + + + + Initializes a new instance of the class. + + + The minimum allowable length of array/string data. + Value must be greater than or equal to zero. + + + + + Determines whether a specified object is valid. (Overrides ) + + + This method returns true if the is null. + It is assumed the is used if the value may not be null. + + The object to validate. + true if the value is null or greater than or equal to the specified minimum length, otherwise false + Length is less than zero. + + + + Applies formatting to a specified error message. (Overrides ) + + The name to include in the formatted string. + A localized string to describe the minimum acceptable length. + + + + Checks that Length has a legal value. Throws InvalidOperationException if not. + + + + + Gets the minimum allowable length of the array/string data. + + + + + Denotes that a property or class should be excluded from database mapping. + + + + + Specifies the database table that a class is mapped to. + + + + + Initializes a new instance of the class. + + The name of the table the class is mapped to. + + + + The name of the table the class is mapped to. + + + + + The schema of the table the class is mapped to. + + + + + The base for all all Entity Data Model (EDM) types that represent a type from the EDM type system. + + + + + Represents an item in an Entity Data Model (EDM) . + + + + + The base for all all Entity Data Model (EDM) item types that with a Name property that represents a qualified (can be dotted) name. + + + + + The base for all all Entity Data Model (EDM) item types that with a property. + + + + + The base for all all Entity Data Model (EDM) types that support annotation using . + + + + + EdmDataModelItem is the base for all types in the Entity Data Model (EDM) metadata construction and modification API. + + + + + DataModelItem is the base for all types in the EDM metadata reflection, construction and modification API. + + + + + Gets an value indicating which Entity Data Model (EDM) concept is represented by this item. + + + + + IAnnotatedDataModelItem is implemented by model-specific base types for all types with an property. + + + + + Gets or sets the currently assigned annotations. + + + + + Gets or sets the currently assigned annotations. + + + + + Returns all EdmItem children directly contained by this EdmItem. + + + + + INamedDataModelItem is implemented by model-specific base types for all types with a property. + + + + + Gets or sets the currently assigned name. + + + + + Gets or sets the currently assigned name. + + + + + Gets a value indicating whether this type is abstract. + + + + + Gets the optional base type of this type. + + + + + EdmStructuralMember is the base for all types that represent members of structural items in the Entity Data Model (EDM) metadata construction and modification API. + + + + + Represents information about a database connection. + + + + + Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file. + + The name of the connection string in the application configuration. + + + + Creates a new instance of DbConnectionInfo based on a connection string. + + The connection string to use for the connection. + The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. + + + + Gets the connection information represented by this instance. + + Configuration to use if connection comes from the configuration file. + + + + Instances of this class are used to create DbConnection objects for + SQL Server LocalDb based on a given database name or connection string. + + + An instance of this class can be set on the class or in the + app.config/web.config for the application to cause all DbContexts created with no + connection information or just a database name to use SQL Server LocalDb by default. + This class is immutable since multiple threads may access instances simultaneously + when creating connections. + + + + + Implementations of this interface are used to create DbConnection objects for + a type of database server based on a given database name. + An Instance is set on the class to + cause all DbContexts created with no connection information or just a database + name or connection string to use a certain type of database server by default. + Two implementations of this interface are provided: + is used to create connections to Microsoft SQL Server, including EXPRESS editions. + is used to create connections to Microsoft SQL + Server Compact Editions. + Other implementations for other database servers can be added as needed. + Note that implementations should be thread safe or immutable since they may + be accessed by multiple threads at the same time. + + + + + Creates a connection based on the given database name or connection string. + + The database name or connection string. + An initialized DbConnection. + + + + Creates a new instance of the connection factory for the given version of LocalDb. + For SQL Server 2012 LocalDb use "v11.0". + + The LocalDb version to use. + + + + Creates a new instance of the connection factory for the given version of LocalDb. + For SQL Server 2012 LocalDb use "v11.0". + + + The LocalDb version to use. + + The connection string to use for options to the database other than the 'Initial Catalog', + 'Data Source', and 'AttachDbFilename'. + The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the + database name when CreateConnection is called. + The 'Data Source' will be set based on the LocalDbVersion argument. + + + + + Creates a connection for SQL Server LocalDb based on the given database name or connection string. + If the given string contains an '=' character then it is treated as a full connection string, + otherwise it is treated as a database name only. + + The database name or connection string. + An initialized DbConnection. + + + + The connection string to use for options to the database other than the 'Initial Catalog', + 'Data Source', and 'AttachDbFilename'. + The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the + database name when CreateConnection is called. + The 'Data Source' will be set based on the LocalDbVersion argument. + The default is 'Integrated Security=True; MultipleActiveResultSets=True;'. + + + + + Encapsulates a cloned and store . Note that these + objects are disposable and should be used in a using block to ensure both the cloned context and the + cloned connection are disposed. + + + + + For mocking. + + + + + Creates a clone of the given . The underlying of + the context is also cloned and the given connection string is used for the connection string of + the cloned connection. + + + + + Finds the assemblies that were used for loading o-space types in the source context + and loads those assemblies in the cloned context. + + + + + Disposes both the underlying ObjectContext and its store connection. + + + + + The cloned context. + + + + + This is always the store connection of the underlying ObjectContext. + + + + + Represents setting the database initializer for a specific context type + + + + + Represents a parameter to be passed to a method + + + + + Represents a series of parameters to pass to a method + + + + + Adds a new parameter to the collection + Used for unit testing + + + + + Represents the configuration for a series of contexts + + + + + Adds a new context to the collection + Used for unit testing + + + + + Represents the configuration for a specific context type + + + + + Represents setting the default connection factory + + + + + Represents all Entity Framework related configuration + + + + + Handles creating databases either using the core provider or the Migrations pipeline. + + + + + Creates a database using the core provider (i.e. ObjectContext.CreateDatabase) or + by using Code First Migrations to create an empty database + and the perform an automatic migration to the current model. + Migrations is used if Code First is being used and the EF provider is for SQL Server + or SQL Compact. The core is used for non-Code First models and for other providers even + when using Code First. + + + + + A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that + it can be used to query from a database and group together changes that will then be written + back to the store as a unit. + DbContext is conceptually similar to ObjectContext. + + + DbContext is usually used with a derived type that contains properties for + the root entities of the model. These sets are automatically initialized when the + instance of the derived class is created. This behavior can be modified by applying the + attribute to either the entire derived context + class, or to individual properties on the class. + + The Entity Data Model backing the context can be specified in several ways. When using the Code First + approach, the properties on the derived context are used to build a model + by convention. The protected OnModelCreating method can be overridden to tweak this model. More + control over the model used for the Model First approach can be obtained by creating a + explicitly from a and passing this model to one of the DbContext constructors. + + When using the Database First or Model First approach the Entity Data Model can be created using the + Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using + entity connection string or an object. + + The connection to the database (including the name of the database) can be specified in several ways. + If the parameterless DbContext constructor is called from a derived context, then the name of the derived context + is used to find a connection string in the app.config or web.config file. If no connection string is found, then + the name is passed to the DefaultConnectionFactory registered on the class. The connection + factory then uses the context name as the database name in a default connection string. (This default connection + string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.) + + Instead of using the derived context name, the connection/database name can also be specified explicitly by + passing the name to one of the DbContext constructors that takes a string. The name can also be passed in + the form "name=myname", in which case the name must be found in the config file or an exception will be thrown. + + Note that the connection found in the app.config or web.config file can be a normal database connection + string (not a special Entity Framework connection string) in which case the DbContext will use Code First. + However, if the connection found in the config file is a special Entity Framework connection string, then the + DbContext will use Database/Model First and the model specified in the connection string will be used. + + An existing or explicitly created DbConnection can also be used instead of the database/connection name. + + A can be applied to a class derived from DbContext to set the + version of conventions used by the context when it creates a model. If no attribute is applied then the + latest version of conventions will be used. + + + + + Interface implemented by objects that can provide an instance. + The class implements this interface to provide access to the underlying + ObjectContext. + + + + + Gets the object context. + + The object context. + + + + Constructs a new context instance using conventions to create the name of the database to + which a connection will be made. The by-convention name is the full name (namespace + class name) + of the derived context class. + See the class remarks for how this is used to create a connection. + + + + + Constructs a new context instance using conventions to create the name of the database to + which a connection will be made, and initializes it from the given model. + The by-convention name is the full name (namespace + class name) of the derived context class. + See the class remarks for how this is used to create a connection. + + The model that will back this context. + + + + Constructs a new context instance using the given string as the name or connection string for the + database to which a connection will be made. + See the class remarks for how this is used to create a connection. + + Either the database name or a connection string. + + + + Constructs a new context instance using the given string as the name or connection string for the + database to which a connection will be made, and initializes it from the given model. + See the class remarks for how this is used to create a connection. + + Either the database name or a connection string. + The model that will back this context. + + + + Constructs a new context instance using the existing connection to connect to a database. + The connection will not be disposed when the context is disposed. + + An existing connection to use for the new context. + If set to true the connection is disposed when + the context is disposed, otherwise the caller must dispose the connection. + + + + Constructs a new context instance using the existing connection to connect to a database, + and initializes it from the given model. + The connection will not be disposed when the context is disposed. + An existing connection to use for the new context. + The model that will back this context. + If set to true the connection is disposed when + the context is disposed, otherwise the caller must dispose the connection. + + + + + Constructs a new context instance around an existing ObjectContext. + An existing ObjectContext to wrap with the new context. + If set to true the ObjectContext is disposed when + the DbContext is disposed, otherwise the caller must dispose the connection. + + + + + Initializes the internal context, discovers and initializes sets, and initializes from a model if one is provided. + + + + + Discovers DbSets and initializes them. + + + + + This method is called when the model for a derived context has been initialized, but + before the model has been locked down and used to initialize the context. The default + implementation of this method does nothing, but it can be overridden in a derived class + such that the model can be further configured before it is locked down. + + + Typically, this method is called only once when the first instance of a derived context + is created. The model for that context is then cached and is for all further instances of + the context in the app domain. This caching can be disabled by setting the ModelCaching + property on the given ModelBuidler, but note that this can seriously degrade performance. + More control over caching is provided through use of the DbModelBuilder and DbContextFactory + classes directly. + + The builder that defines the model for the context being created. + + + + Internal method used to make the call to the real OnModelCreating method. + + The model builder. + + + + Returns a DbSet instance for access to entities of the given type in the context, + the ObjectStateManager, and the underlying store. + + + See the DbSet class for more details. + + The type entity for which a set should be returned. + A set for the given entity type. + + + + Returns a non-generic DbSet instance for access to entities of the given type in the context, + the ObjectStateManager, and the underlying store. + + The type of entity for which a set should be returned. + A set for the given entity type. + + See the DbSet class for more details. + + + + + Saves all changes made in this context to the underlying database. + + The number of objects written to the underlying database. + Thrown if the context has been disposed. + + + + Validates tracked entities and returns a Collection of containing validation results. + + + Collection of validation results for invalid entities. The collection is never null and must not contain null + values or results for valid entities. + + + 1. This method calls DetectChanges() to determine states of the tracked entities unless + DbContextConfiguration.AutoDetectChangesEnabled is set to false. + 2. By default only Added on Modified entities are validated. The user is able to change this behavior + by overriding ShouldValidateEntity method. + + + + + Extension point allowing the user to override the default behavior of validating only + added and modified entities. + + DbEntityEntry instance that is supposed to be validated. + true to proceed with validation. false otherwise. + + + + Extension point allowing the user to customize validation of an entity or filter out validation results. + Called by . + + DbEntityEntry instance to be validated. + User defined dictionary containing additional info for custom validation. + It will be passed to + and will be exposed as . + This parameter is optional and can be null. + Entity validation result. Possibly null when overridden. + + + + Internal method that calls the protected ValidateEntity method. + + DbEntityEntry instance to be validated. + User defined dictionary containing additional info for custom validation. + It will be passed to + and will be exposed as . + This parameter is optional and can be null. + Entity validation result. Possibly null when ValidateEntity is overridden. + + + + Gets a object for the given entity providing access to + information about the entity and the ability to perform actions on the entity. + + The type of the entity. + The entity. + An entry for the entity. + + + + Gets a object for the given entity providing access to + information about the entity and the ability to perform actions on the entity. + + The entity. + An entry for the entity. + + + + Calls the protected Dispose method. + + + + + Disposes the context. The underlying is also disposed if it was created + is by this context or ownership was passed to this context when this context was created. + The connection to the database ( object) is also disposed if it was created + is by this context or ownership was passed to this context when this context was created. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates a Database instance for this context that allows for creation/deletion/existence checks + for the underlying database. + + + + + Returns the Entity Framework ObjectContext that is underlying this context. + + Thrown if the context has been disposed. + + + + Provides access to features of the context that deal with change tracking of entities. + + An object used to access features that deal with change tracking. + + + + Provides access to configuration options for the context. + + An object used to access configuration options. + + + + Provides access to the underlying InternalContext for other parts of the internal design. + + + + + A simple representation of an app.config or web.config file. + + + + + Initializes a new instance of AppConfig based on supplied configuration + + Configuration to load settings from + + + + Initializes a new instance of AppConfig based on supplied connection strings + The default configuration for database initializers and default connection factory will be used + + Connection strings to be used + + + + Initializes a new instance of AppConfig based on the for the AppDomain + + + Use AppConfig.DefaultInstance instead of this constructor + + + + + Appies any database intializers specified in the configuration + + + + + Appies any database intializers specified in the configuration + + + Value indicating if initializers should be re-applied if they have already been applied in this AppDomain + + + + + Gets the specified connection string from the configuration + + Name of the connection string to get + The connection string, or null if there is no connection string with the specified name + + + + Gets the default connection factory based on the configuration + + + + + Gets a singleton instance of configuration based on the for the AppDomain + + + + + Acts as a proxy for that for the most part just passes calls + through to the real object but uses virtual methods/properties such that uses of the object + can be mocked. + + + + + Encapsulates information read from the application config file that specifies a database initializer + and allows that initializer to be dynamically applied. + + + + + Initializes a new instance of the class. + + The key from the entry in the config file. + The value from the enrty in the config file. + + + + Uses the context type and initializer type specified in the config to create an initializer instance + and set it with the DbDbatabase.SetInitializer method. + + + + + Reads all initializers from the application config file and sets them using the Database class. + + + + + Calculates the model hash values used the EdmMetadata table from EF 4.1/4.2. + + + + + Calculates an SHA256 hash of the EDMX from the given code first model. This is the hash stored in + the database in the EdmMetadata table in EF 4.1/4.2. The hash is always calculated using a v2 schema + as was generated by EF 4.1/4.2 and with the entity included in the model. + + + + + Acts as a proxy for that for the most part just passes calls + through to the real object but uses virtual methods/properties such that uses of the object + can be mocked. + + + + + An implementation of that will use Code First Migrations + to update the database to the latest version. + + + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + Initializes a new instance of the MigrateDatabaseToLatestVersion class. + + + + + Initializes a new instance of the MigrateDatabaseToLatestVersion class that will + use a specific connection string from the configuration file to connect to + the database to perform the migration. + + The name of the connection string to use for migration. + + + + + + + Helper class that is used to configure a column. + + + + + Creates a new column definition to store Binary data. + + Value indicating whether or not the column allows null values. + The maximum allowable length of the array data. + Value indicating whether or not all data should be padded to the maximum length. + Value indicating whether or not the maximum length supported by the database provider should be used. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + Value indicating whether or not this column should be configured as a timestamp. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Boolean data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Byte data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store DateTime data. + + Value indicating whether or not the column allows null values. + The precision of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Decimal data. + + Value indicating whether or not the column allows null values. + The numeric precision of the column. + The numeric scale of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + Value indicating whether or not the database will generate values for this column during insert. + The newly constructed column definition. + + + + Creates a new column definition to store Double data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store GUID data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Single data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Short data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Integer data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Long data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store String data. + + Value indicating whether or not the column allows null values. + The maximum allowable length of the string data. + Value indicating whether or not all data should be padded to the maximum length. + Value indicating whether or not the maximum length supported by the database provider should be used. + Value indicating whether or not the column supports Unicode content. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Time data. + + Value indicating whether or not the column allows null values. + The precision of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store DateTimeOffset data. + + Value indicating whether or not the column allows null values. + The precision of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Helper class that is used to further configure a table being created from a CreateTable call on . + + + + + Initializes a new instance of the TableBuilder class. + + The table creation operation to be further configured. + The migration the table is created in. + + + + Specifies a primary key for the table. + + + A lambda expression representing the property to be used as the primary key. + C#: t => t.Id + VB.Net: Function(t) t.Id + + If the primary key is made up of multiple properties then specify an anonymous type including the properties. + C#: t => new { t.Id1, t.Id2 } + VB.Net: Function(t) New With { t.Id1, t.Id2 } + + + The name of the primary key. + If null is supplied, a default name will be generated. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + Itself, so that multiple calls can be chained. + + + + Specifies an index to be created on the table. + + + A lambda expression representing the property to be indexed. + C#: t => t.PropertyOne + VB.Net: Function(t) t.PropertyOne + + If multiple properties are to be indexed then specify an anonymous type including the properties. + C#: t => new { t.PropertyOne, t.PropertyTwo } + VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } + + A value indicating whether or not this is a unique index. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + Itself, so that multiple calls can be chained. + + + + Specifies a foreign key constraint to be created on the table. + + Name of the table that the foreign key constraint targets. + + A lambda expression representing the properties of the foreign key. + C#: t => t.PropertyOne + VB.Net: Function(t) t.PropertyOne + + If multiple properties make up the foreign key then specify an anonymous type including the properties. + C#: t => new { t.PropertyOne, t.PropertyTwo } + VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } + + A value indicating whether or not cascade delete should be configured on the foreign key constraint. + + + The name of this foreign key constraint. + If no name is supplied, a default name will be calculated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + Itself, so that multiple calls can be chained. + + + + Base class for code-based migrations. + + + + + Operations to be performed during the upgrade process. + + + + + Operations to be performed during the downgrade process. + + + + + Adds an operation to create a new table. + + + The columns in this create table operation. + You do not need to specify this type, it will be inferred from the columnsAction parameter you supply. + + The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. + + An action that specifies the columns to be included in the table. + i.e. t => new { Id = t.Int(identity: true), Name = t.String() } + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + An object that allows further configuration of the table creation operation. + + + + Adds an operation to create a new foreign key constraint. + + + The table that contains the foreign key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key column. + + The table that contains the column this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The column this foreign key references. + If no value is supplied the primary key of the principal table will be referenced. + + + A value indicating if cascade delete should be configured for the foreign key relationship. + If no value is supplied, cascade delete will be off. + + + The name of the foreign key constraint in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create a new foreign key constraint. + + + The table that contains the foreign key columns. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key columns. + + The table that contains the columns this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The columns this foreign key references. + If no value is supplied the primary key of the principal table will be referenced. + + + A value indicating if cascade delete should be configured for the foreign key relationship. + If no value is supplied, cascade delete will be off. + + + The name of the foreign key constraint in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a foreign key constraint based on its name. + + + The table that contains the foreign key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the foreign key constraint in the database. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a foreign key constraint based on the column it targets. + + + The table that contains the foreign key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key column. + + The table that contains the column this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + The columns this foreign key references. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a foreign key constraint based on the columns it targets. + + + The table that contains the foreign key columns. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key columns. + + The table that contains the columns this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + The columns this foreign key references. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a table. + + + The name of the table to be dropped. + Schema name is optional, if no schema is specified then dbo is assumed. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to move a table to a new schema. + + + The name of the table to be moved. + Schema name is optional, if no schema is specified then dbo is assumed. + + The schema the table is to be moved to. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to rename a table. To change the schema of a table use MoveTable + + + The name of the table to be renamed. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The new name for the table. + Schema name is optional, if no schema is specified then dbo is assumed. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to rename a column. + + + The name of the table that contains the column to be renamed. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to be renamed. + The new name for the column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to add a column to an existing table. + + + The name of the table to add the column to. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The name of the column to be added. + + + An action that specifies the column to be added. + i.e. c => c.Int(nullable: false, defaultValue: 3) + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an existing column. + + + The name of the table to drop the column from. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to alter the definition of an existing column. + + + The name of the table the column exists in. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to be changed. + + An action that specifies the new definition for the column. + i.e. c => c.String(nullable: false, defaultValue: "none") + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create a new primary key. + + + The table that contains the primary key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The primary key column. + + The name of the primary key in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create a new primary key based on multiple columns. + + + The table that contains the primary key columns. + Schema name is optional, if no schema is specified then dbo is assumed. + + The primary key columns. + + The name of the primary key in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an existing primary key that does not have the default name. + + + The table that contains the primary key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the primary key to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an existing primary key that was created with the default name. + + + The table that contains the primary key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create an index on a single column. + + + The name of the table to create the index on. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to create the index on. + + A value indicating if this is a unique index. + If no value is supplied a non-unique index will be created. + + + The name to use for the index in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create an index on multiple columns. + + + The name of the table to create the index on. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the columns to create the index on. + + A value indicating if this is a unique index. + If no value is supplied a non-unique index will be created. + + + The name to use for the index in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an index based on its name. + + + The name of the table to drop the index from. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the index to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an index based on the columns it targets. + + + The name of the table to drop the index from. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column(s) the index targets. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to execute a SQL command. + + The SQL to be executed. + + A value indicating if the SQL should be executed outside of the + transaction being used for the migration process. + If no value is supplied the SQL will be executed within the transaction. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Configuration relating to the use of migrations for a given model. + You will typically create a configuration class that derives + from rather than + using this class. + + + + + Initializes a new instance of the DbMigrationsConfiguration class. + + + + + Adds a new SQL generator to be used for a given database provider. + + Name of the database provider to set the SQL generator for. + The SQL generator to be used. + + + + Gets the SQL generator that is set to be used with a given database provider. + + Name of the database provider to get the SQL generator for. + The SQL generator that is set for the database provider. + + + + Gets or sets a value indicating if automatic migrations can be used when migration the database. + + + + + Gets or sets a value indicating if data loss is acceptable during automatic migration. + If set to false an exception will be thrown if data loss may occur as part of an automatic migration. + + + + + Gets or sets the derived DbContext representing the model to be migrated. + + + + + Gets or sets the namespace used for code-based migrations. + + + + + Gets or sets the sub-directory that code-based migrations are stored in. + + + + + Gets or sets the code generator to be used when scaffolding migrations. + + + + + Gets or sets the assembly containing code-based migrations. + + + + + Gets or sets a value to override the connection of the database to be migrated. + + + + + Gets or sets the timeout value used for the individual commands within a + migration. A null value indicates that the default value of the underlying + provider will be used. + + + + + Configuration relating to the use of migrations for a given model. + + The context representing the model that this configuration applies to. + + + + Initializes a new instance of the DbMigrationsConfiguration class. + + + + + Runs after upgrading to the latest migration to allow seed data to be updated. + + Context to be used for updating seed data. + + + + DbMigrator is used to apply existing migrations to a database. + DbMigrator can be used to upgrade and downgrade to any given migration. + To scaffold migrations based on changes to your model use + + + + + Base class for decorators that wrap the core + + + + + Initializes a new instance of the MigratorBase class. + + The migrator that this decorator is wrapping. + + + + Gets a list of the pending migrations that have not been applied to the database. + + List of migration Ids + + + + Updates the target database to the latest migration. + + + + + Updates the target database to a given migration. + + The migration to upgrade/downgrade to. + + + + Gets a list of the migrations that are defined in the assembly. + + List of migration Ids + + + + Gets a list of the migrations that have been applied to the database. + + List of migration Ids + + + + Gets the configuration being used for the migrations process. + + + + + Migration Id representing the state of the database before any migrations are applied. + + + + + Initializes a new instance of the DbMigrator class. + + Configuration to be used for the migration process. + + + + Gets all migrations that are defined in the configured migrations assembly. + + + + + Gets all migrations that have been applied to the target database. + + + + + Gets all migrations that are defined in the assembly but haven't been applied to the target database. + + + + + Updates the target database to a given migration. + + The migration to upgrade/downgrade to. + + + + Gets the configuration that is being used for the migration process. + + + + + A set of extension methods for + + + + + Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation + from database terminology. + This method can useful when seeding data using Migrations. + + The entities to add or update. + + When the parameter is a custom or fake IDbSet implementation, this method will + attempt to locate and invoke a public, instance method with the same signature as this extension method. + + + + + Adds or updates entities by a custom identification expression when SaveChanges is called. + Equivalent to an "upsert" operation from database terminology. + This method can useful when seeding data using Migrations. + + + An expression specifying the properties that should be used when determining + whether an Add or Update operation should be performed. + + The entities to add or update. + + When the parameter is a custom or fake IDbSet implementation, this method will + attempt to locate and invoke a public, instance method with the same signature as this extension method. + + + + + Generates C# code for a code-based migration. + + + + + Base class for providers that generate code for code-based migrations. + + + + + Generates the code that should be added to the users project. + + Unique identifier of the migration. + Operations to be performed by the migration. + Source model to be stored in the migration metadata. + Target model to be stored in the migration metadata. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Gets the namespaces that must be output as "using" or "Imports" directives to handle + the code generated by the given operations. + + The operations for which code is going to be generated. + An ordered list of namespace names. + + + + Gets the default namespaces that must be output as "using" or "Imports" directives for + any code generated. + + A value indicating if this class is being generated for a code-behind file. + An ordered list of namespace names. + + + + + + + Generates the primary code file that the user can view and edit. + + Operations to be performed by the migration. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates the code behind file with migration metadata. + + Unique identifier of the migration. + Source model to be stored in the migration metadata. + Target model to be stored in the migration metadata. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates a property to return the source or target model in the code behind file. + + Name of the property. + Value to be returned. + Text writer to add the generated code to. + + + + Generates a namespace, using statements and class definition. + + Namespace that code should be generated in. + Name of the class that should be generated. + Text writer to add the generated code to. + Base class for the generated class. + A value indicating if this class is being generated for a code-behind file. + Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. + + + + Generates the closing code for a class that was started with WriteClassStart. + + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify a set of column names using a lambda expression. + + The columns to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify the definition for a . + + The column definition to generate code for. + Text writer to add the generated code to. + A value indicating whether to include the column name in the definition. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column of unknown data type. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Removes any invalid characters from the name of an database artifact. + + The name to be scrubbed. + The scrubbed name. + + + + Gets the type name to use for a column of the given data type. + + The data type to translate. + The type name to use in the generated migration. + + + + Quotes an identifier using appropriate escaping to allow it to be stored in a string. + + The identifier to be quoted. + The quoted identifier. + + + + Scaffolds code-based migrations to apply pending model changes to the database. + + + + + Initializes a new instance of the MigrationScaffolder class. + + Configuration to be used for scaffolding. + + + + Scaffolds a code based migration to apply any pending model changes to the database. + + The name to use for the scaffolded migration. + The scaffolded migration. + + + + Scaffolds a code based migration to apply any pending model changes to the database. + + The name to use for the scaffolded migration. + Whether or not to include model changes. + The scaffolded migration. + + + + Scaffolds the initial code-based migration corresponding to a previously run database initializer. + + The scaffolded migration. + + + + Gets or sets the namespace used in the migration's generated code. + + By default, this is the same as MigrationsNamespace on the migrations + configuration object passed into the constructor. For VB.NET projects, this + will need to be updated to take into account the project's root namespace. + + + + + Represents a code-based migration that has been scaffolded and is ready to be written to a file. + + + + + Gets or sets the unique identifier for this migration. + Typically used for the file name of the generated code. + + + + + Gets or sets the scaffolded migration code that the user can edit. + + + + + Gets or sets the scaffolded migration code that should be stored in a code behind file. + + + + + Gets or sets the programming language used for this migration. + Typically used for the file extension of the generated code. + + + + + Gets or sets the subdirectory in the user's project that this migration should be saved in. + + + + + Gets a dictionary of string resources to add to the migration resource file. + + + + + Represents an exception that occurred while running an operation in another AppDomain in the . + + + + + Initializes a new instance of the ToolingException class. + + Error that explains the reason for the exception. + The type of the exception that was thrown. + The stack trace of the exception that was thrown. + + + + + + + + + + Gets the type of the exception that was thrown. + + + + + Gets the stack trace of the exception that was thrown. + + + + + Helper class that is used by design time tools to run migrations related + commands that need to interact with an application that is being edited + in Visual Studio. + + Because the application is being edited the assemblies need to + be loaded in a separate AppDomain to ensure the latest version + is always loaded. + + The App/Web.config file from the startup project is also copied + to ensure that any configuration is applied. + + + + + Initializes a new instance of the ToolingFacade class. + + + The name of the assembly that contains the migrations configuration to be used. + + + The namespace qualified name of migrations configuration to be used. + + + The working directory containing the compiled assemblies. + + + The path of the config file from the startup project. + + + The path of the application data directory from the startup project. + Typically the App_Data directory for web applications or the working directory for executables. + + + The connection to the database to be migrated. + If null is supplied, the default connection for the context will be used. + + + + + Releases all unmanaged resources used by the facade. + + + + + Gets the fully qualified name of all types deriving from . + + All context types found. + + + + Gets the fully qualified name of a type deriving from . + + The name of the context type. If null, the single context type found in the assembly will be returned. + The context type found. + + + + Gets a list of all migrations that have been applied to the database. + + Ids of applied migrations. + + + + Gets a list of all migrations that have not been applied to the database. + + Ids of pending migrations. + + + + Updates the database to the specified migration. + + + The Id of the migration to migrate to. + If null is supplied, the database will be updated to the latest migration. + + Value indicating if data loss during automatic migration is acceptable. + + + + Generates a SQL script to migrate between two migrations. + + + The migration to update from. + If null is supplied, a script to update the current database will be produced. + + + The migration to update to. + If null is supplied, a script to update to the latest migration will be produced. + + Value indicating if data loss during automatic migration is acceptable. + The generated SQL script. + + + + Scaffolds a code-based migration to apply any pending model changes. + + The name for the generated migration. + The programming language of the generated migration. + The root namespace of the project the migration will be added to. + Whether or not to include model changes. + The scaffolded migration. + + + + Scaffolds the initial code-based migration corresponding to a previously run database initializer. + + The programming language of the generated migration. + The root namespace of the project the migration will be added to. + The scaffolded migration. + + + + + + + Releases all resources used by the facade. + + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + + Gets or sets an action to be run to log information. + + + + + Gets or sets an action to be run to log warnings. + + + + + Gets or sets an action to be run to log verbose information. + + + + + Base class for loggers that can be used for the migrations process. + + + + + Logs an informational message. + + The message to be logged. + + + + Logs a warning that the user should be made aware of. + + The message to be logged. + + + + Logs some additional information that should only be presented to the user if they request verbose output. + + The message to be logged. + + + + Generates VB.Net code for a code-based migration. + + + + + + + + Generates the primary code file that the user can view and edit. + + Operations to be performed by the migration. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates the code behind file with migration metadata. + + Unique identifier of the migration. + Source model to be stored in the migration metadata. + Target model to be stored in the migration metadata. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates a property to return the source or target model in the code behind file. + + Name of the property. + Value to be returned. + Text writer to add the generated code to. + + + + Generates a namespace, using statements and class definition. + + Namespace that code should be generated in. + Name of the class that should be generated. + Text writer to add the generated code to. + Base class for the generated class. + A value indicating if this class is being generated for a code-behind file. + Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. + + + + Generates the closing code for a class that was started with WriteClassStart. + + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify a set of column names using a lambda expression. + + The columns to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify the definition for a . + + The column definition to generate code for. + Text writer to add the generated code to. + A value indicating whether to include the column name in the definition. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column of unknown data type. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Removes any invalid characters from the name of an database artifact. + + The name to be scrubbed. + The scrubbed name. + + + + Gets the type name to use for a column of the given data type. + + The data type to translate. + The type name to use in the generated migration. + + + + Quotes an identifier using appropriate escaping to allow it to be stored in a string. + + The identifier to be quoted. + The quoted identifier. + + + + This class is used by Code First Migrations to read and write migration history + from the database. It is not intended to be used by other code and is only public + so that it can be accessed by EF when running under partial trust. It may be + changed or removed in the future. + + + + + Gets or sets the Id of the migration this row represents. + + + + + Gets or sets the date and time that this migrations history entry was created. + + + + + Gets or sets the state of the model after this migration was applied. + + + + + Gets or sets the version of Entity Framework that created this entry. + + + + + This is a version of the HistoryContext that still includes CreatedOn in its model. + It is used when figuring out whether or not the CreatedOn column exists and so should + be dropped. + + + + + Represents an error that occurs when an automatic migration would result in data loss. + + + + + Represents errors that occur inside the Code First Migrations pipeline. + + + + + Initializes a new instance of the MigrationsException class. + + + + + Initializes a new instance of the MigrationsException class. + + The message that describes the error. + + + + Initializes a new instance of the MigrationsException class. + + The message that describes the error. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the MigrationsException class with serialized data. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + + Initializes a new instance of the AutomaticDataLossException class. + + The message that describes the error. + + + + Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled. + + + + + Initializes a new instance of the AutomaticMigrationsDisabledException class. + + The message that describes the error. + + + + Provides additional metadata about a code-based migration. + + + + + Gets the unique identifier for the migration. + + + + + Gets the state of the model before this migration is run. + + + + + Gets the state of the model after this migration is run. + + + + + Decorator to provide logging during migrations operations.. + + + + + Initializes a new instance of the MigratorLoggingDecorator class. + + The migrator that this decorator is wrapping. + The logger to write messages to. + + + + Decorator to produce a SQL script instead of applying changes to the database. + Using this decorator to wrap will prevent + from applying any changes to the target database. + + + + + Initializes a new instance of the MigratorScriptingDecorator class. + + The migrator that this decorator is wrapping. + + + + + Represents a column being added to a table. + + + + + Represents an operation to modify a database schema. + + + + + Initializes a new instance of the MigrationOperation class. + + + + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets additional arguments that may be processed by providers. + + + + + Gets an operation that will revert this operation. + + + + + Gets a value indicating if this operation may result in data loss. + + + + + Initializes a new instance of the AddColumnOperation class. + + The name of the table the column should be added to. + Details of the column being added. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table the column should be added to. + + + + + Gets the details of the column being added. + + + + + Gets an operation that represents dropping the added column. + + + + + + + + Represents a foreign key constraint being added to a table. + + + + + Base class for changes that affect foreign key constraints. + + + + + Initializes a new instance of the ForeignKeyOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets the name of the table that the foreign key constraint targets. + + + + + Gets or sets the name of the table that the foreign key columns exist in. + + + + + The names of the foreign key column(s). + + + + + Gets a value indicating if a specific name has been supplied for this foreign key constraint. + + + + + Gets or sets the name of this foreign key constraint. + If no name is supplied, a default name will be calculated. + + + + + Initializes a new instance of the AddForeignKeyOperation class. + The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to create an index on the foreign key column(s). + + An operation to add the index. + + + + The names of the column(s) that the foreign key constraint should target. + + + + + Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint. + + + + + Gets an operation to drop the foreign key constraint. + + + + + + + + Represents adding a primary key to a table. + + + + + Common base class to represent operations affecting primary keys. + + + + + Initializes a new instance of the PrimaryKeyOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets the name of the table that contains the primary key. + + + + + Gets the column(s) that make up the primary key. + + + + + Gets a value indicating if a specific name has been supplied for this primary key. + + + + + Gets or sets the name of this primary key. + If no name is supplied, a default name will be calculated. + + + + + + + + Initializes a new instance of the AddPrimaryKeyOperation class. + The Table and Columns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to drop the primary key. + + + + + Represents altering an existing column. + + + + + Initializes a new instance of the AlterColumnOperation class. + + The name of the table that the column belongs to. + Details of what the column should be altered to. + Value indicating if this change will result in data loss. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the AlterColumnOperation class. + + The name of the table that the column belongs to. + Details of what the column should be altered to. + Value indicating if this change will result in data loss. + An operation to revert this alteration of the column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table that the column belongs to. + + + + + Gets the new definition for the column. + + + + + Gets an operation that represents reverting the alteration. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents information about a column. + + + + + Initializes a new instance of the class. + + The data type for this column. + + + + Initializes a new instance of the class. + + The data type for this column. + + Additional details about the data type. + This includes details such as maximum length, nullability etc. + + + + + Determines if this column is a narrower data type than another column. + Used to determine if altering the supplied column definition to this definition will result in data loss. + + The column to compare to. + Details of the database provider being used. + True if this column is of a narrower data type. + + + + Gets the data type for this column. + + + + + Gets the CLR type corresponding to the database type of this column. + + + + + Gets the default value for the CLR type corresponding to the database type of this column. + + + + + Gets additional details about the data type of this column. + This includes details such as maximum length, nullability etc. + + + + + Gets or sets the name of the column. + + + + + Gets or sets a provider specific data type to use for this column. + + + + + Gets or sets a value indicating if this column can store null values. + + + + + Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern. + + + + + Gets or sets the maximum length for this column. + Only valid for array data types. + + + + + Gets or sets the precision for this column. + Only valid for decimal data types. + + + + + Gets or sets the scale for this column. + Only valid for decimal data types. + + + + + Gets or sets a constant value to use as the default value for this column. + + + + + Gets or sets a SQL expression used as the default value for this column. + + + + + Gets or sets a value indicating if this column is fixed length. + Only valid for array data types. + + + + + Gets or sets a value indicating if this column supports Unicode characters. + Only valid for textual data types. + + + + + Gets or sets a value indicating if this column should be configured as a timestamp. + + + + + Represents creating a database index. + + + + + Common base class for operations affecting indexes. + + + + + Initializes a new instance of the IndexOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets the table the index belongs to. + + + + + Gets or sets the columns that are indexed. + + + + + Gets a value indicating if a specific name has been supplied for this index. + + + + + Gets or sets the name of this index. + If no name is supplied, a default name will be calculated. + + + + + Initializes a new instance of the CreateIndexOperation class. + The Table and Columns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets a value indicating if this is a unique index. + + + + + Gets an operation to drop this index. + + + + + + + + Represents creating a table. + + + + + Initializes a new instance of the CreateTableOperation class. + + Name of the table to be created. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be created. + + + + + Gets the columns to be included in the new table. + + + + + Gets or sets the primary key for the new table. + + + + + Gets an operation to drop the table. + + + + + + + + Represents deleting a new record from the migrations history table. + The migrations history table is used to store a log of the migrations that have been applied to the database. + + + + + Common base class for operations that affect the migrations history table. + The migrations history table is used to store a log of the migrations that have been applied to the database. + + + + + Initializes a new instance of the HistoryOperation class. + + Name of the migrations history table. + Name of the migration being affected. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the migrations history table. + + + + + Gets the name of the migration being affected. + + + + + + + + Initializes a new instance of the DeleteHistoryOperation class. + + Name of the migrations history table. + Id of the migration record to be deleted. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Represents a column being dropped from a table. + + + + + Initializes a new instance of the DropColumnOperation class. + + The name of the table the column should be dropped from. + The name of the column to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropColumnOperation class. + + The name of the table the column should be dropped from. + The name of the column to be dropped. + The operation that represents reverting the drop operation. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table the column should be dropped from. + + + + + Gets the name of the column to be dropped. + + + + + Gets an operation that represents reverting dropping the column. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents a foreign key constraint being dropped from a table. + + + + + Initializes a new instance of the DropForeignKeyOperation class. + The PrincipalTable, DependentTable and DependentColumns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropForeignKeyOperation class. + + The operation that represents reverting dropping the foreign key constraint. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to drop the associated index on the foreign key column(s). + + An operation to drop the index. + + + + Gets an operation that represents reverting dropping the foreign key constraint. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents dropping an existing index. + + + + + Initializes a new instance of the DropIndexOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropIndexOperation class. + + The operation that represents reverting dropping the index. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation that represents reverting dropping the index. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents dropping a primary key from a table. + + + + + Initializes a new instance of the DropPrimaryKeyOperation class. + The Table and Columns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to add the primary key. + + + + + Represents dropping an existing table. + + + + + Initializes a new instance of the DropTableOperation class. + + The name of the table to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropTableOperation class. + + The name of the table to be dropped. + An operation that represents reverting dropping the table. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be dropped. + + + + + Gets an operation that represents reverting dropping the table. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents inserting a new record into the migrations history table. + The migrations history table is used to store a log of the migrations that have been applied to the database. + + + + + Initializes a new instance of the InsertHistoryOperation class. + + Name of the migrations history table. + Id of the migration record to be inserted. + Value to be stored in the model column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the value to store in the history table representing the target model of the migration. + + + + + Gets the value to store in the history table indicating the version of Entity Framework used to produce this migration. + + + + + + + + Represents moving a table from one schema to another. + + + + + Initializes a new instance of the MoveTableOperation class. + + Name of the table to be moved. + Name of the schema to move the table to. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be moved. + + + + + Gets the name of the schema to move the table to. + + + + + Gets an operation that moves the table back to its original schema. + + + + + + + + Represents renaming an existing column. + + + + + Initializes a new instance of the RenameColumnOperation class. + + Name of the table the column belongs to. + Name of the column to be renamed. + New name for the column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table the column belongs to. + + + + + Gets the name of the column to be renamed. + + + + + Gets the new name for the column. + + + + + Gets an operation that reverts the rename. + + + + + + + + Represents renaming an existing table. + + + + + Initializes a new instance of the RenameTableOperation class. + + Name of the table to be renamed. + New name for the table. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be renamed. + + + + + Gets the new name for the table. + + + + + Gets an operation that reverts the rename. + + + + + + + + Represents a provider specific SQL statement to be executed directly against the target database. + + + + + Initializes a new instance of the SqlOperation class. + + The SQL to be executed. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the SQL to be executed. + + + + + Gets or sets a value indicating whether this statement should be performed outside of + the transaction scope that is used to make the migration process transactional. + If set to true, this operation will not be rolled back if the migration process fails. + + + + + + + + Common base class for providers that convert provider agnostic migration + operations into database provider specific SQL commands. + + + + + Converts a set of migration operations into database provider specific SQL. + + The operations to be converted. + Token representing the version of the database being targeted. + A list of SQL statements to be executed to perform the migration operations. + + + + Represents a migration operation that has been translated into a SQL statement. + + + + + Gets or sets the SQL to be executed to perform this migration operation. + + + + + Gets or sets a value indicating whether this statement should be performed outside of + the transaction scope that is used to make the migration process transactional. + If set to true, this operation will not be rolled back if the migration process fails. + + + + + Provider to convert provider agnostic migration operations into SQL commands + that can be run against Microsoft SQL Server Compact Edition. + + + + + Provider to convert provider agnostic migration operations into SQL commands + that can be run against a Microsoft SQL Server database. + + + + + Converts a set of migration operations into Microsoft SQL Server specific SQL. + + The operations to be converted. + Token representing the version of SQL Server being targeted (i.e. "2005", "2008"). + A list of SQL statements to be executed to perform the migration operations. + + + + Creates an empty connection for the current provider. + Allows derived providers to use connection other than . + + + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL to mark a table as a system table. + Generated SQL should be added using the Statement method. + + The table to mark as a system table. + + + + Generates SQL to create a database schema. + Generated SQL should be added using the Statement method. + + The name of the schema to create. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL to specify a constant byte[] default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant bool default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant DateTime default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant DateTimeOffset default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant Guid default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant string default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant TimeSpan default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify the data type of a column. + This method just generates the actual type, not the SQL to create the column. + + The definition of the column. + SQL representing the data type. + + + + Generates a quoted name. The supplied name may or may not contain the schema. + + The name to be quoted. + The quoted name. + + + + Quotes an identifier for SQL Server. + + The identifier to be quoted. + The quoted identifier. + + + + Adds a new Statement to be executed against the database. + + The statement to be executed. + + Gets or sets a value indicating whether this statement should be performed outside of + the transaction scope that is used to make the migration process transactional. + If set to true, this operation will not be rolled back if the migration process fails. + + + + + Gets a new that can be used to build SQL. + + This is just a helper method to create a writer. Writing to the writer will + not cause SQL to be registered for execution. You must pass the generated + SQL to the Statement method. + + An empty text writer to use for SQL generation. + + + + Adds a new Statement to be executed against the database. + + The writer containing the SQL to be executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Utility class to prep the user's config file to run in an AppDomain + + + + + Updates a config file by adding binding redirects for EntityFramework.dll. + This ensures that the user's code can be ran in an AppDomain and the exact + same version of the assembly will be used for both domains. + + That path of the user's config file. Can also be null or a path to an non-existent file. + The path of the updated config file. It is the caller's responsibility to delete this. + + + + The same as but works in partial trust. + + + + + Specifies the default tab string. This field is constant. + + + + + Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string. + + The to use for output. + + + + Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string. + + The to use for output. + The tab string to use for indentation. + + + + Closes the document being written to. + + + + + Flushes the stream. + + + + + Outputs the tab string once for each level of indentation according to the property. + + + + + Writes the specified string to the text stream. + + The string to write. + + + + Writes the text representation of a Boolean value to the text stream. + + The Boolean value to write. + + + + Writes a character to the text stream. + + The character to write. + + + + Writes a character array to the text stream. + + The character array to write. + + + + Writes a subarray of characters to the text stream. + + The character array to write data from. + Starting index in the buffer. + The number of characters to write. + + + + Writes the text representation of a Double to the text stream. + + The double to write. + + + + Writes the text representation of a Single to the text stream. + + The single to write. + + + + Writes the text representation of an integer to the text stream. + + The integer to write. + + + + Writes the text representation of an 8-byte integer to the text stream. + + The 8-byte integer to write. + + + + Writes the text representation of an object to the text stream. + + The object to write. + + + + Writes out a formatted string, using the same semantics as specified. + + The formatting string. + The object to write into the formatted string. + + + + Writes out a formatted string, using the same semantics as specified. + + The formatting string to use. + The first object to write into the formatted string. + The second object to write into the formatted string. + + + + Writes out a formatted string, using the same semantics as specified. + + The formatting string to use. + The argument array to output. + + + + Writes the specified string to a line without tabs. + + The string to write. + + + + Writes the specified string, followed by a line terminator, to the text stream. + + The string to write. + + + + Writes a line terminator. + + + + + Writes the text representation of a Boolean, followed by a line terminator, to the text stream. + + The Boolean to write. + + + + Writes a character, followed by a line terminator, to the text stream. + + The character to write. + + + + Writes a character array, followed by a line terminator, to the text stream. + + The character array to write. + + + + Writes a subarray of characters, followed by a line terminator, to the text stream. + + The character array to write data from. + Starting index in the buffer. + The number of characters to write. + + + + Writes the text representation of a Double, followed by a line terminator, to the text stream. + + The double to write. + + + + Writes the text representation of a Single, followed by a line terminator, to the text stream. + + The single to write. + + + + Writes the text representation of an integer, followed by a line terminator, to the text stream. + + The integer to write. + + + + Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. + + The 8-byte integer to write. + + + + Writes the text representation of an object, followed by a line terminator, to the text stream. + + The object to write. + + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + + The formatting string. + The object to write into the formatted string. + + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + + The formatting string to use. + The first object to write into the formatted string. + The second object to write into the formatted string. + + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + + The formatting string to use. + The argument array to output. + + + + Writes the text representation of a UInt32, followed by a line terminator, to the text stream. + + A UInt32 to output. + + + + Gets the encoding for the text writer to use. + + + An that indicates the encoding for the text writer to use. + + + + + Gets or sets the new line character to use. + + + The new line character to use. + + + + + Gets or sets the number of spaces to indent. + + + The number of spaces to indent. + + + + + Gets the to use. + + + The to use. + + + + + Used for generating values that are always in sequential + order for the calling thread. + + + + + Returns the value of unless this value would be the same as the + last value returned by this thread calling this method, in which case the thread pushes the value + a little bit into the future. The comparison is in terms of the form used to store migration ID + in the database--i.e. to the 1/10 second. + + + There should never be any pushing to the future involved for normal use of migrations, but when + this method is called in rapid succession while testing or otherwise calling the DbMigrator APIs + there may be occasional sleeping. + + + + + Same as UtcNow method bur returns the time in the timestamp format used in migration IDs. + + + + + Convention to apply column ordering specified via + or the API. This convention throws if a duplicate configured column order + is detected. + + + + + Convention to apply column ordering specified via + or the API. + + + + + Identifies conventions that can be removed from a instance. + + /// + Note that implementations of this interface must be immutable. + + + + + Strongly-typed and parameterized string resources. + + + + + A string like "Applying automatic migration: {0}." + + + + + A string like "Reverting automatic migration: {0}." + + + + + A string like "Applying code-based migration: {0}." + + + + + A string like "Reverting code-based migration: {0}." + + + + + A string like "Applying code-based migrations: [{1}]." + + + + + A string like "Reverting migrations: [{1}]." + + + + + A string like "Target database is already at version {0}." + + + + + A string like "Target database is: {0}." + + + + + A string like "'{1}' (DataSource: {0}, Provider: {2}, Origin: {3})" + + + + + A string like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id." + + + + + A string like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key." + + + + + A string like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp." + + + + + A string like "'{0}' is not a valid migration. Code-based migrations must be used for both source and target when scripting the upgrade between them." + + + + + A string like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory." + + + + + A string like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead." + + + + + A string like "The migrations configuration type '{0}' was not be found in the assembly '{1}'." + + + + + A string like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use." + + + + + A string like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)." + + + + + A string like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use." + + + + + A string like "The type '{0}' is not a migrations configuration type." + + + + + A string like "The migrations configuration type '{0}' must have a public default constructor." + + + + + A string like "The migrations configuration type '{0}' must not be abstract." + + + + + A string like "The migrations configuration type '{0}' must not be generic." + + + + + A string like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added." + + + + + + A string like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators." + + + + + A string like "Could not load assembly '{0}'. (If you are using Code First Migrations inside Visual Studio this can happen if the startUp project for your solution does not reference the project that contains your migrations. You can either change the startUp project for your solution or use the -StartUpProjectName parameter.)" + + + + + A string like "No context type was found in the assembly '{0}'." + + + + + A string like "More than one context type was found in the assembly '{0}'." + + + + + A string like "To enable migrations for {0}, use Enable-Migrations -ContextTypeName {0}." + + + + + A string like "The context type '{0}' was not found in the assembly '{1}'." + + + + + A string like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context." + + + + + A string like "The argument '{0}' cannot be null, empty or contain only white space." + + + + + A string like "The argument property '{0}' cannot be null." + + + + + A string like "The precondition '{0}' failed. {1}" + + + + + A string like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type." + + + + + A string like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type." + + + + + A string like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + A string like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + A string like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property." + + + + + A string like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property." + + + + + A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'." + + + + + A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'." + + + + + A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + + A string like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}" + + + + + A string like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}" + + + + + A string like "{0} = {1} conflicts with {2} = {3}" + + + + + A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject." + + + + + A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject." + + + + + A string like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys." + + + + + A string like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities." + + + + + A string like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + A string like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + A string like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys." + + + + + A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty." + + + + + A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names." + + + + + A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name." + + + + + A string like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API." + + + + + A string like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property." + + + + + A string like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property." + + + + + A string like "\t{0}: {1}: {2}" + + + + + A string like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'." + + + + + A string like "The {0} value '{1}' already exists in the user-defined dictionary." + + + + + A string like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call." + + + + + A string like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name." + + + + + A string like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax." + + + + + A string like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation." + + + + + A string like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string." + + + + + A string like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set." + + + + + A string like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model." + + + + + A string like "Unable to determine the provider name for connection of type '{0}'." + + + + + A string like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length." + + + + + A string like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length." + + + + + A string like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method." + + + + + A string like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once." + + + + + A string like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once." + + + + + A string like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used." + + + + + A string like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them." + + + + + A string like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type." + + + + + A string like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types." + + + + + A string like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified." + + + + + A string like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns." + + + + + A string like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations." + + + + + A string like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. " + + + + + A string like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. " + + + + + A string like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct." + + + + + A string like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct." + + + + + A string like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties." + + + + + A string like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation." + + + + + A string like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor." + + + + + A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor." + + + + + + A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state." + + + + + A string like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model." + + + + + + A string like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed." + + + + + A string like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created." + + + + + + + A string like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method." + + + + + A string like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method." + + + + + A string like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method." + + + + + A string like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method." + + + + + A string like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method." + + + + + A string like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property." + + + + + A string like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property."" + + + + + A string like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties."" + + + + + A string like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'." + + + + + A string like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead." + + + + + A string like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'." + + + + + A string like "The expression passed to method {0} must represent a property defined on the type '{1}'." + + + + + A string like "{0} cannot be used for entities in the {1} state." + + + + + A string like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'." + + + + + A string like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property." + + + + + A string like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'." + + + + + A string like "The '{0}' property does not exist or is not mapped for the type '{1}'." + + + + + A string like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'." + + + + + A string like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'." + + + + + A string like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties." + + + + + A string like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties." + + + + + A string like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null." + + + + + A string like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null." + + + + + A string like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)." + + + + + A string like "Database '{0}' cannot be created because it already exists." + + + + + + + A string like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. See inner exception for details." + + + + + A string like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once." + + + + + A string like "Failed to set Database.DefaultConnectionFactory to an instance of the '{0}' type as specified in the application configuration. See inner exception for details." + + + + + A string like "The type '{0}' could not be found. The type name must be an assembly-qualified name." + + + + + A string like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute."" + + + + + A string like "The entity found was of type {0} when an entity of type {1} was requested." + + + + + A string like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types." + + + + + A string like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute." + + + + + A string like "The entity type {0} is not part of the model for the current context." + + + + + A string like "No connection string named '{0}' could be found in the application config file." + + + + + A string like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor." + + + + + A string like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'." + + + + + A string like "The context type '{0}' must have a public constructor taking an EntityConnection." + + + + + A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.IsValid. See the inner exception for details." + + + + + A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.Validate. See the inner exception for details." + + + + + A string like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file." + + + + + A string like "The context factory type '{0}' must have a public default constructor." + + + + + A string like "The '{0}' property of EdmPrimitiveType is fixed and cannot be set." + + + + + A string like "The namespace '{0}' is a system namespace and cannot be used by other schemas. Choose another namespace name." + + + + + A string like "Role '{0}' in AssociationSets '{1}' and '{2}' refers to the same EntitySet '{3}' in EntityContainer '{4}'. Make sure that if two or more AssociationSets refer to the same AssociationType, the ends do not refer to the same EntitySet." + + + + + A string like "The referenced EntitySet '{0}' for End '{1}' could not be found in the containing EntityContainer." + + + + + A string like "Type '{0}' is derived from type '{1}' that is the type for EntitySet '{2}'. Type '{0}' defines new concurrency requirements that are not allowed for subtypes of base EntitySet types." + + + + + A string like "EntitySet '{0}' is based on type '{1}' that has no keys defined." + + + + + A string like "The end name '{0}' is already defined." + + + + + A string like "The key specified in EntityType '{0}' is not valid. Property '{1}' is referenced more than once in the Key element." + + + + + A string like "Property '{0}' has a CollectionKind specified but is not a collection property." + + + + + A string like "Property '{0}' has a CollectionKind specified. CollectionKind is only supported in version 1.1 EDM models." + + + + + A string like "ComplexType '{0}' is marked as abstract. Abstract ComplexTypes are only supported in version 1.1 EDM models." + + + + + A string like "ComplexType '{0}' has a BaseType specified. ComplexType inheritance is only supported in version 1.1 EDM models." + + + + + A string like "Key part '{0}' for type '{1}' is not valid. All parts of the key must be non-nullable." + + + + + A string like "The property '{0}' in EntityType '{1}' is not valid. All properties that are part of the EntityKey must be of PrimitiveType." + + + + + A string like "Key usage is not valid. The {0} class cannot define keys because one of its base classes ('{1}') defines keys." + + + + + A string like "EntityType '{0}' has no key defined. Define the key for this EntityType." + + + + + A string like "NavigationProperty is not valid. Role '{0}' or Role '{1}' is not defined in Relationship '{2}'." + + + + + A string like "End '{0}' on relationship '{1}' cannot have an operation specified because its multiplicity is '*'. Operations cannot be specified on ends with multiplicity '*'." + + + + + A string like "Each Name and PluralName in a relationship must be unique. '{0}' is already defined." + + + + + A string like "In relationship '{0}', the Principal and Dependent Role of the referential constraint refer to the same Role in the relationship type." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Valid values for multiplicity for the Principal Role are '0..1' or '1'." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because all the properties in the Dependent Role are nullable, multiplicity of the Principal Role must be '0..1'." + + + + + A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because at least one of the properties in the Dependent Role is non-nullable, multiplicity of the Principal Role must be '1'." + + + + + A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because all of the properties in the Dependent Role are non-nullable, multiplicity of the Principal Role must be '1'." + + + + + A string like "Properties referred by the Dependent Role '{0}' must be a subset of the key of the EntityType '{1}' referred to by the Dependent Role in the referential constraint for relationship '{2}'." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be '*'." + + + + + A string like "The types of all properties in the Dependent Role of a referential constraint must be the same as the corresponding property types in the Principal Role. The type of property '{0}' on entity '{1}' does not match the type of property '{2}' on entity '{3}' in the referential constraint '{4}'." + + + + + A string like "There is no property with name '{0}' defined in the type referred to by Role '{1}'." + + + + + A string like "A nullable ComplexType is not supported. Property '{0}' must not allow nulls." + + + + + A string like "A property cannot be of type '{0}'. The property type must be a ComplexType or a PrimitiveType." + + + + + A string like "Each member name in an EntityContainer must be unique. A member with name '{0}' is already defined." + + + + + A string like "Each type name in a schema must be unique. Type name '{0}' is already defined." + + + + + A string like "Name '{0}' cannot be used in type '{1}'. Member names cannot be the same as their enclosing type." + + + + + A string like "Each property name in a type must be unique. Property name '{0}' is already defined." + + + + + A string like "A cycle was detected in the type hierarchy of '{0}'." + + + + + A string like "A property cannot be of type '{0}'. The property type must be a ComplexType, a PrimitiveType, or a CollectionType." + + + + + A string like "A property cannot be of type {0}. The property type must be a ComplexType, a PrimitiveType or an EnumType." + + + + + A string like "The specified name must not be longer than 480 characters: '{0}'." + + + + + A string like "The specified name is not allowed: '{0}'." + + + + + A string like "The field {0} must be a string or array type with a maximum length of '{1}'." + + + + + A string like "The field {0} must be a string or array type with a minimum length of '{1}'." + + + + + A string like "No connection string named '{0}' could be found in the application config file." + + + + + A string like "AutomaticMigration" + + + + + A string like "BootstrapMigration" + + + + + A string like "InitialCreate" + + + + + A string like "Automatic migration was not applied because it would result in data loss." + + + + + A string like "[Inserting migration history record]" + + + + + A string like "[Deleting migration history record]" + + + + + A string like "[Updating EdmMetadata model hash]" + + + + + A string like "Running Seed method." + + + + + A string like "No pending code-based migrations." + + + + + A string like "Explicit" + + + + + A string like "Upgrading history table." + + + + + A string like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)." + + + + + A string like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration." + + + + + A string like "Scripting the downgrade between two specified migrations is not supported." + + + + + A string like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it." + + + + + A string like "One or more validation errors were detected during model generation:" + + + + + A string like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported." + + + + + A string like "Connection to the database failed. The connection string is configured with an invalid LocalDB server name. This may have been set in 'global.asax' by a pre-release version of MVC4. The default connection factory is now set in web.config so the line in 'global.asax' starting with 'Database.DefaultConnectionFactory = ' should be removed. See http://go.microsoft.com/fwlink/?LinkId=243166 for details." + + + + + A string like "An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct." + + + + + A string like "Setting IsModified to false for a modified property is not supported." + + + + + A string like "An error occurred while saving entities that do not expose foreign key properties for their relationships. The EntityEntries property will return null because a single entity cannot be identified as the source of the exception. Handling of exceptions while saving can be made easier by exposing foreign key properties in your entity types. See the InnerException for details." + + + + + A string like "The set of property value names is read-only." + + + + + A string like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type." + + + + + A string like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility." + + + + + A string like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions." + + + + + A string like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations." + + + + + A string like "The context cannot be used while the model is being created." + + + + + A string like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)." + + + + + A string like "The operation cannot be completed because the DbContext has been disposed." + + + + + A string like "The provider factory returned a null connection." + + + + + A string like "The DbConnectionFactory instance returned a null connection." + + + + + A string like "The number of primary key values passed must match number of primary key values defined on the entity." + + + + + A string like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details." + + + + + A string like "Multiple entities were found in the Added state that match the given primary key values." + + + + + A string like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()." + + + + + A string like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties." + + + + + A string like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection." + + + + + A string like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used." + + + + + A string like "Validation failed for one or more entities. See 'EntityValidationErrors' property for more details." + + + + + A string like "An exception occurred while initializing the database. See the InnerException for details." + + + + + A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + A string like "Code generated using the T4 templates for Database First and Model First development may not work correctly if used in Code First mode. To continue using Database First or Model First ensure that the Entity Framework connection string is specified in the config file of executing application. To use these classes, that were generated from Database First or Model First, with Code First add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception." + + + + + A string like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method." + + + + + A string like "NavigationProperty is not valid. The FromRole and ToRole are the same." + + + + + A string like "OnDelete can be specified on only one End of an EdmAssociation." + + + + + A string like "The number of properties in the Dependent and Principal Roles in a relationship constraint must be identical." + + + + + A string like "The name is missing or not valid." + + + + + A string like "AssociationEnd must not be null." + + + + + A string like "DependentEnd must not be null." + + + + + A string like "DependentProperties must not be empty." + + + + + A string like "Association must not be null." + + + + + A string like "ResultEnd must not be null." + + + + + A string like "EntityType must not be null." + + + + + A string like "ElementType must not be null." + + + + + A string like "ElementType must not be null." + + + + + A string like "SourceSet must not be null." + + + + + A string like "TargetSet must not be null." + + + + + A string like "The type is not a valid EdmTypeReference." + + + + + A string like "Serializer can only serialize an EdmModel that has one EdmNamespace and one EdmEntityContainer." + + + + + A string like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + A string like "MinLengthAttribute must have a Length value that is zero or greater." + + + + + A string like "The connection can not be overridden because this context was created from an existing ObjectContext." + + + + + A string like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection." + + + + + A string like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection." + + + + + Strongly-typed and parameterized exception factory. + + + + + Migrations.Infrastructure.AutomaticDataLossException with message like "Automatic migration was not applied because it would result in data loss." + + + + + Migrations.Infrastructure.MigrationsException with message like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)." + + + + + Migrations.Infrastructure.MigrationsException with message like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id." + + + + + Migrations.Infrastructure.MigrationsException with message like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key." + + + + + Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp." + + + + + Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid migration. Code-based migrations must be used for both source and target when scripting the upgrade between them." + + + + + Migrations.Infrastructure.MigrationsException with message like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory." + + + + + Migrations.Infrastructure.MigrationsException with message like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead." + + + + + Migrations.Infrastructure.AutomaticMigrationsDisabledException with message like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration." + + + + + Migrations.Infrastructure.MigrationsException with message like "Scripting the downgrade between two specified migrations is not supported." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' was not be found in the assembly '{1}'." + + + + + Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use." + + + + + Migrations.Infrastructure.MigrationsException with message like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)." + + + + + Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use." + + + + + Migrations.Infrastructure.MigrationsException with message like "The type '{0}' is not a migrations configuration type." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must have a public default constructor." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must not be abstract." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must not be generic." + + + + + Migrations.Infrastructure.MigrationsException with message like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it." + + + + + Migrations.Infrastructure.MigrationsException with message like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added." + + + + + + Migrations.Infrastructure.MigrationsException with message like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators." + + + + + Migrations.Infrastructure.MigrationsException with message like "No context type was found in the assembly '{0}'." + + + + + Migrations.Infrastructure.MigrationsException with message like "The context type '{0}' was not found in the assembly '{1}'." + + + + + Migrations.Infrastructure.MigrationsException with message like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context." + + + + + ArgumentException with message like "The argument '{0}' cannot be null, empty or contain only white space." + + + + + ArgumentException with message like "The argument property '{0}' cannot be null." + + + + + ArgumentException with message like "The precondition '{0}' failed. {1}" + + + + + InvalidOperationException with message like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type." + + + + + InvalidOperationException with message like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type." + + + + + InvalidOperationException with message like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + InvalidOperationException with message like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + InvalidOperationException with message like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property." + + + + + InvalidOperationException with message like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property." + + + + + InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'." + + + + + InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'." + + + + + InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + + InvalidOperationException with message like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}" + + + + + InvalidOperationException with message like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}" + + + + + InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject." + + + + + InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys." + + + + + MappingException with message like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities." + + + + + InvalidOperationException with message like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + InvalidOperationException with message like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + InvalidOperationException with message like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys." + + + + + InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty." + + + + + InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names." + + + + + InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name." + + + + + InvalidOperationException with message like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API." + + + + + InvalidOperationException with message like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property." + + + + + InvalidOperationException with message like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property." + + + + + InvalidOperationException with message like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'." + + + + + InvalidOperationException with message like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call." + + + + + InvalidOperationException with message like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name." + + + + + InvalidOperationException with message like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax." + + + + + InvalidOperationException with message like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation." + + + + + ArgumentException with message like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string." + + + + + InvalidOperationException with message like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set." + + + + + InvalidOperationException with message like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model." + + + + + NotSupportedException with message like "Unable to determine the provider name for connection of type '{0}'." + + + + + ArgumentException with message like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length." + + + + + ArgumentException with message like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length." + + + + + InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method." + + + + + InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once." + + + + + InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once." + + + + + InvalidOperationException with message like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used." + + + + + InvalidOperationException with message like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them." + + + + + InvalidOperationException with message like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type." + + + + + InvalidOperationException with message like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types." + + + + + InvalidOperationException with message like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified." + + + + + InvalidOperationException with message like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns." + + + + + InvalidOperationException with message like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported." + + + + + InvalidOperationException with message like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations." + + + + + InvalidOperationException with message like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. " + + + + + NotSupportedException with message like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. " + + + + + InvalidOperationException with message like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct." + + + + + InvalidOperationException with message like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct." + + + + + NotSupportedException with message like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties." + + + + + InvalidOperationException with message like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation." + + + + + InvalidOperationException with message like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor." + + + + + InvalidOperationException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor." + + + + + + NotSupportedException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state." + + + + + InvalidOperationException with message like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model." + + + + + + ArgumentException with message like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed." + + + + + ArgumentException with message like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created." + + + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property." + + + + + ArgumentException with message like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property."" + + + + + NotSupportedException with message like "Setting IsModified to false for a modified property is not supported." + + + + + ArgumentException with message like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties."" + + + + + ArgumentException with message like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'." + + + + + ArgumentException with message like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead." + + + + + ArgumentException with message like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'." + + + + + ArgumentException with message like "The expression passed to method {0} must represent a property defined on the type '{1}'." + + + + + InvalidOperationException with message like "{0} cannot be used for entities in the {1} state." + + + + + InvalidOperationException with message like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'." + + + + + InvalidOperationException with message like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property." + + + + + InvalidOperationException with message like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'." + + + + + NotSupportedException with message like "The set of property value names is read-only." + + + + + ArgumentException with message like "The '{0}' property does not exist or is not mapped for the type '{1}'." + + + + + ArgumentException with message like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'." + + + + + ArgumentException with message like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'." + + + + + ArgumentException with message like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type." + + + + + InvalidOperationException with message like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties." + + + + + InvalidOperationException with message like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties." + + + + + InvalidOperationException with message like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null." + + + + + InvalidOperationException with message like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null." + + + + + InvalidOperationException with message like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)." + + + + + InvalidOperationException with message like "Database '{0}' cannot be created because it already exists." + + + + + NotSupportedException with message like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility." + + + + + NotSupportedException with message like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions." + + + + + NotSupportedException with message like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations." + + + + + + + InvalidOperationException with message like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. See inner exception for details." + + + + + InvalidOperationException with message like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once." + + + + + InvalidOperationException with message like "Failed to set Database.DefaultConnectionFactory to an instance of the '{0}' type as specified in the application configuration. See inner exception for details." + + + + + InvalidOperationException with message like "The type '{0}' could not be found. The type name must be an assembly-qualified name." + + + + + InvalidOperationException with message like "The context cannot be used while the model is being created." + + + + + InvalidOperationException with message like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)." + + + + + InvalidOperationException with message like "The operation cannot be completed because the DbContext has been disposed." + + + + + InvalidOperationException with message like "The provider factory returned a null connection." + + + + + InvalidOperationException with message like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute."" + + + + + InvalidOperationException with message like "The DbConnectionFactory instance returned a null connection." + + + + + ArgumentException with message like "The number of primary key values passed must match number of primary key values defined on the entity." + + + + + ArgumentException with message like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details." + + + + + InvalidOperationException with message like "The entity found was of type {0} when an entity of type {1} was requested." + + + + + InvalidOperationException with message like "Multiple entities were found in the Added state that match the given primary key values." + + + + + InvalidOperationException with message like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types." + + + + + InvalidOperationException with message like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute." + + + + + InvalidOperationException with message like "The entity type {0} is not part of the model for the current context." + + + + + NotSupportedException with message like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()." + + + + + ArgumentException with message like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties." + + + + + InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file." + + + + + InvalidOperationException with message like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection." + + + + + NotSupportedException with message like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor." + + + + + NotSupportedException with message like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used." + + + + + InvalidOperationException with message like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'." + + + + + InvalidOperationException with message like "The context type '{0}' must have a public constructor taking an EntityConnection." + + + + + NotSupportedException with message like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file." + + + + + DataException with message like "An exception occurred while initializing the database. See the InnerException for details." + + + + + NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + InvalidOperationException with message like "The context factory type '{0}' must have a public default constructor." + + + + + InvalidOperationException with message like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method." + + + + + InvalidOperationException with message like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + InvalidOperationException with message like "MinLengthAttribute must have a Length value that is zero or greater." + + + + + InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file." + + + + + InvalidOperationException with message like "The connection can not be overridden because this context was created from an existing ObjectContext." + + + + + InvalidOperationException with message like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection." + + + + + InvalidOperationException with message like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection." + + + + + The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument. + + + + + The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method. + + + + + The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag. + + + + + The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality. + + + + + AutoGenerated resource class. Usage: + + string s = EntityRes.GetString(EntityRes.MyIdenfitier); + + + + + Allows the construction and modification of a user-specified annotation (name-value pair) on a instance. + + + + + Gets or sets an optional namespace that can be used to distinguish the annotation from others with the same value. + + + + + Gets or sets the name of the annotation. + + + + + Gets or sets the value of the annotation. + + + + + + + + + DataModelEventArgs is the base argument type for all events raised by consumers of Entity Data Model (EDM) models. + + + + + Gets a value indicating the that caused the event to be raised. + + + + + Gets an optional value indicating which property of the source item caused the event to be raised. + + + + + Gets a value that identifies the specific error that is being raised. + + + + + Gets an optional descriptive message the describes the error that is being raised. + + + + + DbAliasedMetadataItem provides the base type for all Database Metadata types that can have an optional that should be used instead of the item's when referring to the item in the database. + + + + + NamedDbItem is the base for all types in the Database Metadata construction and modification API with a property. + + + + + The base for all all Database Metadata types that support annotation using . + + + + + DbDataModelItem is the base for all types in the Database Metadata construction and modification API. + + + + + Gets or sets the currently assigned annotations. + + + + + Gets or sets the currently assigned name. + + + + + Gets an optional alternative identifier that should be used when referring to this item in the database. + + + + + When implemented in derived types, allows the construction and modification of a column in a Database Metadata table or row. + + + + + Gets or sets a string indicating the database-specific type of the column. + + + + + Gets or sets a value indicating whether the column is nullable. + + + + + Gets or sets an optional instance that applies additional constraints to the referenced database-specific type of the column. + + + + + Allows the construction and modification of a database in a Database Metadata model. + + + + + Gets or sets an optional value that indicates the database model version. + + + + + Gets or sets the collection of instances that specifies the schemas within the database. + + + + + Allows the construction and modification of a foreign key constraint sourced by a instance. + + + + + Gets or sets the to take when a delete operation is attempted. + + + + + Indicates which Database Metadata concept is represented by a given item. + + + + + Database Kind + + + + + Schema Kind + + + + + Foreign Key Constraint Kind + + + + + Function Kind + + + + + Function Parameter Kind + + + + + Function Return or Parameter Type Kind + + + + + Row Column Kind + + + + + Table Kind + + + + + Table Column Kind + + + + + Primitive Facets Kind + + + + + Specifies the action to take on a given operation. + + + + + Default behavior + + + + + Restrict the operation + + + + + Cascade the operation + + + + + Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in a Database Metadata item. + + + + + Returns true if any facet value property currently has a non-null value; otherwise returns false . + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode. + + + + + Gets or sets an optional value indicating the current constraint on the type's maximum length. + + + + + Gets or sets an optional value indicating the current constraint on the type's precision. + + + + + Gets or sets an optional value indicating the current constraint on the type's scale. + + + + + Gets or sets an optional value indicating the current spatial type's SRID. + + + + + Gets or sets an optional value indicating the current spatial type's SRID. + + + + + Gets or sets an optional value indicating whether the spatial type is to be type checked strictly. + + + + + Allows the construction and modification of a database schema in a database model. + + + + + Gets or sets the collection of instances that specifies the tables declared within the schema. + + + + + DbSchemaMetadataItem is the base for all types that can be contained in a schema. + + + + + Allows the construction and modification of a column in a table. + + + + + Gets or sets a value indicating whether the column is part of the table's primary key. + + + + + Gets or sets a value indicating if and how the value of the column is automatically generated. + + + + + Gets or sets an optional value indicating the collation specific to this table column. + + + + + Gets or sets an optional value that specifies the default value for the column. + + + + + Allows the construction and modification a table in a database schema. + + + + + Gets or sets the collection of instances that specifies the columns present within the table. + + + + + Gets or sets the collection of instances from the collection of the table that are part of the primary key. + + + + + Gets or sets the collection of instances that defines the foreign key constraints sourced from the table. + + + + + Represents a specific use of a type in a Database Metadata item. + + + + + Gets or sets an optional instance that applies additional constraints to a referenced primitive type. + + + Accessing this property forces the creation of a DbPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value. + + + + + Gets or sets a value indicating whether the represented type is a collection type. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered nullable. + + + + + Gets a value indicating whether the type has been configured as a row type by the addition of one or more RowColumns. + + + + + Represents the mapping of an EDM association end ( ) as a collection of property mappings ( ). + + + + + DbMappingMetadataItem is the base for all types in the EDM-to-Database Mapping construction and modification API that support annotation using . + + + + + DbMappingModelItem is the base for all types in the EDM-to-Database Mapping construction and modification API. + + + + + Gets or sets the currently assigned annotations. + + + + + Gets an value representing the association end that is being mapped. + + + + + Gets the collection of s that specifies how the association end key properties are mapped to the table. + + + + + Gets an value representing the association set that is being mapped. + + + + + Gets a value representing the table to which the entity type's properties are being mapped. + + + + + Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping to apply. + + + + + Allows the construction and modification of a condition for a column in a database table. + + + + + Gets or sets a value representing the table column which must contain for this condition to hold. + + + + + Gets or sets the value that must contain for this condition to hold. + + + + + Gets or sets an value representing the model that is being mapped. + + + + + Gets or sets a value representing the database that is the target of the mapping. + + + + + Gets or sets the collection of s that specifies how the model's entity containers are mapped to the database. + + + + + Represents the mapping of an entity property to a column in a database table. + + + + + Gets or sets the collection of instances that defines the mapped property, beginning from a property declared by the mapped entity type and optionally proceeding through properties of complex property result types. + + + + + Gets or sets a value representing the table column to which the entity property is being mapped. + + + + + Allows the construction and modification of the mapping of an EDM entity container ( ) to a database ( ). + + + + + Gets or sets an value representing the entity container that is being mapped. + + + + + Gets or sets the collection of s that specifies how the container's entity sets are mapped to the database. + + + + + Gets the collection of s that specifies how the container's association sets are mapped to the database. + + + + + Allows the construction and modification of the mapping of an EDM entity set ( ) to a database ( ). + + + + + Gets or sets an value representing the entity set that is being mapped. + + + + + Gets or sets the collection of s that specifies how the set's entity types are mapped to the database. + + + + + Allows the construction and modification of a complete or partial mapping of an EDM entity type ( ) or type hierarchy to a specific database table ( ). + + + + + Gets or sets an value representing the entity type or hierarchy that is being mapped. + + + + + Gets or sets a value indicating whether this type mapping applies to and all its direct or indirect subtypes ( true ), or only to ( false ). + + + + + Gets a value representing the table to which the entity type's properties are being mapped. + + + + + Gets the collection of s that specifies how the type's properties are mapped to the table. + + + + + Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping fragment to apply. + + + + + Indicates which EDM-to-Database Mapping concept is represented by a given item. + + + + + Database Mapping Kind + + + + + Entity Container Mapping Kind + + + + + Entity Set Mapping Kind + + + + + Association Set Mapping Kind + + + + + Entity Type Mapping Kind + + + + + Query View Mapping Kind + + + + + Entity Type Mapping Fragment Kind + + + + + Edm Property Mapping Kind + + + + + Association End Mapping Kind + + + + + Column Condition Kind + + + + + Property Condition Kind + + + + + Allows the construction and modification of a constraint applied to an Entity Data Model (EDM) association. + + + + + Gets or sets the that represents the 'dependent' end of the constraint; properties from this association end's entity type contribute to the collection. + + + + + Gets or sets the collection of instances from the of the constraint. The values of these properties are constrained against the primary key values of the remaining, 'principal' association end's entity type. + + + + + Allows the construction and modification of one end of an Entity Data Model (EDM) association. + + + + + Gets or sets the entity type referenced by this association end. + + + + + Gets or sets the of this association end, which indicates the multiplicity of the end and whether or not it is required. + + + + + Gets or sets the to take when a delete operation is attempted. + + + + + Indicates the multiplicity of an and whether or not it is required. + + + + + Allows the construction and modification of an association set in an Entity Data Model (EDM) ). + + + + + Represents an item in an Entity Data Model (EDM) . + + + + + Gets or sets the that specifies the association type for the set. + + + + + Gets or sets the that specifies the entity set corresponding to the association end for this association set. + + + + + Gets or sets the that specifies the entity set corresponding to the association end for this association set. + + + + + + The base for all all Entity Data Model (EDM) types that represent a structured type from the EDM type system. + + + + + Gets or sets the that defines the source end of the association. + + + + + Gets or sets the that defines the target end of the association. + + + + + Gets or sets the optional constraint that indicates whether the relationship is an independent association (no constraint present) or a foreign key relationship ( specified). + + + + + Collection semantics for properties. + + + + + The property does not have a collection type or does not specify explicit collection semantics. + + + + + The property is an unordered collection that may contain duplicates. + + + + + The property is an ordered collection that may contain duplicates. + + + + + Allows the construction and modification of a complex type in an Entity Data Model (EDM) . + + + + + Gets or sets the optional that indicates the base complex type of the complex type. + + + + + Gets or sets a value indicating whether the complex type is abstract. + + + + + Gets or sets the collection of instances that describe the (scalar or complex) properties of the complex type. + + + + + Concurrency mode for properties. + + + + + Default concurrency mode: the property is never validated at write time + + + + + Fixed concurrency mode: the property is always validated at write time + + + + + Allows the construction and modification of an entity container in an Entity Data Model (EDM) . + + + + + Gets all s declared within the namspace. Includes s and s. + + + + + Gets or sets the collection of s that specifies the association sets within the container. + + + + + Gets or sets the collection of s that specifies the entity sets within the container. + + + + + Allows the construction and modification of an entity set in an Entity Data Model (EDM) . + + + + + Gets or sets the that specifies the entity type for the set. + + + + + Allows the construction and modification of an entity type in an Entity Data Model (EDM) . + + + + + Gets or sets the optional that indicates the base entity type of the entity type. + + + + + Gets or sets a value indicating whether the entity type is abstract. + + + + + Gets or sets the collection of s that specifies the properties declared by the entity type. + + + + + Gets or sets the collection of s that indicates which properties from the collection are part of the entity key. + + + + + Gets or sets the optional collection of s that specifies the navigation properties declared by the entity type. + + + + + Indicates which Entity Data Model (EDM) concept is represented by a given item. + + + + + Association End Kind + + + + + Association Set Kind + + + + + Association Type Kind + + + + + Collection Type Kind + + + + + Complex Type Kind + + + + + Entity Container Kind + + + + + Entity Set Kind + + + + + Entity Type Kind + + + + + Function Group Kind + + + + + Function Overload Kind + + + + + Function Import Kind + + + + + Function Parameter Kind + + + + + Navigation Property Kind + + + + + EdmProperty Type Kind + + + + + Association Constraint Type Kind + + + + + Ref Type Kind + + + + + Row Column Kind + + + + + Row Type Kind + + + + + Type Reference Kind + + + + + Model Kind + + + + + Namespace Kind + + + + + Primitive Facets Kind + + + + + Primitive Type Kind + + + + + Enum Type Kind + + + + + Enum Type Member Kind + + + + + EdmModel is the top-level container for namespaces and entity containers belonging to the same logical Entity Data Model (EDM) model. + + + + + Gets or sets an optional value that indicates the entity model version. + + + + + Gets or sets the containers declared within the model. + + + + + Gets or sets the namespaces declared within the model. + + + + + Allows the construction and modification of a namespace in an . + + + + + Gets all s declared within the namspace. Includes s, s, s. + + + + + Gets or sets the s declared within the namespace. + + + + + Gets or sets the s declared within the namespace. + + + + + Gets or sets the s declared within the namespace. + + + + + Allows the construction and modification of an Entity Data Model (EDM) navigation property. + + + + + Gets or sets the that specifies the association over which navigation takes place. + + + + + Gets or sets the that specifies which association end is the 'destination' end of the navigation and produces the navigation property result. + + + + + Specifies the action to take on a given operation. + + + + + Default behavior + + + + + Restrict the operation + + + + + Cascade the operation + + + + + Represents one of the fixed set of Entity Data Model (EDM) primitive types. + + + + + The base for all all Entity Data Model (EDM) types that represent a scalar type from the EDM type system. + + + + + Retrieves the EdmPrimitiveType instance with the corresponding to the specified value, if any. + + The name of the primitive type instance to retrieve + The EdmPrimitiveType with the specified name, if successful; otherwise null . + true if the given name corresponds to an EDM primitive type name; otherwise false . + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets an value that indicates which Entity Data Model (EDM) primitive type this type represents. + + + + + Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in an Entity Data Model (EDM) item. See . + + + + + Returns true if any facet value property currently has a non-null value; otherwise returns false . + + + + + Gets or sets an optional value indicating the current constraint on the type's maximum length. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode. + + + + + Gets or sets an optional value indicating the current constraint on the type's precision. + + + + + Gets or sets an optional value indicating the current constraint on the type's scale. + + + + + Gets or sets an optional value indicating that the current spatial type's SRID is unconstrained. + + + + + Gets or sets an optional value indicating the current spatial type's SRID. + + + + + Gets or sets an optional value indicating whether the spatial type is to be type checked strictly. + + + + + Primitive Types as defined by the Entity Data Model (EDM). + + + + + Binary Type Kind + + + + + Boolean Type Kind + + + + + Byte Type Kind + + + + + DateTime Type Kind + + + + + Decimal Type Kind + + + + + Double Type Kind + + + + + Guid Type Kind + + + + + Single Type Kind + + + + + SByte Type Kind + + + + + Int16 Type Kind + + + + + Int32 Type Kind + + + + + Int64 Type Kind + + + + + String Type Kind + + + + + Time Type Kind + + + + + DateTimeOffset Type Kind + + + + + Geometry Type Kind + + + + + Geography Type Kind + + + + + Geometric point type kind + + + + + Geometric linestring type kind + + + + + Geometric polygon type kind + + + + + Geometric multi-point type kind + + + + + Geometric multi-linestring type kind + + + + + Geometric multi-polygon type kind + + + + + Geometric collection type kind + + + + + Geographic point type kind + + + + + Geographic linestring type kind + + + + + Geographic polygon type kind + + + + + Geographic multi-point type kind + + + + + Geographic multi-linestring type kind + + + + + Geographic multi-polygon type kind + + + + + Geographic collection type kind + + + + + Allows the construction and modification of a primitive- or complex-valued property of an Entity Data Model (EDM) entity or complex type. + + + + + Gets or sets an value that indicates which collection semantics - if any - apply to the property. + + + + + Gets or sets a value that indicates whether the property is used for concurrency validation. + + + + + Gets or sets on optional value that indicates an initial default value for the property. + + + + + Gets or sets an that specifies the result type of the property. + + + + + Enumerates all s declared or inherited by an . + + + + + Allows the construction and modification of a specific use of a type in an Entity Data Model (EDM) item. See for examples. + + + + + Gets or sets a value indicating the collection rank of the type reference. A collection rank greater than zero indicates that the type reference represents a collection of its referenced . + + + + + Gets or sets a value indicating the referenced by this type reference. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered nullable. + + + + + Gets or sets an optional instance that applies additional constraints to a referenced primitive type. + + + Accessing this property forces the creation of an EdmPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value. + + + + + Gets a value indicating whether the property of this type reference has been assigned an value with at least one facet value specified. + + + + + Indicates whether this type reference represents a collection of its referenced (when is greater than zero) or not. + + + + + Indicates whether the property of this type reference currently refers to an , is not a collection type, and does not have primitive facet values specified. + + + + + Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a complex type. + + + + + Indicates whether the property of this type reference currently refers to an and is not a collection type. + + + + + Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a primitive type. + + + + + Contains constant values that apply to the EDM model, regardless of source (for CSDL specific constants see ). + + + + + Parsing code taken from System.dll's System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string) method to avoid LinkDemand needed to call this method + + + + + + + + + + + Constants for CSDL XML. + + + + + Constants for C-S MSL XML. + + + + + Constants for SSDL XML. + + + + + The acceptable range for this enum is 0000 - 0999; the range 10,000-15,000 is reserved for tools. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Precision out of range + + + + + Scale out of range + + + + + + + + + + + + + One of the required facets is missing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The facet isn't allow by the property type. + + + + + This facet value is constant and is specified in the schema + + + + + + + + + + + + + Multiplicity value was malformed + + + + + The value for the Action attribute is invalid or not allowed in the current context + + + + + An error occurred processing the On<Operation> elements + + + + + Ends were given for the Property element of a EntityContainer that is not a RelationshipSet + + + + + The extent name used in the EntittyContainerType End does not match the name of any of the EntityContainerProperties in the containing EntityContainer + + + + + An end element was not given, and cannot be inferred because too many EntityContainerEntitySet elements that are good possibilities. + + + + + An end element was not given, and cannot be inferred because there is no EntityContainerEntitySets that are the correct type to be used as an EntitySet. + + + + + Not a valid parameter direction for the parameter in a function + + + + + Unable to infer an optional schema part, to resolve this; be more explicit + + + + + Invalid facet attribute(s) specified in provider manifest + + + + + Invalid role value in the relationship constraint + + + + + Invalid Property in relationship constraint + + + + + Type mismatch between ToProperty and FromProperty in the relationship constraint + + + + + Invalid multiplicity in FromRole in the relationship constraint + + + + + The number of properties in the FromProperty and ToProperty in the relationship constraint must be identical + + + + + No Properties defined in either FromProperty or ToProperty in the relationship constraint + + + + + Missing constraint in relationship type in ssdl + + + + + Same role referred in the ToRole and FromRole of a referential constraint + + + + + Invalid value for attribute ParameterTypeSemantics + + + + + Invalid type used for a Relationship End Type + + + + + Invalid PrimitiveTypeKind + + + + + Invalid TypeConversion DestinationType + + + + + Expected a integer value between 0 - 255 + + + + + Invalid Type specified in function + + + + + Precision must not be greater than 28 + + + + + Properties that are part of entity key must be of scalar type + + + + + Binary type properties which are part of entity key are currently not supported + + + + + The primitive type kind does not have a preferred mapping + + + + + More than one PreferredMapping for a PrimitiveTypeKind + + + + + End with * multiplicity cannot have operations specified + + + + + EntitySet type has no keys + + + + + InvalidNumberOfParametersForAggregateFunction + + + + + InvalidParameterTypeForAggregateFunction + + + + + Composable functions must declare a return type. + + + + + Non-composable functions must not declare a return type. + + + + + Non-composable functions do not permit the aggregate; niladic; or built-in attributes. + + + + + Composable functions can not include command text attribute. + + + + + Functions should not declare both a store name and command text (only one or the other can be used). + + + + + SystemNamespace + + + + + Empty DefiningQuery text + + + + + Schema, Table and DefiningQuery are all specified, and are mutually exclusive + + + + + ConcurrencyMode value was malformed + + + + + Concurrency can't change for any sub types of an EntitySet type. + + + + + Function import return type must be either empty, a collection of entities, or a singleton scalar. + + + + + Function import specifies a non-existent entity set. + + + + + Function import specifies entity type return but no entity set. + + + + + Function import specifies entity type that does not derive from element type of entity set. + + + + + Function import specifies a binding to an entity set but does not return entities. + + + + + InternalError + + + + + Same Entity Set Taking part in the same role of the relationship set in two different relationship sets + + + + + Entity key refers to the same property twice + + + + + Function declares a ReturnType attribute and element + + + + + Nullable Complex Type not supported in Edm V1 + + + + + Only Complex Collections supported in Edm V1.1 + + + + + No Key defined on Entity Type + + + + + Invalid namespace specified in using element + + + + + Need not specify system namespace in using + + + + + Cannot use a reserved/system namespace as alias + + + + + Invalid qualification specified for type + + + + + Invalid Entity Container Name in extends attribute + + + + + Invalid CollectionKind value in property CollectionKind attribute + + + + + Must specify namespace or alias of the schema in which this type is defined + + + + + Entity Container cannot extend itself + + + + + Failed to retrieve provider manifest + + + + + Mismatched Provider Manifest token values in SSDL artifacts + + + + + Missing Provider Manifest token value in SSDL artifact(s) + + + + + Empty CommandText element + + + + + Inconsistent Provider values in SSDL artifacts + + + + + Inconsistent Provider Manifest token values in SSDL artifacts + + + + + Duplicated Function overloads + + + + + InvalidProvider + + + + + FunctionWithNonEdmTypeNotSupported + + + + + ComplexTypeAsReturnTypeAndDefinedEntitySet + + + + + ComplexTypeAsReturnTypeAndDefinedEntitySet + + + + unused 179, + unused 180, + unused 181, + + In model functions facet attribute is allowed only on ScalarTypes + + + + + Captures several conditions where facets are placed on element where it should not exist. + + + + + Return type has not been declared + + + + + Invalid value in the EnumTypeOption + + + + + The structural annotation cannot use codegen namespaces + + + + + Function and type cannot have the same fully qualified name + + + + + Cannot load different version of schema in the same ItemCollection + + + + + Expected bool value + + + + + End without Multiplicity specified + + + + + In SSDL, if composable function returns a collection of rows (TVF), all row properties must be of scalar types. + + + + + The name of NamedEdmItem must not be empty or white space only + + + + + EdmTypeReference is empty + + Unused 199; + + + + Serializes an that conforms to the restrictions of a single CSDL schema file to an XML writer. The model to be serialized must contain a single and a single . + + + + + Serialize the to the XmlWriter. + + The EdmModel to serialize, mut have only one and one + The XmlWriter to serialize to + + + + Serialize the to the XmlWriter + + The DbModel to serialize + The XmlWriter to serialize to + + + + Serialize the to the + + The DbDatabaseMetadata to serialize + Provider information on the Schema element + ProviderManifestToken information on the Schema element + The XmlWriter to serialize to + + + + + author/email + + + + + author/name + + + + + author/uri + + + + + published + + + + + rights + + + + + summary + + + + + title + + + + + contributor/email + + + + + contributor/name + + + + + contributor/uri + + + + + category/@label + + + + + Plaintext + + + + + HTML + + + + + XHTML + + + + + updated + + + + + link/@href + + + + + link/@rel + + + + + link/@type + + + + + link/@hreflang + + + + + link/@title + + + + + link/@length + + + + + category/@term + + + + + category/@scheme + + + + + Return role name pair + + + + + + + + The context for DataModel Validation + + + + + Returns true if the given two ends are similar - the relationship type that this ends belongs to is the same and the entity set refered by the ends are same and they are from the same role + + + + + + + + Return true if the Referential Constraint on the association is ready for further validation, otherwise return false. + + + + + + + Resolves the given property names to the property in the item Also checks whether the properties form the key for the given type and whether all the properties are nullable or not + + + + + + + + + + + Return true if the namespaceName is a Edm System Namespace + + + + + + + Return true if the entityType is a subtype of any entity type in the dictionary keys, and return the corresponding entry EntitySet value. Otherwise return false. + + + + + + + + + Return true if any of the properties in the EdmEntityType defines ConcurrencyMode. Otherwise return false. + + + + + + + Add member name to the Hash set, raise an error if the name exists already. + + + + + + + + + If the string is null, empty, or only whitespace, return false, otherwise return true + + + + + + + Determine if a cycle exists in the type hierarchy: use two pointers to walk the chain, if one catches up with the other, we have a cycle. + + true if a cycle exists in the type hierarchy, false otherwise + + + + RuleSet for DataModel Validation + + + + + Get the related rules given certain DataModelItem + + The to validate + A collection of + + + + Data Model Validator + + + + + Validate the and all of its properties given certain version. + + The root of the model to be validated + True to validate the syntax, otherwise false + + + + The RuleSet for EdmModel + + + + + Get based on version + + a double value of version + + + + + The context for EdmModel Validation + + + + + Visitor for EdmModel Validation + + + + + Edm Model Validator + + + + + validate the from the root with the context + + The root to validate from + The validation context + + + + An implementation of IDatabaseInitializer that will recreate and optionally re-seed the + database only if the database does not exist. + To seed the database, create a derived class and override the Seed method. + + The type of the context. + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + A that should be overridden to actually add data to the context for seeding. + The default implementation does nothing. + + The context to seed. + + + + An instances of this class is obtained from an object and can be used + to manage the actual database backing a DbContext or connection. + This includes creating, deleting, and checking for the existence of a database. + Note that deletion and checking for existence of a database can be performed using just a + connection (i.e. without a full context) by using the static methods of this class. + + + + + Creates a Database backed by the given context. This object can be used to create a database, + check for database existence, and delete a database. + + The context that defines the database connection and model. + + + + Gets or sets the database initialization strategy. The database initialization strategy is called when instance + is initialized from a . The strategy can optionally check for database existence, create a new database, and + seed the database with data. + The default strategy is an instance of . + + The type of the context. + The strategy. + The database creation strategy. + + + + Internal version of SetInitializer that allows the strategy to be locked such that it cannot be replaced + by another call to SetInitializer. This allows strategies set in the app.config to win over strategies set + in code. + + The type of the context. + The strategy. + if set to true then the strategy is locked. + + + + Runs the the registered on this context. + + If "force" is set to true, then the initializer is run regardless of whether or not it + has been run before. This can be useful if a database is deleted while an app is running + and needs to be reinitialized. + + If "force" is set to false, then the initializer is only run if it has not already been + run for this context, model, and connection in this app domain. This method is typically + used when it is necessary to ensure that the database has been created and seeded + before starting some operation where doing so lazily will cause issues, such as when the + operation is part of a transaction. + + if set to true the initializer is run even if it has already been run. + + + + Checks whether or not the database is compatible with the the current Code First model. + + + Model compatibility currently uses the following rules. + + If the context was created using either the Model First or Database First approach then the + model is assumed to be compatible with the database and this method returns true. + + For Code First the model is considered compatible if the model is stored in the database + in the Migrations history table and that model has no differences from the current model as + determined by Migrations model differ. + + If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead, + then this is used to check for compatibility. + + + If set to true then an exception will be thrown if no model metadata is found in + the database. If set to false then this method will return true if metadata + is not found. + + True if the model hash in the context and the database match; false otherwise. + + + + + Creates a new database on the database server for the model defined in the backing context. + Note that calling this method before the database initialization strategy has run will disable + executing that strategy. + + + + + Creates a new database on the database server for the model defined in the backing context, but only + if a database with the same name does not already exist on the server. + + True if the database did not exist and was created; false otherwise. + + + + Checks whether or not the database exists on the server. + + True if the database exists; false otherwise. + + + + Deletes the database on the database server if it exists, otherwise does nothing. + Calling this method from outside of an initializer will mark the database as having + not been initialized. This means that if an attempt is made to use the database again + after it has been deleted, then any initializer set will run again and, usually, will + try to create the database again automatically. + + True if the database did exist and was deleted; false otherwise. + + + + Checks whether or not the database exists on the server. + The connection to the database is created using the given database name or connection string + in the same way as is described in the documentation for the class. + + The database name or a connection string to the database. + True if the database exists; false otherwise. + + + + Deletes the database on the database server if it exists, otherwise does nothing. + The connection to the database is created using the given database name or connection string + in the same way as is described in the documentation for the class. + + The database name or a connection string to the database. + True if the database did exist and was deleted; false otherwise. + + + + Checks whether or not the database exists on the server. + + An existing connection to the database. + True if the database exists; false otherwise. + + + + Deletes the database on the database server if it exists, otherwise does nothing. + + An existing connection to the database. + True if the database did exist and was deleted; false otherwise. + + + + Resets the DefaultConnectionFactory to its initial value. + Currently, this method is only used by test code. + + + + + Performs the operation defined by the given delegate using the given lazy connection, ensuring + that the lazy connection is disposed after use. + + Information used to create a DbConnection. + The operation to perform. + The return value of the operation. + + + + Performs the operation defined by the given delegate against a connection. The connection + is either the connection accessed from the context backing this object, or is obtained from + the connection information passed to one of the static methods. + + The connection to use. + The operation to perform. + The return value of the operation. + + + + Returns an empty ObjectContext that can be used to perform delete/exists operations. + + The connection for which to create an ObjectContext + The empty context. + + + + Creates a raw SQL query that will return elements of the given generic type. + The type can be any type that has properties that match the names of the columns returned + from the query, or can be a simple primitive type. The type does not have to be an + entity type. The results of this query are never tracked by the context even if the + type of object returned is an entity type. Use the + method to return entities that are tracked by the context. + + The type of object returned by the query. + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Creates a raw SQL query that will return elements of the given type. + The type can be any type that has properties that match the names of the columns returned + from the query, or can be a simple primitive type. The type does not have to be an + entity type. The results of this query are never tracked by the context even if the + type of object returned is an entity type. Use the + method to return entities that are tracked by the context. + + The type of object returned by the query. + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Executes the given DDL/DML command against the database. + + The command string. + The parameters to apply to the command string. + The result returned by the database after executing the command. + + + + Returns the connection being used by this context. This may cause the + connection to be created if it does not already exist. + + Thrown if the context has been disposed. + + + + Returns the as a delegate that can be called with + an instance of the that owns this Database object, or returns null if + there is no initializer set for this context type. + + The initializer delegate or null. + + + + The connection factory to use when creating a from just + a database name or a connection string. + + + This is used when just a database name or connection string is given to or when + the no database name or connection is given to DbContext in which case the name of + the context class is passed to this factory in order to generate a DbConnection. + By default, the instance to use is read from the applications .config + file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in + the config file then is used. Setting this property in code + always overrides whatever value is found in the config file. + + + + + Checks wether or not the DefaultConnectionFactory has been set to something other than its default value. + + + + + + + Common code for generic and non-generic string Include. + + + + + + Returns a new query where the entities returned will not be cached in the + or . This method works by calling the AsNoTracking method of the + underlying query object. If the underlying query object does not have a AsNoTracking method, + then calling this method will have no affect. + + The element type. + The source query. + A new query with NoTracking applied, or the source query if NoTracking is not supported. + + + + Returns a new query where the entities returned will not be cached in the + or . This method works by calling the AsNoTracking method of the + underlying query object. If the underlying query object does not have a AsNoTracking method, + then calling this method will have no affect. + + The source query. + A new query with NoTracking applied, or the source query if NoTracking is not supported. + + + + Common code for generic and non-generic AsNoTracking. + + + + + Enumerates the query such that for server queries such as those of , , + , and others the results of the query will be loaded into the associated , + or other cache on the client. + This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. + + The source query. + + + + Returns an implementation that stays in sync with the given . + + The element type. + The collection that the binding list will stay in sync with. + The binding list. + + + + DbModelBuilder is used to map CLR classes to a database schema. + This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'. + + + DbModelBuilder is typically used to configure a model by overriding . + You can also use DbModelBuilder independently of DbContext to build a model and then construct a + or . + The recommended approach, however, is to use OnModelCreating in as + the workflow is more intuitive and takes care of common tasks, such as caching the created model. + + Types that form your model are registered with DbModelBuilder and optional configuration can be + performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder + API. + + When the Build method is called a set of conventions are run to discover the initial model. + These conventions will automatically discover aspects of the model, such as primary keys, and + will also process any data annotations that were specified on your classes. Finally + any configuration that was performed using the DbModelBuilder API is applied. + + Configuration done via the DbModelBuilder API takes precedence over data annotations which + in turn take precedence over the default conventions. + + + + + Initializes a new instance of the class. + + The process of discovering the initial model will use the set of conventions included + in the most recent version of the Entity Framework installed on your machine. + + + Upgrading to newer versions of the Entity Framework may cause breaking changes + in your application because new conventions may cause the initial model to be + configured differently. There is an alternate constructor that allows a specific + version of conventions to be specified. + + + + + Initializes a new instance of the class that will use + a specific set of conventions to discover the initial model. + + The version of conventions to be used. + + + + Excludes a type from the model. This is used to remove types from the model that were added + by convention during initial model discovery. + + The type to be excluded. + The same DbModelBuilder instance so that multiple calls can be chained. + + + + Excludes a type(s) from the model. This is used to remove types from the model that were added + by convention during initial model discovery. + + The types to be excluded from the model. + The same DbModelBuilder instance so that multiple calls can be chained. + + + + Registers an entity type as part of the model and returns an object that can be used to + configure the entity. This method can be called multiple times for the same entity to + perform multiple lines of configuration. + + The type to be registered or configured. + The configuration object for the specified entity type. + + + + Registers a type as an entity in the model and returns an object that can be used to + configure the entity. This method can be called multiple times for the same type to + perform multiple lines of configuration. + + The type to be registered or configured. + The configuration object for the specified entity type. + + + + Registers a type as a complex type in the model and returns an object that can be used to + configure the complex type. This method can be called multiple times for the same type to + perform multiple lines of configuration. + + The type to be registered or configured. + The configuration object for the specified complex type. + + + + Creates a based on the configuration performed using this builder. + The connection is used to determine the database provider being used as this + affects the database layer of the generated model. + + Connection to use to determine provider information. + The model that was built. + + + + Creates a based on the configuration performed using this builder. + Provider information must be specified because this affects the database layer of the generated model. + For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.) + + The database provider that the model will be used with. + The model that was built. + + + + Provides access to the settings of this DbModelBuilder that deal with conventions. + + + + + Gets the for this DbModelBuilder. + The registrar allows derived entity and complex type configurations to be registered with this builder. + + + + + A value from this enumeration can be provided directly to the + class or can be used in the applied to + a class derived from . The value used defines which version of + the DbContext and DbModelBuilder conventions should be used when building a model from + code--also know as "Code First". + + + Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available + when upgrading to a new release of the Entity Framework. However, it may result in an + application behaving differently with the new release than it did with a previous release. + This can be avoided by using a specific version of the conventions, but if a version + other than the latest is set then not all the latest functionality will be available. + + + + + Indicates that the latest version of the and + conventions should be used. + + + + + Indicates that the version of the and + conventions shipped with Entity Framework 4.1 + through 4.3 should be used. + + + + + Indicates that the version of the and + conventions shipped with Entity Framework 5.0 + when targeting .NET 4 should be used. + + + + + Indicates that the version of the and + conventions shipped with Entity Framework 5.0 + when targeting .NET 4.5 should be used. + + + + + This attribute can be applied to a class derived from to set which + version of the DbContext and conventions should be used when building + a model from code--also know as "Code First". See the + enumeration for details about DbModelBuilder versions. + + + If the attribute is missing from DbContextthen DbContext will always use the latest + version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest. + + + + + Initializes a new instance of the class. + + The conventions version to use. + + + + Gets the conventions version. + + The conventions version. + + + + A non-generic version of which can be used when the type of entity + is not known at build time. + + + + + Represents a non-generic LINQ to Entities query against a DbContext. + + + + + An internal interface implemented by and that allows access to + the internal query without using reflection. + + + + + The underlying internal set. + + + + + Internal constructor prevents external classes deriving from DbQuery. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + Instead populate a DbSet with data, for example by using the Load extension method, and + then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to + DbSet.Local.ToBindingList(). + + + Never returns; always throws. + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Returns the equivalent generic object. + + The type of element for which the query was created. + The generic set object. + + + + Returns a representation of the underlying query. + + + The query string. + + + + + Returns false. + + false. + + + + The IQueryable element type. + + + + + The IQueryable LINQ Expression. + + + + + The IQueryable provider. + + + + + Gets the underlying internal query object. + + The internal query. + + + + The internal query object that is backing this DbQuery + + + + + An internal interface implemented by and that allows access to + the internal set without using reflection. + + + + + The underlying internal set. + + + + + Internal constructor prevents external classes deriving from DbSet. + + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + Thrown if multiple entities exist in the context with the primary key values given. + Thrown if the type of entity is not part of the data model for this context. + Thrown if the types of the key values do not match the types of the key values for the entity type to be found. + Thrown if the context has been disposed. + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + The entity to attach. + The entity. + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + The entity to add. + The entity. + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + The entity to remove. + The entity. + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Returns the equivalent generic object. + + The type of entity for which the set was created. + The generic set object. + + + + Creates a raw SQL query that will return entities in this set. By default, the + entities returned are tracked by the context; this can be changed by calling + AsNoTracking on the returned. + Note that the entities returned are always of the type for this set and never of + a derived type. If the table or tables queried may contain data for other entity + types, then the SQL query must be written appropriately to ensure that only entities of + the correct type are returned. + + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Gets an that represents a local view of all Added, Unchanged, + and Modified entities in this set. This local view will stay in sync as entities are added or + removed from the context. Likewise, entities added to or removed from the local view will automatically + be added to or removed from the context. + + + This property can be used for data binding by populating the set with data, for example by using the Load + extension method, and then binding to the local data through this property. For WPF bind to this property + directly. For Windows Forms bind to the result of calling ToBindingList on this property + + The local view. + + + + The internal IQueryable that is backing this DbQuery + + + + + Gets the underlying internal set. + + The internal set. + + + + A DbSet represents the collection of all entities in the context, or that can be queried from the + database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method. + + + Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a + one-to-one correlation between a type and a set. + + The type that defines the set. + + + + Represents a LINQ to Entities query against a DbContext. + + The type of entity to query for. + + + + Creates a new query that will be backed by the given internal query object. + + The backing query. + + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Throws an exception indicating that binding directly to a store query is not supported. + Instead populate a DbSet with data, for example by using the Load extension method, and + then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to + DbSet.Local.ToBindingList(). + + + Never returns; always throws. + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Returns a representation of the underlying query. + + + The query string. + + + + + Returns a new instance of the non-generic class for this query. + + A non-generic version. + + + + Returns false. + + false. + + + + The IQueryable element type. + + + + + The IQueryable LINQ Expression. + + + + + The IQueryable provider. + + + + + The internal query object that is backing this DbQuery + + + + + The internal query object that is backing this DbQuery + + + + + An IDbSet represents the collection of all entities in the context, or that can be queried from the + database, of a given type. DbSet is a concrete implementation of IDbSet. + + The type that defines the set. + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + The entity to add. + The entity. + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + The entity to remove. + The entity. + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + The entity to attach. + The entity. + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The type of entity to create. + The entity instance, which may be a proxy. + + + + Gets an that represents a local view of all Added, Unchanged, + and Modified entities in this set. This local view will stay in sync as entities are added or + removed from the context. Likewise, entities added to or removed from the local view will automatically + be added to or removed from the context. + + + This property can be used for data binding by populating the set with data, for example by using the Load + extension method, and then binding to the local data through this property. For WPF bind to this property + directly. For Windows Forms bind to the result of calling ToBindingList on this property + + The local view. + + + + Creates a new set that will be backed by the given . + + The internal set. + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + Thrown if multiple entities exist in the context with the primary key values given. + Thrown if the type of entity is not part of the data model for this context. + Thrown if the types of the key values do not match the types of the key values for the entity type to be found. + Thrown if the context has been disposed. + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + The entity to attach. + The entity. + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + The entity to add. + The entity. + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + The entity to remove. + The entity. + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The type of entity to create. + The entity instance, which may be a proxy. + + + + Returns the equivalent non-generic object. + + The non-generic set object. + + + + Creates a raw SQL query that will return entities in this set. By default, the + entities returned are tracked by the context; this can be changed by calling + AsNoTracking on the returned. + Note that the entities returned are always of the type for this set and never of + a derived type. If the table or tables queried may contain data for other entity + types, then the SQL query must be written appropriately to ensure that only entities of + the correct type are returned. + + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Gets an that represents a local view of all Added, Unchanged, + and Modified entities in this set. This local view will stay in sync as entities are added or + removed from the context. Likewise, entities added to or removed from the local view will automatically + be added to or removed from the context. + + + This property can be used for data binding by populating the set with data, for example by using the Load + extension method, and then binding to the local data through this property. For WPF bind to this property + directly. For Windows Forms bind to the result of calling ToBindingList on this property + + The local view. + + + + The internal IQueryable that is backing this DbQuery + + + + + An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the + database the first time that a context is used in the app domain. + To seed the database, create a derived class and override the Seed method. + + The type of the context. + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + A that should be overridden to actually add data to the context for seeding. + The default implementation does nothing. + + The context to seed. + + + + An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the + database only if the model has changed since the database was created. + + + Whether or not the model has changed is determined by the + method. + To seed the database create a derived class and override the Seed method. + + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + A that should be overridden to actually add data to the context for seeding. + The default implementation does nothing. + + The context to seed. + + + + Returned by the ChangeTracker method of to provide access to features of + the context that are related to change tracking of entities. + + + + + Initializes a new instance of the class. + + The internal context. + + + + Gets objects for all the entities tracked by this context. + + The entries. + + + + Gets objects for all the entities of the given type + tracked by this context. + + The type of the entity. + The entries. + + + + Detects changes made to the properties and relationships of POCO entities. Note that some types of + entity (such as change tracking proxies and entities that derive from ) + report changes automatically and a call to DetectChanges is not normally needed for these types of entities. + Also note that normally DetectChanges is called automatically by many of the methods of + and its related classes such that it is rare that this method will need to be called explicitly. + However, it may be desirable, usually for performance reasons, to turn off this automatic calling of + DetectChanges using the AutoDetectChangesEnabled flag from . + + + + + A non-generic version of the class. + + + + + This is an abstract base class use to represent a scalar or complex property, or a navigation property + of an entity. Scalar and complex properties use the derived class , + reference navigation properties use the derived class , and collection + navigation properties use the derived class . + + + + + Creates a from information in the given . + This method will create an instance of the appropriate subclass depending on the metadata contained + in the InternalMemberEntry instance. + + The internal member entry. + The new entry. + + + + Validates this property. + + + Collection of objects. Never null. If the entity is valid the collection will be empty. + + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the property. + The equivalent generic object. + + + + Gets the name of the property. + + The property name. + + + + Gets or sets the current value of this property. + + The current value. + + + + The to which this member belongs. + + An entry for the entity that owns this member. + + + + Gets the backing this object. + + The internal member entry. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal collection entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the collection of entities from the database. + Note that entities that already exist in the context are not overwritten with values from the database. + + + + + Returns the query that would be used to load this collection from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database, such + as counting the number of entities in the collection in the database without actually loading them. + + A query for the collection. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the collection element. + The equivalent generic object. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the collection of entities has been loaded from the database. + + true if the collection is loaded; otherwise, false. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + Gets the backing this object as an . + + The internal member entry. + + + + Instances of this class are returned from the Collection method of + and allow operations such as loading to + be performed on the an entity's collection navigation properties. + + The type of the entity to which this property belongs. + The type of the element in the collection of entities. + + + + This is an abstract base class use to represent a scalar or complex property, or a navigation property + of an entity. Scalar and complex properties use the derived class , + reference navigation properties use the derived class , and collection + navigation properties use the derived class . + + The type of the entity to which this property belongs. + The type of the property. + + + + Creates a from information in the given . + This method will create an instance of the appropriate subclass depending on the metadata contained + in the InternalMemberEntry instance. + + The internal member entry. + The new entry. + + + + Returns a new instance of the non-generic class for + the property represented by this object. + + A non-generic version. + + + + Validates this property. + + + Collection of objects. Never null. If the entity is valid the collection will be empty. + + + + + Gets or sets the current value of this property. + + The current value. + + + + Gets the underlying . + + The internal member entry. + + + + The to which this member belongs. + + An entry for the entity that owns this member. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal collection entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the collection of entities from the database. + Note that entities that already exist in the context are not overwritten with values from the database. + + + + + Returns the query that would be used to load this collection from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database, such + as counting the number of entities in the collection in the database without actually loading them. + + A query for the collection. + + + + Returns a new instance of the non-generic class for + the navigation property represented by this object. + + A non-generic version. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the collection of entities has been loaded from the database. + + true if the collection is loaded; otherwise, false. + + + + Gets the underlying as an . + + The internal member entry. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + An immutable representation of an Entity Data Model (EDM) model that can be used to create an + or can be passed to the constructor of a . + For increased performance, instances of this type should be cached and re-used to construct contexts. + + + + + For mocking. + + + + + Creates a model for the given EDM metadata model. + + The EDM metadata model. + + + + Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance + of DbContext can be created instead by using the appropriate DbContext constructor. + If a derived ObjectContext is used, then it must have a public constructor with a single + EntityConnection parameter. + The connection passed is used by the ObjectContext created, but is not owned by the context. The caller + must dispose of the connection once the context has been disposed. + + The type of context to create. + An existing connection to a database for use by the context. + + + + + Gets a cached delegate (or creates a new one) used to call the constructor for the given derived ObjectContext type. + + + + + A snapshot of the that was used to create this compiled model. + + + + + The provider info (provider name and manifest token) that was used to create this model. + + + + + A non-generic version of the class. + + + + + A non-generic version of the class. + + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the property. + The equivalent generic object. + + + + Gets the property name. + + The property name. + + + + Gets or sets the original value of this property. + + The original value. + + + + Gets or sets the current value of this property. + + The current value. + + + + Gets or sets a value indicating whether the value of this property has been modified since + it was loaded from the database. + + + true if this instance is modified; otherwise, false. + + + + + The to which this property belongs. + + An entry for the entity that owns this property. + + + + The of the property for which this is a nested property. + This method will only return a non-null entry for properties of complex objects; it will + return null for properties of the entity itself. + + An entry for the parent complex property, or null if this is an entity property. + + + + Gets the backing this object. + + The internal member entry. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The name of the nested property. + An object representing the nested property. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the complex property. + The equivalent generic object. + + + + Instances of this class are returned from the ComplexProperty method of + and allow access to the state of a complex property. + + The type of the entity to which this property belongs. + The type of the property. + + + + Instances of this class are returned from the Property method of + and allow access to the state of the scalar + or complex property. + + The type of the entity to which this property belongs. + The type of the property. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Returns a new instance of the non-generic class for + the property represented by this object. + + A non-generic version. + + + + Gets the property name. + + The property name. + + + + Gets or sets the original value of this property. + + The original value. + + + + Gets or sets the current value of this property. + + The current value. + + + + Gets or sets a value indicating whether the value of this property has been modified since + it was loaded from the database. + + + true if this instance is modified; otherwise, false. + + + + + The to which this property belongs. + + An entry for the entity that owns this property. + + + + The of the property for which this is a nested property. + This method will only return a non-null entry for properties of complex objects; it will + return null for properties of the entity itself. + + An entry for the parent complex property, or null if this is an entity property. + + + + Gets the underlying as an . + + The internal member entry. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Returns a new instance of the non-generic class for + the property represented by this object. + + A non-generic version. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The type of the nested property. + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The type of the nested property. + An expression representing the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The type of the nested property. + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The type of the nested property. + An expression representing the nested property. + An object representing the nested property. + + + + Describes the origin of the database connection string associated with a . + + + + + The connection string was created by convention. + + + + + The connection string was read from external configuration. + + + + + The connection string was explicitly specified at runtime. + + + + + The connection string was overriden by connection information supplied to DbContextInfo. + + + + + Returned by the Configuration method of to provide access to configuration + options for the context. + + + + + Initializes a new instance of the class. + + The internal context. + + + + Gets or sets a value indicating whether lazy loading of relationships exposed as + navigation properties is enabled. Lazy loading is enabled by default. + + true if lazy loading is enabled; otherwise, false. + + + + Gets or sets a value indicating whether or not the framework will create instances of + dynamically generated proxy classes whenever it creates an instance of an entity type. + Note that even if proxy creation is enabled with this flag, proxy instances will only + be created for entity types that meet the requirements for being proxied. + Proxy creation is enabled by default. + + true if proxy creation is enabled; otherwise, false. + + + + + Gets or sets a value indicating whether tracked entities should be validated automatically when + is invoked. + The default value is true. + + + + + Provides runtime information about a given type. + + + + + Creates a new instance representing a given type. + + The type deriving from . + + + + Creates a new instance representing a given targeting a specific database. + + The type deriving from . + Connection information for the database to be used. + + + + Creates a new instance representing a given type. An external list of + connection strings can be supplied and will be used during connection string resolution in place + of any connection strings specified in external configuration files. + + + It is preferable to use the constructor that accepts the entire config document instead of using this + constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config + to be found in addition to explicitly specified connection strings. + + The type deriving from . + A collection of connection strings. + + + + Creates a new instance representing a given type. An external config + object (e.g. app.config or web.config) can be supplied and will be used during connection string + resolution. This includes looking for connection strings and DefaultConnectionFactory entries. + + The type deriving from . + An object representing the config file. + + + + Creates a new instance representing a given , targeting a specific database. + An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string + resolution. This includes looking for connection strings and DefaultConnectionFactory entries. + + The type deriving from . + An object representing the config file. + Connection information for the database to be used. + + + + Creates a new instance representing a given type. A + can be supplied in order to override the default determined provider used when constructing + the underlying EDM model. + + The type deriving from . + A specifying the underlying ADO.NET provider to target. + + + + Creates a new instance representing a given type. An external config + object (e.g. app.config or web.config) can be supplied and will be used during connection string + resolution. This includes looking for connection strings and DefaultConnectionFactory entries. + A can be supplied in order to override the default determined + provider used when constructing the underlying EDM model. This can be useful to prevent EF from + connecting to discover a manifest token. + + The type deriving from . + An object representing the config file. + A specifying the underlying ADO.NET provider to target. + + + + Called internally when a context info is needed for an existing context, which may not be constructable. + + The context instance to get info from. + + + + If instances of the underlying type can be created, returns + a new instance; otherwise returns null. + + A instance. + + + + The concrete type. + + + + + Whether or not instances of the underlying type can be created. + + + + + The connection string used by the underlying type. + + + + + The connection string name used by the underlying type. + + + + + The ADO.NET provider name of the connection used by the underlying type. + + + + + The origin of the connection string used by the underlying type. + + + + + An action to be run on the DbModelBuilder after OnModelCreating has been run on the context. + + + + + A non-generic version of the class. + + + + + Initializes a new instance of the class. + + The internal entry. + + + + Queries the database for copies of the values of the tracked entity as they currently exist in the database. + Note that changing the values in the returned dictionary will not update the values in the database. + If the entity is not found in the database then null is returned. + + The store values. + + + + Reloads the entity from the database overwriting any property values with values from the database. + The entity will be in the Unchanged state after calling this method. + + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The name of the property. + An object representing the property. + + + + Gets an object that represents a complex property of this entity. + + The name of the complex property. + An object representing the complex property. + + + + Gets an object that represents a member of the entity. The runtime type of the returned object will + vary depending on what kind of member is asked for. The currently supported member types and their return + types are: + Reference navigation property: . + Collection navigation property: . + Primitive/scalar property: . + Complex property: . + + The name of the member. + An object representing the member. + + + + Returns a new instance of the generic class for the given + generic type for the tracked entity represented by this object. + Note that the type of the tracked entity must be compatible with the generic type or + an exception will be thrown. + + The type of the entity. + A generic version. + + + + Validates this instance and returns validation result. + + + Entity validation result. Possibly null if + method is overridden. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the entity. + + The entity. + + + + Gets or sets the state of the entity. + + The state. + + + + Gets the current property values for the tracked entity represented by this object. + + The current values. + + + + Gets the original property values for the tracked entity represented by this object. + The original values are usually the entity's property values as they were when last queried from + the database. + + The original values. + + + + Gets InternalEntityEntry object for this DbEntityEntry instance. + + + + + Instances of this class provide access to information about and control of entities that + are being tracked by the . Use the Entity or Entities methods of + the context to obtain objects of this type. + + The type of the entity. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Queries the database for copies of the values of the tracked entity as they currently exist in the database. + Note that changing the values in the returned dictionary will not update the values in the database. + If the entity is not found in the database then null is returned. + + The store values. + + + + Reloads the entity from the database overwriting any property values with values from the database. + The entity will be in the Unchanged state after calling this method. + + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The type of the property. + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The type of the property. + An expression representing the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The type of elements in the collection. + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The type of elements in the collection. + An expression representing the navigation property. + An object representing the navigation property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The name of the property. + An object representing the property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The type of the property. + The name of the property. + An object representing the property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The type of the property. + An expression representing the property. + An object representing the property. + + + + Gets an object that represents a complex property of this entity. + + The name of the complex property. + An object representing the complex property. + + + + Gets an object that represents a complex property of this entity. + + The type of the complex property. + The name of the complex property. + An object representing the complex property. + + + + Gets an object that represents a complex property of this entity. + + The type of the complex property. + An expression representing the complex property. + An object representing the complex property. + + + + Gets an object that represents a member of the entity. The runtime type of the returned object will + vary depending on what kind of member is asked for. The currently supported member types and their return + types are: + Reference navigation property: . + Collection navigation property: . + Primitive/scalar property: . + Complex property: . + + The name of the member. + An object representing the member. + + + + Gets an object that represents a member of the entity. The runtime type of the returned object will + vary depending on what kind of member is asked for. The currently supported member types and their return + types are: + Reference navigation property: . + Collection navigation property: . + Primitive/scalar property: . + Complex property: . + + The type of the member. + The name of the member. + An object representing the member. + + + + Returns a new instance of the non-generic class for + the tracked entity represented by this object. + + A non-generic version. + + + + Validates this instance and returns validation result. + + + Entity validation result. Possibly null if + method is overridden. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the entity. + + The entity. + + + + Gets or sets the state of the entity. + + The state. + + + + Gets the current property values for the tracked entity represented by this object. + + The current values. + + + + Gets the original property values for the tracked entity represented by this object. + The original values are usually the entity's property values as they were when last queried from + the database. + + The original values. + + + + Represents an Entity Data Model (EDM) created by the . + The Compile method can be used to go from this EDM representation to a + which is a compiled snapshot of the model suitable for caching and creation of + or instances. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Creates a for this mode which is a compiled snapshot + suitable for caching and creation of instances. + + The compiled model. + + + + A snapshot of the that was used to create this compiled model. + + + + + A collection of all the properties for an underlying entity or complex object. + + + An instance of this class can be converted to an instance of the generic class + using the Cast method. + Complex properties in the underlying entity or complex object are represented in + the property values as nested instances of this class. + + + + + Initializes a new instance of the class. + + The internal dictionary. + + + + Creates an object of the underlying type for this dictionary and hydrates it with property + values from this dictionary. + + The properties of this dictionary copied into a new object. + + + + Sets the values of this dictionary by reading values out of the given object. + The given object can be of any type. Any property on the object with a name that + matches a property name in the dictionary and can be read will be read. Other + properties will be ignored. This allows, for example, copying of properties from + simple Data Transfer Objects (DTOs). + + The object to read values from. + + + + Creates a new dictionary containing copies of all the properties in this dictionary. + Changes made to the new dictionary will not be reflected in this dictionary and vice versa. + + A clone of this dictionary. + + + + Sets the values of this dictionary by reading values from another dictionary. + The other dictionary must be based on the same type as this dictionary, or a type derived + from the type for this dictionary. + + The dictionary to read values from. + + + + Gets the value of the property just like using the indexed property getter but + typed to the type of the generic parameter. This is useful especially with + nested dictionaries to avoid writing expressions with lots of casts. + + The type of the property. + Name of the property. + The value of the property. + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + Gets or sets the value of the property with the specified property name. + The value may be a nested instance of this class. + + The property name. + The value of the property. + + + + Gets the internal dictionary. + + The internal dictionary. + + + + A non-generic version of the class. + + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal reference entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the entity from the database. + Note that if the entity already exists in the context, then it will not overwritten with values from the database. + + + + + Returns the query that would be used to load this entity from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database. + + A query for the entity. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the property. + The equivalent generic object. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the entity has been loaded from the database. + + true if the entity is loaded; otherwise, false. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + Gets the backing this object as an . + + The internal member entry. + + + + Instances of this class are returned from the Reference method of + and allow operations such as loading to + be performed on the an entity's reference navigation properties. + + The type of the entity to which this property belongs. + The type of the property. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal reference entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the entity from the database. + Note that if the entity already exists in the context, then it will not overwritten with values from the database. + + + + + Returns the query that would be used to load this entity from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database. + + A query for the entity. + + + + Returns a new instance of the non-generic class for + the navigation property represented by this object. + + A non-generic version. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the entity has been loaded from the database. + + true if the entity is loaded; otherwise, false. + + + + Gets the underlying as an . + + The internal member entry. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + Represents a SQL query for entities that is created from a + and is executed using the connection from that context. + Instances of this class are obtained from the instance for the + entity type. The query is not executed when this object is created; it is executed + each time it is enumerated, for example by using foreach. + SQL queries for non-entities are created using the . + See for a generic version of this class. + + + + + Initializes a new instance of the class. + + The internal query. + + + + Executes the query and returns an enumerator for the elements. + + + An object that can be used to iterate through the elements. + + + + + Returns a new query where the results of the query will not be tracked by the associated + . + + A new query with no-tracking applied. + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Gets the internal query. + + The internal query. + + + + Returns false. + + false. + + + + Represents a SQL query for entities that is created from a + and is executed using the connection from that context. + Instances of this class are obtained from the instance for the + entity type. The query is not executed when this object is created; it is executed + each time it is enumerated, for example by using foreach. + SQL queries for non-entities are created using the . + See for a non-generic version of this class. + + + + + Executes the query and returns an enumerator for the elements. + + An + + object that can be used to iterate through the elements. + + + + Executes the query and returns an enumerator for the elements. + + + An object that can be used to iterate through the elements. + + + + + Returns a new query where the results of the query will not be tracked by the associated + . + + A new query with no-tracking applied. + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Gets the internal query. + + The internal query. + + + + Returns false. + + false. + + + + Exception thrown by when it was expected that SaveChanges for an entity would + result in a database update but in fact no rows in the database were affected. This usually indicates + that the database has been concurrently updated such that a concurrency token that was expected to match + did not actually match. + Note that state entries referenced by this exception are not serialized due to security and accesses to + the state entries after serialization will return null. + + + + + + Initializes a new instance of the class. + + The internal context. + The inner exception. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Subscribes the SerializeObjectState event. + + + + + Gets objects that represents the entities that could not + be saved to the database. + + The entries representing the entities that could not be saved. + + + + Holds exception state that will be serialized when the exception is serialized. + + + + + Completes the deserialization. + + The deserialized object. + + + + Gets or sets a value indicating whether the exception involved independent associations. + + + + + Initializes a new instance of the class. + + The context. + The inner exception. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Represents an entity used to store metadata about an EDM in the database. + + + + + Attempts to get the model hash calculated by Code First for the given context. + This method will return null if the context is not being used in Code First mode. + + The context. + The hash string. + + + + Gets or sets the ID of the metadata entity, which is currently always 1. + + The id. + + + + Gets or sets the model hash which is used to check whether the model has + changed since the database was created from it. + + The model hash. + + + + Contains methods used to access the Entity Data Model created by Code First in the EDMX form. + These methods are typically used for debugging when there is a need to look at the model that + Code First creates internally. + + + + + Uses Code First with the given context and writes the resulting Entity Data Model to the given + writer in EDMX form. This method can only be used with context instances that use Code First + and create the model internally. The method cannot be used for contexts created using Database + First or Model First, for contexts created using a pre-existing , or + for contexts created using a pre-existing . + + The context. + The writer. + + + + Writes the Entity Data Model represented by the given to the + given writer in EDMX form. + + An object representing the EDM. + The writer. + + + + A factory for creating derived instances. Implement this + interface to enable design-time services for context types that do not have a + public default constructor. + + At design-time, derived instances can be created in order to enable specific + design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation + for derived types that do not have a public, default constructor, implement + this interface. Design-time services will auto-discover implementations of this interface that are in the + same assembly as the derived type. + + + + + + Creates a new instance of a derived type. + + An instance of TContext + + + + This convention causes DbModelBuilder to include metadata about the model + when it builds the model. When creates a model by convention it will + add this convention to the list of those used by the DbModelBuilder. This will then result in + model metadata being written to the database if the DbContext is used to create the database. + This can then be used as a quick check to see if the model has changed since the last time it was + used against the database. + This convention can be removed from the conventions by overriding + the OnModelCreating method on a derived DbContext class. + + + + + Adds metadata to the given model configuration. + + The model configuration. + + + + This convention uses the name of the derived + class as the container for the conceptual model built by + Code First. + + + + + Initializes a new instance of the class. + + The model container name. + + + + Applies the convention to the given model. + + The model. + + + + This convention uses the namespace of the derived + class as the namespace of the conceptual model built by + Code First. + + + + + Initializes a new instance of the class. + + The model namespace. + + + + Applies the convention to the given model. + + The model. + + + + Instances of this class are used internally to create constant expressions for + that are inserted into the expression tree to replace references to + and . + + The type of the element. + + + + Private constructor called by the Create factory method. + + The query. + + + + Factory method called by CreateDelegate to create an instance of this class. + + The query, which must be a generic object of the expected type. + A new instance. + + + + The public property expected in the LINQ expression tree. + + The query. + + + + Instances of this class are used to create DbConnection objects for + SQL Server Compact Edition based on a given database name or connection string. + + + It is necessary to provide the provider invariant name of the SQL Server Compact + Edition to use when creating an instance of this class. This is because different + versions of SQL Server Compact Editions use different invariant names. + An instance of this class can be set on the class to + cause all DbContexts created with no connection information or just a database + name or connection string to use SQL Server Compact Edition by default. + This class is immutable since multiple threads may access instances simultaneously + when creating connections. + + + + + Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString + properties. + + The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. + + + + Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties. + + + The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. + + + The path to prepend to the database name that will form the file name used by SQL Server Compact Edition + when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use + its default for the database file location. + + + The connection string to use for options to the database other than the 'Data Source'. The Data Source will + be prepended to this string based on the database name when CreateConnection is called. + + + + + Creates a connection for SQL Server Compact Edition based on the given database name or connection string. + If the given string contains an '=' character then it is treated as a full connection string, + otherwise it is treated as a database name only. + + The database name or connection string. + An initialized DbConnection. + + + + The path to prepend to the database name that will form the file name used by + SQL Server Compact Edition when it creates or reads the database file. + The default value is "|DataDirectory|", which means the file will be placed + in the designated data directory. + + + + + The connection string to use for options to the database other than the 'Data Source'. + The Data Source will be prepended to this string based on the database name when + CreateConnection is called. + The default is the empty string, which means no other options will be used. + + + + + The provider invariant name that specifies the version of SQL Server Compact Edition + that should be used. + + + + + Instances of this class are used to create DbConnection objects for + SQL Server based on a given database name or connection string. By default, the connection is + made to '.\SQLEXPRESS'. This can be changed by changing the base connection + string when constructing a factory instance. + + + An instance of this class can be set on the class to + cause all DbContexts created with no connection information or just a database + name or connection string to use SQL Server by default. + This class is immutable since multiple threads may access instances simultaneously + when creating connections. + + + + + Creates a new connection factory with a default BaseConnectionString property of + 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'. + + + + + Creates a new connection factory with the given BaseConnectionString property. + + + The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will + be prepended to this string based on the database name when CreateConnection is called. + + + + + Creates a connection for SQL Server based on the given database name or connection string. + If the given string contains an '=' character then it is treated as a full connection string, + otherwise it is treated as a database name only. + + The database name or connection string. + An initialized DbConnection. + + + + Remove hard dependency on DbProviderFactories. + + + + + The connection string to use for options to the database other than the 'Initial Catalog'. + The 'Initial Catalog' will be prepended to this string based on the database name when + CreateConnection is called. + The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'. + + + + + This attribute can be applied to either an entire derived class or to + individual or properties on that class. When applied + any discovered or properties will still be included + in the model but will not be automatically initialized. + + + + + Thrown when a context is generated from the templates in Database First or Model + First mode and is then used in Code First mode. + + + Code generated using the T4 templates provided for Database First and Model First use may not work + correctly if used in Code First mode. To use these classes with Code First please add any additional + configuration using attributes or the DbModelBuilder API and then remove the code that throws this + exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Implements ICachedMetadataWorkspace for a Code First model. + + + + + Represents an object that holds a cached copy of a MetadataWorkspace and optionally the + assemblies containing entity types to use with that workspace. + + + + + Gets the MetadataWorkspace, potentially lazily creating it if it does not already exist. + If the workspace is not compatible with the provider manifest obtained from the given + connection then an exception is thrown. + + The connection to use to create or check SSDL provider info. + The workspace. + + + + The list of assemblies that contain entity types for this workspace, which may be empty, but + will never be null. + + + + + The default container name for code first is the container name that is set from the DbModelBuilder + + + + + The provider info used to construct the workspace. + + + + + Builds and stores the workspace based on the given code first configuration. + + The code first EDM model. + + + + Gets the . + If the workspace is not compatible with the provider manifest obtained from the given + connection then an exception is thrown. + + The connection to use to create or check SSDL provider info. + The workspace. + + + + The default container name for code first is the container name that is set from the DbModelBuilder + + + + + The list of assemblies that contain entity types for this workspace, which may be empty, but + will never be null. + + + + + The provider info used to construct the workspace. + + + + + The methods here are called from multiple places with an ObjectContext that may have + been created in a variety of ways and ensure that the same code is run regardless of + how the context was created. + + + + + Used a delegate to do the actual creation once an ObjectContext has been obtained. + This is factored in this way so that we do the same thing regardless of how we get to + having an ObjectContext. + Note however that a context obtained from only a connection will have no model and so + will result in an empty database. + + + + + Used a delegate to do the actual existence check once an ObjectContext has been obtained. + This is factored in this way so that we do the same thing regardless of how we get to + having an ObjectContext. + + + + + Used a delegate to do the actual check/delete once an ObjectContext has been obtained. + This is factored in this way so that we do the same thing regardless of how we get to + having an ObjectContext. + + + + + Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. + + + + + Creates a new pair of the given set of entity types and DbSet initializer delegate. + + + + + The entity types part of the pair. + + + + + The DbSet properties initializer part of the pair. + + + + + Static helper methods only. + + + + + Checks whether the given value is null and throws ArgumentNullException if it is. + This method should only be used in places where Code Contracts are compiled out in the + release build but we still need public surface null-checking, such as where a public + abstract class is implemented by an internal concrete class. + + + + + Checks whether the given string is null, empty, or just whitespace, and throws appropriately + if the check fails. + This method should only be used in places where Code Contracts are compiled out in the + release build but we still need public surface checking, such as where a public + abstract class is implemented by an internal concrete class. + + + + + Given two key values that may or may not be byte arrays, this method determines + whether or not they are equal. For non-binary key values, this is equivalent + to Object.Equals. For binary keys, it is by comparison of every byte in the + arrays. + + + + + Provides a standard helper method for quoting identifiers + + Identifier to be quoted. Does not validate that this identifier is valid. + Quoted string + + + + Checks the given string which might be a database name or a connection string and determines + whether it should be treated as a name or connection string. Currently, the test is simply + whether or not the string contains an '=' character--if it does, then it should be treated + as a connection string. + + The name or connection string. + true if the string should be treated as a connection string; false if it should be treated as a name. + + + + Determines whether the given string should be treated as a database name directly (it contains no '='), + is in the form name=foo, or is some other connection string. If it is a direct name or has name=, then + the name is extracted and the method returns true. + + The name or connection string. + The name. + True if a name is found; false otherwise. + + + + Determines whether the given string is a full EF connection string with provider, provider connection string, + and metadata parts, or is is instead some other form of connection string. + + The name or connection string. + true if the given string is an EF connection string; otherwise, false. + + + + + Parses a property selector expression used for the expression-based versions of the Property, Collection, Reference, + etc methods on and + classes. + + The type of the entity. + The type of the property. + The property. + Name of the method. + Name of the param. + The property name. + + + + Called recursively to parse an expression tree representing a property path such + as can be passed to Include or the Reference/Collection/Property methods of . + This involves parsing simple property accesses like o => o.Products as well as calls to Select like + o => o.Products.Select(p => p.OrderLines). + + The expression to parse. + The expression parsed into an include path, or null if the expression did not match. + True if matching succeeded; false if the expression could not be parsed. + + + + Gets a cached dictionary mapping property names to property types for all the properties + in the given type. + + + + + Gets a dictionary of compiled property setter delegates for the underlying types. + The dictionary is cached for the type in the app domain. + + + + + Used by the property setter delegates to throw for attempts to set null onto + non-nullable properties or otherwise go ahead and set the property. + + + + + Gets a dictionary of compiled property getter delegates for the underlying types. + The dictionary is cached for the type in the app domain. + + + + + Creates a new with the NoTracking merge option applied. + The query object passed in is not changed. + + The query. + A new query with NoTracking applied. + + + + Converts to + + + Name of the property being validated with ValidationAttributes. Null for type-level validation. + + + ValidationResults instances to be converted to instances. + + + An created based on the + . + + + class contains a property with names of properties the error applies to. + On the other hand each applies at most to a single property. As a result for + each name in ValidationResult.MemberNames one will be created (with some + exceptions for special cases like null or empty .MemberNames or null names in the .MemberNames). + + + + + Calculates a "path" to a property. For primitive properties on an entity type it is just the + name of the property. Otherwise it is a dot separated list of names of the property and all + its ancestor properties starting from the entity. + + Property for which to calculate the path. + Dot separated path to the property. + + + + Gets names of the property and its ancestor properties as enumerable walking "bottom-up". + + Property for which to get the segments. + Names of the property and its ancestor properties. + + + + Gets an type for the given element type. + + Type of the element. + The collection type. + + + + Creates a database name given a type derived from DbContext. This handles nested and + generic classes. No attempt is made to ensure that the name is not too long since this + is provider specific. If a too long name is generated then the provider will throw and + the user must correct by specifying their own name in the DbContext constructor. + + Type of the context. + The database name to use. + + + + A local (in-memory) view of the entities in a DbSet. + This view contains Added entities and does not contain Deleted entities. The view extends + from and hooks up events between the collection and the + state manager to keep the view in sync. + + The type of the entity. + + + + Initializes a new instance of the class for entities + of the given generic type in the given internal context. + + The internal context. + + + + Called by the base class when the collection changes. + This method looks at the change made to the collection and reflects those changes in the + state manager. + + The instance containing the event data. + + + + Handles events from the state manager for entities entering, leaving, or being marked as deleted. + The local view is kept in sync with these changes. + + The sender. + The instance containing the event data. + + + + Clears the items by calling remove on each item such that we get Remove events that + can be tracked back to the state manager, rather than a single Reset event that we + cannot deal with. + + + + + Adds a contains check to the base implementation of InsertItem since we can't support + duplicate entities in the set. + + The index at which to insert. + The item to insert. + + + + Returns a cached binding list implementation backed by this ObservableCollection. + + The binding list. + + + + Service used to search for instance properties on a DbContext class that can + be assigned a DbSet instance. Also, if the the property has a public setter, + then a delegate is compiled to set the property to a new instance of DbSet. + All of this information is cached per app domain. + + + + + Creates a set discovery service for the given derived context. + + + + + Processes the given context type to determine the DbSet or IDbSet + properties and collect root entity types from those properties. Also, delegates are + created to initialize any of these properties that have public setters. + If the type has been processed previously in the app domain, then all this information + is returned from a cache. + + A dictionary of potential entity type to the list of the names of the properties that used the type. + + + + Calls the public setter on any property found to initialize it to a new instance of DbSet. + + + + + Registers the entities and their entity set name hints with the given . + + The model builder. + + + + Returns false if SuppressDbSetInitializationAttribute is found on the property or the class, otherwise + returns true. + + + + + Determines whether or not an instance of DbSet/ObjectSet can be assigned to a property of the given type. + + The type to check. + The entity type of the DbSet/ObjectSet that can be assigned, or null if no set type can be assigned. + + + + + A EagerInternalConnection object wraps an already existing DbConnection object. + + + + + InternalConnection objects manage DbConnections. + Two concrete base classes of this abstract interface exist: + and . + + + + + IInternalConnection objects manage DbConnections. + Two concrete implementations of this interface exist--LazyInternalConnection and EagerInternalConnection. + + + + + Creates an from metadata in the connection. This method must + only be called if ConnectionHasModel returns true. + + The newly created context. + + + + Returns the underlying DbConnection. + + + + + Returns a key consisting of the connection type and connection string. + If this is an EntityConnection then the metadata path is included in the key returned. + + + + + Gets a value indicating whether the connection is an EF connection which therefore contains + metadata specifying the model, or instead is a store connection, in which case it contains no + model info. + + true if the connection contains model info; otherwise, false. + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries + and connection strins. + + + + + Gets or sets the provider to be used when creating the underlying connection. + + + + + Gets the name of the underlying connection string. + + + + + Gets the original connection string. + + + + + Creates an from metadata in the connection. This method must + only be called if ConnectionHasModel returns true. + + The newly created context. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Called after the connection is initialized for the first time. + + + + + Adds a tracking cookie to the connection string for SqlConnections. Returns the + possibly modified store connection string. + + + + + Returns the underlying DbConnection. + + + + + Returns a key consisting of the connection type and connection string. + If this is an EntityConnection then the metadata path is included in the key returned. + + + + + + Gets a value indicating whether the connection is an EF connection which therefore contains + metadata specifying the model, or instead is a store connection, in which case it contains no + model info. + + true if the connection contains model info; otherwise, false. + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries + and connection strins. + + + + + Gets or sets the provider to be used when creating the underlying connection. + + + + + Gets the name of the underlying connection string. + + + + + Gets the original connection string. + + + + + Gets or sets the underlying object. No initialization is done when the + connection is obtained, and it can also be set to null. + + The underlying connection. + + + + Creates a new EagerInternalConnection that wraps an existing DbConnection. + + An existing connection. + If set to true then the underlying connection should be disposed when this object is disposed. + + + + Dispose the existing connection is the original caller has specified that it should be disposed + by the framework. + + + + + Returns the origin of the underlying connection string. + + + + + An is an where the + instance that it wraps is set immediately at construction time rather than being created lazily. In this case + the internal context may or may not own the instance but will only dispose it + if it does own it. + + + + + An underlies every instance of and wraps an + instance. + The also acts to expose necessary information to other parts of the design in a + controlled manner without adding a lot of internal methods and properties to the + class itself. + Two concrete classes derive from this abstract class - and + . + + + + + Initializes the object with its owner. + + The owner . + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Creates a new temporary based on the same metadata and connection as the real + and sets it as the context to use DisposeTempObjectContext is called. + This allows this internal context and its DbContext to be used for transient operations + such as initializing and seeding the database, after which it can be thrown away. + This isolates the real from any changes made and and saves performed. + + + + + If a temporary ObjectContext was set with UseTempObjectContext, then this method disposes that context + and returns this internal context and its DbContext to using the real ObjectContext. + + + + + Called by methods of to create a database either using the Migrations pipeline + if possible and the core provider otherwise. + + The context to use for core provider calls. + + + + Internal implementation of . + + True if the model hash in the context and the database match; false otherwise. + + + + Checks whether the given model (an EDMX document) matches the current model. + + + + + Queries the database for a model hash and returns it if found or returns null if the table + or the row doesn't exist in the database. + + The model hash, or null if not found. + + + + Queries the database for a model stored in the MigrationHistory table and returns it as an EDMX, or returns + null if the database does not contain a model. + + + + + Saves the model hash from the context to the database. + + + + + Performs the initialization action that may result in a and + handle the exception to provide more meaning to the user. + + The action. + + + + Registers for the ObjectStateManagerChanged event on the underlying ObjectStateManager. + This is a virtual method on this class so that it can be mocked. + + The event handler. + + + + Checks whether or not the given object is in the context in any state other than Deleted. + This is a virtual method on this class so that it can be mocked. + + The entity. + true if the entity is in the context and not deleted; otherwise false. + + + + Saves all changes made in this context to the underlying database. + + The number of objects written to the underlying database. + + + + Initializes this instance, which means both the context is initialized and the underlying + database is initialized. + + + + + Initializes the underlying ObjectContext but does not cause the database to be initialized. + + + + + Marks the database as having not been initialized. This is called when the app calls Database.Delete so + that the database if the app attempts to then use the database again it will be re-initialized automatically. + + + + + Runs the unless it has already been run or there + is no initializer for this context type in which case this method does nothing. + + + + + Marks the database as having been initialized without actually running the . + + + + + Runs the if one has been set for this context type. + Calling this method will always cause the initializer to run even if the database is marked + as initialized. + + + + + Disposes the context. Override the DisposeContext method to perform + additional work when disposing. + + + + + Performs additional work to dispose a context. + + + + + Calls DetectChanges on the underlying if AutoDetectChangesEnabled is + true or if force is set to true. + + if set to true then DetectChanges is called regardless of the value of AutoDetectChangesEnabled. + + + + Returns the DbSet instance for the given entity type. + This property is virtual and returns to that it can be mocked. + + The entity type for which a set should be returned. + A set for the given entity type. + + + + Returns the non-generic instance for the given entity type. + This property is virtual and returns to that it can be mocked. + + The entity type for which a set should be returned. + A set for the given entity type. + + + + Creates an internal set using an app domain cached delegate. + + Type of the entity. + The set. + + + + Returns the entity set and the base type for that entity set for the given type. + This method does o-space loading if required and throws if the type is not in the model. + + The entity type to lookup. + The entity set and base type pair. + + + + Returns the entity set and the base type for that entity set for the given type if that + type is mapped in the model, otherwise returns null. + This method does o-space loading if required. + + The entity type to lookup. + The entity set and base type pair, or null if not found. + + + + Checks whether or not the given entity type is mapped in the model. + + The entity type to lookup. + True if the type is mapped as an entity; false otherwise. + + + + Gets the local entities of the type specified from the state manager. That is, all + Added, Modified, and Unchanged entities of the given type. + + The type of entity to get. + The entities. + + + + Executes the given SQL query against the database backing this context. The results are not materialized as + entities or tracked. + + The type of the element. + The SQL. + The parameters. + The query results. + + + + Executes the given SQL query against the database backing this context. The results are not materialized as + entities or tracked. + + Type of the element. + The SQL. + The parameters. + The query results. + + + + Calls the generic ExecuteSqlQuery but with a non-generic return type so that it + has the correct signature to be used with CreateDelegate above. + + + + + Executes the given SQL command against the database backing this context. + + The SQL. + The parameters. + The return value from the database. + + + + Gets the underlying for the given entity, or returns null if the entity isn't tracked by this context. + This method is virtual so that it can be mocked. + + The entity. + The state entry or null. + + + + Gets the underlying objects for all entities tracked by + this context. + This method is virtual so that it can be mocked. + + State entries for all tracked entities. + + + + Gets the underlying objects for all entities of the given + type tracked by this context. + This method is virtual so that it can be mocked. + + The type of the entity. + State entries for all tracked entities of the given type. + + + + Helper method that gets the underlying objects for all entities that + match the given predicate. + + + + + Wraps the given in either a or + a depending on the actual exception type and the state + entries involved. + + The update exception. + A new exception wrapping the given exception. + + + + Uses the underlying context to create an entity such that if the context is configured + to create proxies and the entity is suitable then a proxy instance will be returned. + This method is virtual so that it can be mocked. + + The type of the entity. + The new entity instance. + + + + Uses the underlying context to create an entity such that if the context is configured + to create proxies and the entity is suitable then a proxy instance will be returned. + This method is virtual so that it can be mocked. + + The type of entity to create. + The new entity instance. + + + + This method is used by CreateDelegate to transform the CreateObject method with return type TEntity + into a method with return type object which matches the required type of the delegate. + + + + + Replaces the connection that will be used by this context. + The connection can only be changed before the context is initialized. + + The new connection. + + + + Throws if the context has been disposed. + + + + + Checks whether or not the internal cache of types to entity sets has been initialized, + and initializes it if necessary. + + + + + Forces all DbSets to be initialized, which in turn causes o-space loading to happen + for any entity type for which we have a DbSet. This includes all DbSets that were + discovered on the user's DbContext type. + + + + + Performs o-space loading for the type and returns false if the type is not in the model. + + + + + Performs o-space loading for the type and throws if the type is not in the model. + + Type of the entity. + + + + Returns true if the given entity type does not have EdmEntityTypeAttribute but is in + an assembly that has EdmSchemaAttribute. This indicates mixing of POCO and EOCO in the + same assembly, which is something that we don't support. + + + + + Determines whether or not the given clrType is mapped to a complex type. Assumes o-space loading has happened. + + + + + Updates the cache of types to entity sets either for the first time or after potentially + doing some o-space loading. + + + + + The public context instance that owns this internal context. + + + + + Returns the underlying . + + + + + Gets the temp object context, or null if none has been set. + + The temp object context. + + + + The compiled model created from the Code First pipeline, or null if Code First was + not used to create this context. + Causes the Code First pipeline to be run to create the model if it has not already been + created. + + + + + Set to true when a database initializer is performing some actions, such as creating or deleting + a database, or seeding the database. + + + + + Gets the default database initializer to use for this context if no other has been registered. + For code first this property returns a instance. + For database/model first, this property returns null. + + The default initializer. + + + + Gets or sets a value indicating whether lazy loading is enabled. + + + + + Gets or sets a value indicating whether proxy creation is enabled. + + + + + Gets or sets a value indicating whether DetectChanges is called automatically in the API. + + + + + Gets or sets a value indicating whether to validate entities when is called. + + + + + True if the context has been disposed. + + + + + The connection underlying this context. Accessing this property does not cause the context + to be initialized, only its connection. + + + + + The connection string as originally applied to the context. This is used to perform operations + that need the connection string in a non-mutated form, such as with security info still intact. + + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries, + database intializers and connection strings. + + + + + Gets or sets the provider details to be used when building the EDM model. + + + + + Gets the name of the underlying connection string. + + + + + Gets the provider name bsing used either using a cached value or getting it from + the DbConnection in use. + + + + + Gets or sets a custom OnModelCreating action. + + + + + Gets the DatabaseOperations instance to use to perform Create/Delete/Exists operations + against the database. + Note that this virtual property can be mocked to help with unit testing. + + + + + Gets instance used to create validators and validation contexts. + This property is virtual to allow mocking. + + + + + For mocking. + + + + + Constructs an for an already existing . + + The owner . + The existing . + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Does nothing, since the already exists. + + + + + Does nothing since the database is always considered initialized if the was created + from an existing . + + + + + Does nothing since the database is always considered initialized if the was created + from an existing . + + + + + Does nothing since the database is always considered initialized if the was created + from an existing . + + + + + Disposes the context. The underlying is also disposed if it is owned. + + + + + + + + Returns the underlying . + + + + + Gets the default database initializer to use for this context if no other has been registered. + For code first this property returns a instance. + For database/model first, this property returns null. + + The default initializer. + + + + The connection underlying this context. + + + + + The connection string as originally applied to the context. This is used to perform operations + that need the connection string in a non-mutated form, such as with security info still intact. + + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets a value indicating whether lazy loading is enabled. This is just a wrapper + over the same flag in the underlying . + + + + + Gets or sets a value indicating whether proxy creation is enabled. This is just a wrapper + over the same flag in the underlying ObjectContext. + + + + + An implementation of that represents a clone of another + dictionary. That is, all the property values have been been copied into this dictionary. + + + + + The internal class used to implement . + This internal class allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal context with which the entity of complex object is associated. + The type of the entity or complex object. + If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object. + + + + Implemented by subclasses to get the dictionary item for a given property name. + Checking that the name is valid should happen before this method is called such + that subclasses do not need to perform the check. + + Name of the property. + An item for the given name. + + + + Creates an object of the underlying type for this dictionary and hydrates it with property + values from this dictionary. + + The properties of this dictionary copied into a new object. + + + + Creates an instance of the underlying type for this dictionary, which may either be an entity type (in which + case CreateObject on the context is used) or a non-entity type (in which case the empty constructor is used.) + In either case, app domain cached compiled delegates are used to do the creation. + + + + + Sets the values of this dictionary by reading values out of the given object. + The given object must be of the type that this dictionary is based on. + + The object to read values from. + + + + Creates a new dictionary containing copies of all the properties in this dictionary. + Changes made to the new dictionary will not be reflected in this dictionary and vice versa. + + A clone of this dictionary. + + + + Sets the values of this dictionary by reading values from another dictionary. + The other dictionary must be based on the same type as this dictionary, or a type derived + from the type for this dictionary. + + The dictionary to read values from. + + + + Gets the dictionary item for the property with the given name. + This method checks that the given name is valid. + + The property name. + The item. + + + + Sets the value of the property only if it is different from the current value and is not + an invalid attempt to set a complex property. + + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + Gets or sets the value of the property with the specified property name. + The value may be a nested instance of this class. + + The property name. + The value of the property. + + + + Gets the entity type of complex type that this dictionary is based on. + + The type of the object underlying this dictionary. + + + + Gets the internal context with which the underlying entity or complex type is associated. + + The internal context. + + + + Gets a value indicating whether the object for this dictionary is an entity or a complex object. + + true if this this is a dictionary for an entity; false if it is a dictionary for a complex object. + + + + Initializes a new instance of the class by copying + values from the given dictionary. + + The dictionary to clone. + If non-null, then the values for the new dictionary are taken from this record rather than from the original dictionary. + + + + Gets the dictionary item for a given property name. + + Name of the property. + An item for the given name. + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + An implementation of for an item in a . + + + + + Represents an item in an representing a property name/value. + + + + + Gets or sets the value of the property represented by this item. + + The value. + + + + Gets the name of the property. + + The name. + + + + Gets a value indicating whether this item represents a complex property. + + true If this instance represents a complex property; otherwise, false. + + + + Gets the type of the underlying property. + + The property type. + + + + Initializes a new instance of the class. + + The name. + The value. + The type. + If set to true this item represents a complex property. + + + + Gets or sets the value of the property represented by this item. + + The value. + + + + Gets the name of the property. + + The name. + + + + Gets a value indicating whether this item represents a complex property. + + + true If this instance represents a complex property; otherwise, false. + + + + + Gets the type of the underlying property. + + The property type. + + + + An implementation of that is based on an existing + instance. + + + + + Initializes a new instance of the class. + + The internal context. + The type. + The data record. + If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object. + + + + Gets the dictionary item for a given property name. + + Name of the property. + An item for the given name. + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + An implementation of for an item in a . + + + + + Initializes a new instance of the class. + + The data record. + The ordinal. + The value. + + + + Gets or sets the value of the property represented by this item. + + The value. + + + + Gets the name of the property. + + The name. + + + + Gets a value indicating whether this item represents a complex property. + + + true If this instance represents a complex property; otherwise, false. + + + + + Gets the type of the underlying property. + + The property type. + + + + This is version of an internal interface that already exists in System.Data.Entity that + is implemented by . Using this interface allows state + entries to be mocked for unit testing. The plan is to remove this version of the + interface and use the one in System.Data.Entity once we roll into the framework. + Note that some members may need to be added to the interface in the framework when + we combine the two. + + + + + The internal class used to implement and + . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Base class for and + containing common code for collection and reference navigation property entries. + + + + + Base class for all internal entries that represent different kinds of properties. + + + + + Initializes a new instance of the class. + + The internal entity entry. + The member metadata. + + + + Validates this property. + + A sequence of validation errors for this property. Empty if no errors. Never null. + + + + Creates a new non-generic backed by this internal entry. + The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry. + + The type of the entity. + The type of the property. + The new entry. + + + + Gets the property name. + The property is virtual to allow mocking. + + The property name. + + + + Gets or sets the current value of the navigation property. + + The current value. + + + + Gets the internal entity entry property belongs to. + This property is virtual to allow mocking. + + The internal entity entry. + + + + Gets the entry metadata. + + The entry metadata. + + + + Initializes a new instance of the class. + + The internal entity entry. + The navigation metadata. + + + + Calls Load on the underlying . + + + + + Uses CreateSourceQuery on the underlying to create a query for this + navigation property. + + + + + Gets the navigation property value from the object. + + The entity. + The navigation property value. + + + + Validates that the owning entity entry is associated with an underlying and + is not just wrapping a non-attached entity. + If the entity is not detached, then the RelatedEnd for this navigation property is obtained. + + + + + Calls IsLoaded on the underlying . + + + + + Gets the related end, which will be null if the entity is not being tracked. + + The related end. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references or the collection of references + for a collection property. + This property is virtual so that it can be mocked. + + The current value. + + + + Gets a delegate that can be used to get the value of the property directly from the entity. + Returns null if the property does not have an accessible getter. + + The getter delegate, or null. + + + + Gets a delegate that can be used to set the value of the property directly on the entity. + Returns null if the property does not have an accessible setter. + + The setter delegate, or null. + + + + Initializes a new instance of the class. + + The internal entity entry. + The navigation metadata. + + + + Gets the navigation property value from the object. + Since for a collection the related end is an , it means + that the internal representation of the navigation property is just the related end. + + The entity. + The navigation property value. + + + + Creates a new non-generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The type of the entity. + The type of the property. + The new entry. + + + + Creates a new generic backed by this internal entry. + The actual subtype of the DbCollectionEntry created depends on the metadata of this internal entry. + + The type of the entity. + The type of the element. + The new entry. + + + + Creates a object for the given entity type + and collection element type. + + The type of the entity. + The type of the property. + Type of the element. + The set. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references or the collection of references + for a collection property. + + The current value. + + + + The internal class used to implement + and . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal context. + The state entry. + + + + Initializes a new instance of the class for an + entity which may or may not be attached to the context. + + The internal context. + The entity. + + + + Queries the database for copies of the values of the tracked entity as they currently exist in the database. + + The store values. + + + + Appends a query for the properties in the entity to the given string builder that is being used to + build the eSQL query. This method may be called recursively to query for all the sub-properties of + a complex property. + + The query builder. + The qualifier with which to prefix each property name. + The dictionary that acts as a template for the properties to query. + + + + Validates that a dictionary can be obtained for the state of the entity represented by this entry. + + The method name being used to request a dictionary. + The state that is invalid for the request being processed. + + + + Calls Refresh with StoreWins on the underlying state entry. + + + + + Gets an internal object representing a reference navigation property. + This method is virtual to allow mocking. + + The navigation property. + The type of entity requested, which may be 'object' or null if any type can be accepted. + The entry. + + + + Gets an internal object representing a collection navigation property. + This method is virtual to allow mocking. + + The navigation property. + The type of entity requested, which may be 'object' or null f any type can be accepted. + The entry. + + + + Gets an internal object representing a navigation, scalar, or complex property. + This method is virtual to allow mocking. + + Name of the property. + The type of entity requested, which may be 'object' if any type can be accepted. + The entry. + + + + Gets an internal object representing a scalar or complex property. + This method is virtual to allow mocking. + + The property. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Gets an internal object representing a scalar or complex property. + The property may be a nested property on the given . + + The parent property entry, or null if this is a property directly on the entity. + Name of the property. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Gets an internal object representing a scalar or complex property. + The property may be a nested property on the given . + + The parent property entry, or null if this is a property directly on the entity. + Name of the property. + The property split out into its parts. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Checks that the given property name is a navigation property and is either a reference property or + collection property according to the value of requireCollection. + + + + + Gets metadata for the given property if that property is a navigation property or returns null + if it is not a navigation property. + + Name of the property. + Navigation property metadata or null. + + + + Gets the type of entity or entities at the target end of the given navigation property. + + The navigation property. + The CLR type of the entity or entities at the other end. + + + + Gets the related end for the navigation property with the given name. + + The navigation property. + + + + + Uses EDM metadata to validate that the property name exists in the model and represents a scalar or + complex property or exists in the CLR type. + This method is public and virtual so that it can be mocked. + + The property name. + The type on which the property is declared. + The type of object requested, which may be 'object' if any type can be accepted. + Metadata for the property. + + + + Splits the given property name into parts delimited by dots. + + Name of the property. + The parts of the name. + + + + Validates that this entry is associated with an underlying and + is not just wrapping a non-attached entity. + + + + + Validates entity represented by this entity entry. + This method is virtual to allow mocking. + + User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. + containing validation result. Never null. + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the tracked entity. + This property is virtual to allow mocking. + + The entity. + + + + Gets or sets the state of the entity. + + The state. + + + + Gets the current property values for the tracked entity represented by this object. + This property is virtual to allow mocking. + + The current values. + + + + Gets the original property values for the tracked entity represented by this object. + The original values are usually the entity's property values as they were when last queried from + the database. + This property is virtual to allow mocking. + + The original values. + + + + Checks whether or not this entry is associated with an underlying or + is just wrapping a non-attached entity. + + + + + Gets the type of the entity being tracked. + + The type of the entity. + + + + Gets the c-space entity type for this entity from the EDM. + + + + + Gets the underlying object state entry. + + + + + Gets the internal context. + + The internal context. + + + + A concrete implementation of used for properties of entities. + + + + + The internal class used to implement and + . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal entry. + The property info. + + + + Creates a delegate that will get the value of this property. + + The delegate. + + + + Creates a delegate that will set the value of this property. + + The delegate. + + + + Returns true if the property of the entity that this property is ultimately part + of is set as modified. If this is a property of an entity, then this method returns + true if the property is modified. If this is a property of a complex object, then + this method returns true if the top-level complex property on the entity is modified. + + True if the entity property is modified. + + + + Sets the property of the entity that this property is ultimately part of to modified. + If this is a property of an entity, then this method marks it as modified. + If this is a property of a complex object, then this method marks the top-level + complex property as modified. + + + + + Throws if the user attempts to set a complex property to null. + + The value. + + + + Sets the given value directly onto the underlying entity object. + + The value. + True if the property had a setter that we could attempt to call; false if no setter was available. + + + + Sets the property value, potentially by setting individual nested values for a complex + property. + + The value. + + + + Gets an internal object representing a scalar or complex property of this property, + which must be a mapped complex property. + This method is virtual to allow mocking. + + The property. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Validates that the owning entity entry is associated with an underlying and + is not just wrapping a non-attached entity. + + + + + Creates a new non-generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The type of the entity. + The type of the property. + The new entry. + + + + Returns parent property, or null if this is a property on the top-level entity. + + + + + Gets the current values of the parent entity or complex property. + That is, the current values that contains the value for this property. + + The parent current values. + + + + Gets the original values of the parent entity or complex property. + That is, the original values that contains the value for this property. + + The parent original values. + + + + A delegate that reads the value of this property. + May be null if there is no way to set the value due to missing accessors on the type. + + + + + A delegate that sets the value of this property. + May be null if there is no way to set the value due to missing accessors on the type. + + + + + Gets or sets the original value. + Note that complex properties are returned as objects, not property values. + + + + + Gets or sets the current value. + Note that complex properties are returned as objects, not property values. + Also, for complex properties, the object returned is the actual complex object from the entity + and setting the complex object causes the actual object passed to be set onto the entity. + + The current value. + + + + Gets or sets a value indicating whether this property is modified. + + + + + Gets the property metadata. + + The property metadata. + + + + Initializes a new instance of the class. + + The internal entry. + The property info. + + + + Creates a delegate that will get the value of this property. + + The delegate. + + + + Creates a delegate that will set the value of this property. + + The delegate. + + + + Returns true if the property of the entity that this property is ultimately part + of is set as modified. Since this is a property of an entity this method returns + true if the property is modified. + + True if the entity property is modified. + + + + Sets the property of the entity that this property is ultimately part of to modified. + Since this is a property of an entity this method marks it as modified. + + + + + Returns parent property, or null if this is a property on the top-level entity. + + + + + Gets the current values of the parent entity. + That is, the current values that contains the value for this property. + + The parent current values. + + + + Gets the original values of the parent entity. + That is, the original values that contains the value for this property. + + The parent original values. + + + + A concrete implementation of used for properties of complex objects. + + + + + Initializes a new instance of the class. + + The parent property entry. + The property metadata. + + + + Creates a delegate that will get the value of this property. + + The delegate. + + + + Creates a delegate that will set the value of this property. + + The delegate. + + + + Returns true if the property of the entity that this property is ultimately part + of is set as modified. Since this is a property of a complex object + this method returns true if the top-level complex property on the entity is modified. + + True if the entity property is modified. + + + + Sets the property of the entity that this property is ultimately part of to modified. + Since this is a property of a complex object this method marks the top-level + complex property as modified. + + + + + Returns parent property, or null if this is a property on the top-level entity. + + + + + Gets the current values of the parent complex property. + That is, the current values that contains the value for this property. + + The parent current values. + + + + Gets the original values of the parent complex property. + That is, the original values that contains the value for this property. + + The parent original values. + + + + The internal class used to implement , + and . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal entity entry. + The navigation metadata. + + + + Gets the navigation property value from the object. + For reference navigation properties, this means getting the value from the + object. + + The entity. + The navigation property value. + + + + Sets the navigation property value onto the object. + For reference navigation properties, this means setting the value onto the + object. + + The entity. + The value. + + + + Sets the given value on the given which must be an + . + This method is setup in such a way that it can easily be used by CreateDelegate without any + dynamic code generation needed. + + The type of the related entity. + The entity reference. + The value. + + + + Creates a new non-generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The type of the entity. + The type of the property. + The new entry. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references or the collection of references + for a collection property. + + The current value. + + + + Contains metadata about a member of an entity type or complex type. + + + + + Initializes a new instance of the class. + + The type that the property is declared on. + Type of the property. + The property name. + + + + Creates a new the runtime type of which will be + determined by the metadata. + + The entity entry to which the member belongs. + The parent property entry if the new entry is nested, otherwise null. + The new entry. + + + + Gets the type of the member for which this is metadata. + + The type of the member entry. + + + + Gets the name of the property. + + The name. + + + + Gets the type of the entity or complex object that on which the member is declared. + + The type that the member is declared on. + + + + Gets the type of element for the property, which for non-collection properties + is the same as the MemberType and which for collection properties is the type + of element contained in the collection. + + The type of the element. + + + + Gets the type of the member, which for collection properties is the type + of the collection rather than the type in the collection. + + The type of the member. + + + + The types of member entries supported. + + + + + Initializes a new instance of the class. + + The type that the property is declared on. + Type of the property. + The property name. + if set to true this is a collection nav prop. + + + + Creates a new the runtime type of which will be + determined by the metadata. + + The entity entry to which the member belongs. + The parent property entry which will always be null for navigation entries. + The new entry. + + + + Gets the type of the member for which this is metadata. + + The type of the member entry. + + + + Gets the type of the member, which for collection properties is the type + of the collection rather than the type in the collection. + + The type of the member. + + + + Contains metadata for a property of a complex object or entity. + + + + + Initializes a new instance of the class. + + The type that the property is declared on. + Type of the property. + The property name. + if set to true the property is mapped in the EDM. + if set to true the property is a complex property. + + + + Validates that the given name is a property of the declaring type (either on the CLR type or in the EDM) + and that it is a complex or scalar property rather than a nav property and then returns metadata about + the property. + + The internal context. + The type that the property is declared on. + The type of property requested, which may be 'object' if any type can be accepted. + Name of the property. + Metadata about the property, or null if the property does not exist or is a navigation property. + + + + Creates a new the runtime type of which will be + determined by the metadata. + + The entity entry to which the member belongs. + The parent property entry if the new entry is nested, otherwise null. + The new entry. + + + + Gets a value indicating whether this is a complex property. + That is, not whether or not this is a property on a complex object, but rather if the + property itself is a complex property. + + + true if this instance is complex; otherwise, false. + + + + + Gets the type of the member for which this is metadata. + + The type of the member entry. + + + + Gets a value indicating whether this instance is mapped in the EDM. + + true if this instance is mapped; otherwise, false. + + + + Gets the type of the member, which for collection properties is the type + of the collection rather than the type in the collection. + + The type of the member. + + + + An implementation of that wraps an existing set but makes + it read-only. + + + + + + Initializes a new instance of the class wrapped around + another existing set. + + The existing set. + + + + This is a temporary adapter class that wraps an and + presents it as an . This class will be removed once + we roll into the System.Data.Entity assembly. See + for more details. + + + + + Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. + + + + + Creates a new pair of the given EntitySet and BaseType. + + + + + The EntitySet part of the pair. + + + + + The BaseType part of the pair. + + + + + Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. + + + + + Creates a new pair of the given database initializer delegate and a flag + indicating whether or not it is locked. + + + + + The initializer delegate. + + + + + A flag indicating whether or not the initializer is locked and should not be changed. + + + + + Represents a raw SQL query against the context for any type where the results are never + associated with an entity set and are never tracked. + + + + + Represents a raw SQL query against the context that may be for entities in an entity set + or for some other non-entity element type. + + + + + Initializes a new instance of the class. + + The SQL. + The parameters. + + + + If the query is would track entities, then this method returns a new query that will + not track entities. + + A no-tracking query. + + + + Executes the query and returns an enumerator for the results. + + The query results. + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Gets the SQL query string, + + The SQL query. + + + + Gets the parameters. + + The parameters. + + + + Returns false. + + false. + + + + Initializes a new instance of the class. + + The internal context. + Type of the element. + The SQL. + The parameters. + + + + Returns this query since it can never be a tracking query. + + This instance. + + + + Executes the query and returns an enumerator for the results. + + The query results. + + + + Generic wrapper around to allow results to be + returned as generic + + The type of the element. + + + + Executes the query and returns an enumerator for the elements. + + An + + object that can be used to iterate through the elements. + + + + Executes the query and returns an enumerator for the elements. + + + An object that can be used to iterate through the elements. + + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Returns false. + + false. + + + + Represents a raw SQL query against the context for entities in an entity set. + + + + + Initializes a new instance of the class. + + The set. + The SQL. + if set to true then the entities will not be tracked. + The parameters. + + + + If the query is would track entities, then this method returns a new query that will + not track entities. + + A no-tracking query. + + + + Executes the query and returns an enumerator for the results. + + The query results. + + + + Gets a value indicating whether this instance is set to track entities or not. + + + true if this instance is no-tracking; otherwise, false. + + + + + A LazyInternalConnection object manages information that can be used to create a DbConnection object and + is responsible for creating that object and disposing it. + + + + + Creates a new LazyInternalConnection using convention to calculate the connection. + The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed. + + Either the database name or a connection string. + + + + Creates a new LazyInternalConnection targeting a specific database. + The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed. + + The connection to target. + + + + Creates an from metadata in the connection. This method must + only be called if ConnectionHasModel returns true. + + The newly created context. + + + + Disposes the underlying DbConnection. + Note that dispose actually puts the LazyInternalConnection back to its initial state such that + it can be used again. + + + + + + Searches the app.config/web.config file for a connection that matches the given name. + The connection might be a store connection or an EF connection. + + The connection name. + + True if a connection from the app.config file was found and used. + + + + Attempts to locate a connection entry in the configuration based on the supplied context name. + + The name to search for. + The configuration to search in. + Connection string if found, otherwise null. + + + + Initializes the connection based on a connection string. + + The settings to initialize from. + + + + Returns the underlying DbConnection, creating it first if it does not already exist. + + + + + Returns the origin of the underlying connection string. + + + + + Gets the name of the underlying connection string. + + + + + Returns a key consisting of the connection type and connection string. + If this is an EntityConnection then the metadata path is included in the key returned. + + + + + + + + + Gets a value indicating whether the connection is an EF connection which therefore contains + metadata specifying the model, or instead is a store connection, in which case it contains no + model info. + + true if connection contain model info; otherwise, false. + + + + Gets a value indicating if the lazy connection has been initialized. + + + + + A is a concrete type that will lazily create the + underlying when needed. The created is owned by the + internal context and will be disposed when the internal context is disposed. + + + + + Constructs a for the given owner that will be initialized + on first use. + + The owner . + Responsible for creating a connection lazily when the context is used for the first time. + The model, or null if it will be created by convention + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Saves all changes made in this context to the underlying database, but only if the + context has been initialized. If the context has not been initialized, then this + method does nothing because there is nothing to do; in particular, it does not + cause the context to be initialized. + + The number of objects written to the underlying database. + + + + Disposes the context. The underlying is also disposed. + The connection to the database ( object) is also disposed if it was created by + the context, otherwise it is not disposed. + + + + + + + + Initializes the underlying . + + + + + Creates an immutable, cacheable representation of the model defined by this builder. + This model can be used to create an or can be passed to a + constructor to create a for this model. + + + + + + Creates and configures the instance that will be used to build the + . + + The builder. + + + + Marks the database as having not been initialized. This is called when the app calls Database.Delete so + that the database if the app attempts to then use the database again it will be re-initialized automatically. + + + + + Marks the database as having been initialized without actually running the . + + + + + Runs the unless it has already been run or there + is no initializer for this context type in which case this method does nothing. + + + + + Performs some action (which may do nothing) in such a way that it is guaranteed only to be run + once for the model and connection in this app domain, unless it fails by throwing an exception, + in which case it will be re-tried next time the context is initialized. + + The action. + + + + Returns the underlying . + + + + + The compiled model created from the Code First pipeline, or null if Code First was + not used to create this context. + Causes the Code First pipeline to be run to create the model if it has not already been + created. + + + + + The actually being used, which may be the + temp context for initialization or the real context. + + + + + The connection underlying this context. Accessing this property does not cause the context + to be initialized, only its connection. + + + + + The connection string as originally applied to the context. This is used to perform operations + that need the connection string in a non-mutated form, such as with security info still intact. + + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries + and connection strings. + + + + + Gets the name of the underlying connection string. + + + + + Gets or sets the provider details to be used when building the EDM model. + + + + + + + + Gets or sets a custom OnModelCreating action. + + + + + Gets the default database initializer to use for this context if no other has been registered. + For code first this property returns a instance. + For database/model first, this property returns null. + + The default initializer. + + + + Gets or sets a value indicating whether lazy loading is enabled. + If the exists, then this property acts as a wrapper over the flag stored there. + If the has not been created yet, then we store the value given so we can later + use it when we create the . This allows the flag to be changed, for example in + a DbContext constructor, without it causing the to be created. + + + + + Gets or sets a value indicating whether proxy creation is enabled. + If the ObjectContext exists, then this property acts as a wrapper over the flag stored there. + If the ObjectContext has not been created yet, then we store the value given so we can later + use it when we create the ObjectContext. This allows the flag to be changed, for example in + a DbContext constructor, without it causing the ObjectContext to be created. + + + + + A wrapping query provider that performs expression transformation and then delegates + to the provider. The objects returned are always instances + of . This provider is associated with generic objects. + + + + + Creates a provider that wraps the given provider. + + The provider to wrap. + + + + Performs expression replacement and then delegates to the wrapped provider before wrapping + the returned as a . + + + + + Performs expression replacement and then delegates to the wrapped provider before wrapping + the returned as a where T is determined + from the element type of the ObjectQuery. + + + + + By default, calls the same method on the wrapped provider. + + + + + By default, calls the same method on the wrapped provider. + + + + + Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of + the given ObjectQuery. + + + + + Performs expression replacement and then delegates to the wrapped provider to create an + . + + + + + Wraps the given as a where T is determined + from the element type of the ObjectQuery. + + + + + Gets the internal context. + + The internal context. + + + + A LINQ expression visitor that finds uses with equivalent + instances. + + + + + Replaces calls to DbContext.Set() with an expression for the equivalent . + + The node to replace. + A new node, which may have had the replacement made. + + + + Replaces a or property with a constant expression + for the underlying . + + The node to replace. + A new node, which may have had the replacement made. + + + + Processes the fields in each constant expression and replaces instances with + the underlying ObjectQuery instance. This handles cases where the query has a closure + containing values. + + + + + Gets a value from the given member, or returns null + if the member doesn't contain a DbContext instance. + + The expression for the object for the member, which may be null for a static member. + The member. + The context or null. + + + + Gets the instance from the given instance or static member, returning null + if the member does not contain a DbContext instance. + + The member. + The value of the object to get the instance from, or null if the member is static. + The context instance or null. + + + + Takes a or and creates an expression + for the underlying . + + + + + Takes a or and extracts the underlying . + + + + + A non-generic interface implemented by that allows operations on + any query object without knowing the type to which it applies. + + + + + An interface implemented by . + + The type of the element. + + + + A non-generic interface implemented by that allows operations on + any set object without knowing the type to which it applies. + + + + + An interface implemented by . + + + + + An instance of this internal class is created whenever an instance of the public + class is needed. This allows the public surface to be non-generic, while the runtime type created + still implements . + + The type of the element. + + + + Creates a new query that will be backed by the given internal query object. + + The backing query. + + + + See comments in . + + + + + See comments in . + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the underlying internal query object. + + The internal query. + + + + An instance of this internal class is created whenever an instance of the public + class is needed. This allows the public surface to be non-generic, while the runtime type created + still implements . + + The type of the entity. + + + + Creates a new set that will be backed by the given internal set. + + The internal set. + + + + Creates an instance of this class. This method is used with CreateDelegate to cache a delegate + that can create a generic instance without calling MakeGenericType every time. + + + The internal set to wrap, or null if a new internal set should be created. + The set. + + + + See comments in . + + + + + See comments in . + + + + + See comments in . + + + + + See comments in . + + + + + See comments in . + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the underlying internal query object. + + The internal query. + + + + Gets the underlying internal set. + + The internal set. + + + + See comments in . + + + + + An InternalQuery underlies every instance of DbSet and DbQuery. It acts to lazily initialize a InternalContext as well + as an ObjectQuery and EntitySet the first time that it is used. The InternalQuery also acts to expose necessary + information to other parts of the design in a controlled manner without adding a lot of internal methods and + properties to the DbSet and DbQuery classes themselves. + + The type of entity to query for. + + + + Creates a new query that will be backed by the given InternalContext. + + The backing context. + + + + Creates a new internal query based on the information in an existing query together with + a new underlying ObjectQuery. + + + + + Resets the query to its uninitialized state so that it will be re-lazy initialized the next + time it is used. This allows the ObjectContext backing a DbContext to be switched out. + + + + + Updates the underlying ObjectQuery with the given include path. + + The include path. + A new query containing the defined include path. + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects + so that the query can be used. + + + + + Returns a representation of the underlying query, equivalent + to ToTraceString on ObjectQuery. + + + The query string. + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + The underlying InternalContext. + + + + + The underlying ObjectQuery. + + + + + The underlying ObjectQuery. + + + + + The LINQ query expression. + + + + + The LINQ query provider for the underlying . + + + + + The IQueryable element type. + + + + + Creates a new query that will be backed by the given InternalContext. + + The backing context. + + + + Resets the set to its uninitialized state so that it will be re-lazy initialized the next + time it is used. This allows the ObjectContext backing a DbContext to be switched out. + + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + Thrown if multiple entities exist in the context with the primary key values given. + Thrown if the type of entity is not part of the data model for this context. + Thrown if the types of the key values do not match the types of the key values for the entity type to be found. + Thrown if the context has been disposed. + + + + Finds an entity in the state manager with the given primary key values, or returns null + if no such entity can be found. This includes looking for Added entities with the given + key values. + + + + + Finds an entity in the store with the given primary key values, or returns null + if no such entity can be found. This code is adapted from TryGetObjectByKey to + include type checking in the query. + + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + This method is virtual so that it can be mocked. + + The entity to attach. + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + This method is virtual so that it can be mocked. + + The entity to add. + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + This method is virtual so that it can be mocked. + + The entity to remove. + + + + This method checks whether an entity is already in the context. If it is, then the state + is changed to the new state given. If it isn't, then the action delegate is executed to + either Add or Attach the entity. + + A delegate to Add or Attach the entity. + The new state to give the entity if it is already in the context. + The entity. + Name of the method. + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The type of entity to create. + The entity instance, which may be a proxy. + + + + Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects + so that the query can be used. + This method is virtual so that it can be mocked. + + + + + Attempts to perform lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects + so that o-space loading has happened and the query can be used. This method doesn't throw if the type + for the set is not mapped. + + + + + Creates an underlying for this set. + + if set to true then the query is set to be no-tracking. + The query. + + + + Returns a representation of the underlying query, equivalent + to ToTraceString on ObjectQuery. + + + The query string. + + + + + Updates the underlying ObjectQuery with the given include path. + + The include path. + A new query containing the defined include path. + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Executes the given SQL query against the database materializing entities into the entity set that + backs this set. + + The SQL quey. + if true then the entities are not tracked, otherwise they are. + The parameters. + The query results. + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the ObservableCollection representing the local view for the set based on this query. + + + + + The underlying ObjectQuery. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying EntitySet name. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying EntitySet name, quoted for ESQL. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying EntitySet. Accessing this property will trigger lazy initialization of the query. + + + + + The base type for the underlying entity set. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying InternalContext. Accessing this property will trigger lazy initialization of the query. + + + + + The LINQ query expression. + + + + + The LINQ query provider for the underlying . + + + + + A wrapping query provider that performs expression transformation and then delegates + to the provider. The objects returned + are always instances of when the generic CreateQuery method is + used and are instances of when the non-generic CreateQuery method + is used. This provider is associated with non-generic objects. + + + + + Creates a provider that wraps the given provider. + + The provider to wrap. + + + + Performs expression replacement and then delegates to the wrapped provider before wrapping + the returned as a . + + + + + Delegates to the wrapped provider except returns instances of . + + + + + Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of + the given ObjectQuery. + + + + + Extends to create a sortable binding list that stays in + sync with an underlying . That is, when items are added + or removed from the binding list, they are added or removed from the ObservableCollecion, and + vice-versa. + + The list element type. + + + + An extended BindingList implementation that implements sorting. + This class was adapted from the LINQ to SQL class of the same name. + + The element type. + + + + Initializes a new instance of the class with the + the given underlying list. Note that sorting is dependent on having an actual + rather than some other ICollection implementation. + + The list. + + + + Applies sorting to the list. + + The property to sort by. + The sort direction. + + + + Stops sorting. + + + + + Gets a value indicating whether this list is sorted. + + + true if this instance is sorted; otherwise, false. + + + + + Gets the sort direction. + + The sort direction. + + + + Gets the sort property being used to sort. + + The sort property. + + + + Returns true indicating that this list supports sorting. + + true. + + + + Implements comparing for the implementation. + + + + + Initializes a new instance of the class + for sorting the list. + + The property to sort by. + The sort direction. + + + + Compares two instances of items in the list. + + The left item to compare. + The right item to compare. + + + + + Determines whether this instance can sort for the specified type. + + The type. + + true if this instance can sort for the specified type; otherwise, false. + + + + + Determines whether this instance can sort for the specified type using IComparable. + + The type. + + true if this instance can sort for the specified type; otherwise, false. + + + + + Determines whether this instance can sort for the specified type using ToString. + + The type. + + true if this instance can sort for the specified type; otherwise, false. + + + + + Initializes a new instance of a binding list backed by the given + + The obervable collection. + + + + Creates a new item to be added to the binding list. + + The new item. + + + + Cancels adding of a new item that was started with AddNew. + + Index of the item. + + + + Removes all items from the binding list and underlying ObservableCollection. + + + + + Ends the process of adding a new item that was started with AddNew. + + Index of the item. + + + + Inserts the item into the binding list at the given index. + + The index. + The item. + + + + Removes the item at the specified index. + + The index. + + + + Sets the item into the list at the given position. + + The index to insert at. + The item. + + + + Event handler to update the binding list when the underlying observable collection changes. + + The sender. + Data indicating how the collection has changed. + + + + Adds the item to the underlying observable collection. + + The item. + + + + Removes the item from the underlying from observable collection. + + The item. + + + + Adapted from to allow the initializer to take an input object and + to do one-time initialization that only has side-effects and doesn't return a value. + + The type of the input. + + + + Initializes a new instance of the class. + + The action. + + + + Performs the action unless it has already been successfully performed before. + + The input to the action; ignored if the action has already succeeded. + + + + Adapted from to allow the initializer to take an input object and + to retry initialization if it has previously failed. + + + This class can only be used to initialize reference types that will not be null when + initialized. + + The type of the input. + The type of the result. + + + + Initializes a new instance of the class. + + The value factory. + + + + Gets the value, possibly by running the initializer if it has not been run before or + if all previous times it ran resulted in exceptions. + + The input to the initializer; ignored if initialization has already succeeded. + The initialized object. + + + + Validates a property of a given EDM complex type. + + + This is a composite validator for a complex property of an entity. + + + + + Validates a property of a given EDM property type. + + + This is a composite validator for a property of an entity or a complex type. + + + + + Simple validators for the corresponding property. + + + + + Name of the property the validator was created for. + + + + + Creates an instance of for a given EDM property. + + The EDM property name. + Validators used to validate the given property. + + + + Validates a property. + + Validation context. Never null. + Property to validate. Never null. + Validation errors as . Empty if no errors. Never null. + + + + + Simple validators for the corresponding property. + + + + + Gets the name of the property the validator was created for. + + + + + The complex type validator. + + + + + Creates an instance of for a given complex property. + + The complex property name. + Validators used to validate the given property. + Complex type validator. + + + + Validates a complex property. + + Validation context. Never null. + Property to validate. Never null. + Validation errors as . Empty if no errors. Never null. + + + + + Validator used to validate a property of a given EDM ComplexType. + + + This is a composite validator. + + + + + Validator used to validate an entity of a given EDM Type. + + + This is a composite validator for an EDM Type. + + + + + Creates an instance for a given EDM type. + + Property validators. + Type level validators. + + + + Validates an instance. + + Entity validation context. Must not be null. + The entry for the complex property. Null if validating an entity. + instance. Never null. + + Protected so it doesn't appear on EntityValidator. + + + + + Validates type properties. Any validation errors will be added to + collection. + + + Validation context. Must not be null. + + + Collection of validation errors. Any validation errors will be added to it. + + The entry for the complex property. Null if validating an entity. + + Note that will be modified by this method. Errors should be only added, + never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations + and a merge of validation error lists per entity. + + + + + Returns a validator for a child property. + + Name of the child property for which to return a validator. + + Validator for a child property. Possibly null if there are no validators for requested property. + + + + + Creates an instance for a given EDM complex type. + + Property validators. + Type level validators. + + + + Validates an instance. + + Entity validation context. Must not be null. + The entry for the complex property. Null if validating an entity. + instance. Never null. + + + + Validates type properties. Any validation errors will be added to + collection. + + + Validation context. Must not be null. + + + Collection of validation errors. Any validation errors will be added to it. + + The entry for the complex property. Null if validating an entity. + + Note that will be modified by this method. Errors should be only added, + never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations + and a merge of validation error lists per entity. + + + + + Contains information needed to validate an entity or its properties. + + + + + The entity being validated or the entity that owns the property being validated. + + + + + Initializes a new instance of EntityValidationContext class. + + + The entity being validated or the entity that owns the property being validated. + + + External contexts needed for validation. + + + + + External context needed for validation. + + + + + Gets the entity being validated or the entity that owns the property being validated. + + + + + Validator used to validate an entity of a given EDM EntityType. + + + This is a top level, composite validator. This is also an entry point to getting an entity + validated as validation of an entity is always started by calling Validate method on this type. + + + + + Creates an instance for a given EDM entity type. + + Property validators. + Entity type level validators. + + + + Validates an entity. + + Entity validation context. Must not be null. + instance. Never null. + + + + Validates type properties. Any validation errors will be added to + collection. + + + Validation context. Must not be null. + + + Collection of validation errors. Any validation errors will be added to it. + + The entry for the complex property. Null if validating an entity. + + Note that will be modified by this method. Errors should be only added, + never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations + and a merge of validation error lists per entity. + + + + + Builds validators based on s specified on entity CLR types and properties + as well as based on presence of implementation on entity and complex + type CLR types. It's not sealed and not static for mocking purposes. + + + + + Builds an for the given . + + The entity entry to build the validator for. + Whether the currently processed type is the target type or one of the ancestor types. + + + for the given . Possibly null + if no validation has been specified for this entity type. + + + + + Builds the validator for a given and the corresponding + . + + The CLR type that corresponds to the EDM complex type. + The EDM complex type that type level validation is built for. + A for the given complex type. May be null if no validation specified. + + + + Extracted method from BuildEntityValidator and BuildComplexTypeValidator + + + + + Build validators for the and the corresponding + or . + + Properties to build validators for. + Non-navigation EDM properties. + Navigation EDM properties. + A list of validators. Possibly empty, never null. + + + + Builds a for the given and the corresponding + . If the property is a complex type, type level validators will be built here as + well. + + The CLR property to build the validator for. + The EDM property to build the validator for. + + for the given . Possibly null + if no validation has been specified for this property. + + + + + Builds a for the given transient . + + The CLR property to build the validator for. + + for the given . Possibly null + if no validation has been specified for this property. + + + + + Builds s for given that derive from + . + + Attributes used to build validators. + + A list of s built from . + Possibly empty, never null. + + + + + Returns all non-static non-indexed CLR properties from the . + + The CLR to get the properties from. + + A collection of CLR properties. Possibly empty, never null. + + + + + Builds validators based on the facets of : + * If .Nullable facet set to false adds a validator equivalent to the RequiredAttribute + * If the .MaxLength facet is specified adds a validator equivalent to the MaxLengthAttribute. + However the validator isn't added if .IsMaxLength has been set to true. + + The CLR property to build the facet validators for. + The property for which facet validators will be created + A collection of validators. + + + + Abstracts simple validators used to validate entities and properties. + + + + + Validates an entity or a property. + + Validation context. Never null. + Property to validate. Can be null for type level validation. + Validation error as. Empty if no errors. Never null. + + + + + Contract for IValidator.Validate method. + + Validation context. + Property. + Nothing - always throws. + + + + Validates entities or complex types implementing IValidatableObject interface. + + + + + Display attribute used to specify the display name for an entity or complex property. + + + + + Validates an entity or a complex type implementing IValidatableObject interface. + This method is virtual to allow mocking. + + Validation context. Never null. + + Property to validate. Null if this is the entity that will be validated. Never null if this + is the complex type that will be validated. + + Validation error as . Empty if no errors. Never null. + + + Note that is used to figure out what needs to be validated. If it not null the complex + type will be validated otherwise the entity will be validated. + Also if this is an IValidatableObject complex type but the instance (.CurrentValue) is null we won't validate + anything and will not return any errors. The reason for this is that Validation is supposed to validate using + information the user provided and not some additional implicit rules. (ObjectContext will throw for operations + that involve null complex properties). + + + + + Validates a property, complex property or an entity using validation attributes the property + or the complex/entity type is decorated with. + + + Note that this class is used for validating primitive properties using attributes declared on the property + (property level validation) and complex properties and entities using attributes declared on the type + (type level validation). + + + + + Display attribute used to specify the display name for a property or entity. + + + + + Validation attribute used to validate a property or an entity. + + + + + Creates an instance of class. + + + Validation attribute used to validate a property or an entity. + + + + + Validates a property or an entity. + + Validation context. Never null. + Property to validate. Null for entity validation. Not null for property validation. + + + Validation errors as . Empty if no errors, never null. + + + + + Used to cache and retrieve generated validators and to create context for validating entities or properties. + + + + + Collection of validators keyed by the entity CLR type. Note that if there's no validation for a given type + it will be associated with a null validator. + + + + + Initializes a new instance of class. + + + + + Returns a validator to validate . + + Entity the validator is requested for. + + to validate . Possibly null if no validation + has been specified for the entity. + + + + + Returns a validator to validate . + + Navigation property the validator is requested for. + + Validator to validate . Possibly null if no validation + has been specified for the requested property. + + + + + Gets a validator for the . + + Entity validator. + Property to get a validator for. + + Validator to validate . Possibly null if there is no validation for the + . + + + For complex properties this method walks up the type hierarchy to get to the entity level and then goes down + and gets a validator for the child property that is an ancestor of the property to validate. If a validator + returned for an ancestor is null it means that there is no validation defined beneath and the method just + propagates (and eventually returns) null. + + + + + Creates for . + + Entity entry for which a validation context needs to be created. + User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. + An instance of class. + + + + + A wrapper around EntityKey that allows key/values pairs that have null values to + be used. This allows Added entities with null key values to be searched for in + the ObjectStateManager. + + + + The key name/key value pairs, where some key values may be null + + + + Creates a new WrappedEntityKey instance. + + The entity set that the key belongs to. + The fully qualified name of the given entity set. + The key values, which may be null or contain null values. + The name of the parameter passed for keyValue by the user, which is used when throwing exceptions. + + + + True if any of the key values are null, which means that the EntityKey will also be null. + + + + + An actual EntityKey, or null if any of the key values are null. + + + + + The key name/key value pairs of the key, in which some of the key values may be null. + + + + + Allows configuration to be performed for an complex type in a model. + + A ComplexTypeConfiguration can be obtained via the ComplexType method on + or a custom type derived from ComplexTypeConfiguration + can be registered via the Configurations property on . + + The complex type to be configured. + + + + Allows configuration to be performed for a type in a model. + + The type to be configured. + + + + Configures a property that is defined on this type. + + The type of the property being configured. + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + The type of the property being configured. + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Excludes a property from the model so that it will not be mapped to the database. + + The type of the property to be ignored. + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + + + + Initializes a new instance of ComplexTypeConfiguration + + + + + Allows derived configuration classes for entities and complex types to be registered with a . + + + Derived configuration classes are created by deriving from + or and using a type to be included in the model as the generic + parameter. + + Configuration can be performed without creating derived configuration classes via the Entity and ComplexType + methods on . + + + + + Adds an to the . + Only one can be added for each type in a model. + + The entity type being configured. + The entity type configuration to be added. + The same ConfigurationRegistrar instance so that multiple calls can be chained. + + + + Adds an to the . + Only one can be added for each type in a model. + + The complex type being configured. + The complex type configuration to be added + The same ConfigurationRegistrar instance so that multiple calls can be chained. + + + + Allows the conventions used by a instance to be customized. + Currently removal of one or more default conventions is the only supported operation. + The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. + + + + + Disables a convention for the . + The default conventions that are available for removal can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. + + The type of the convention to be disabled. + + + + Configures the table and column mapping for an entity type or a sub-set of properties from an entity type. + This configuration functionality is available via the Code First Fluent API, see . + + The entity type to be mapped. + + + + Configures the properties that will be included in this mapping fragment. + If this method is not called then all properties that have not yet been + included in a mapping fragment will be configured. + + An anonymous type including the properties to be mapped. + + A lambda expression to an anonymous type that contains the properties to be mapped. + C#: t => new { t.Id, t.Property1, t.Property2 } + VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } + + + + + Re-maps all properties inherited from base types. + + When configuring a derived type to be mapped to a separate table this will cause all properties to + be included in the table rather than just the non-inherited properties. This is known as + Table per Concrete Type (TPC) mapping. + + + + + Configures the table name to be mapped to. + + Name of the table. + + + + Configures the table name and schema to be mapped to. + + Name of the table. + Schema of the table. + + + + Configures the discriminator column used to differentiate between types in an inheritance hierarchy. + + The name of the discriminator column. + A configuration object to further configure the discriminator column and values. + + + + Configures the discriminator condition used to differentiate between types in an inheritance hierarchy. + + The type of the property being used to discriminate between types. + + A lambda expression representing the property being used to discriminate between types. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object to further configure the discriminator condition. + + + + Moves a foreign key constraint from oldTable to newTable and updates column references + + + + + Move any FK constraints that are now completely in newTable and used to refer to oldColumn + + + + + Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the condition to require a value in the property. + + Rows that do not have a value assigned to column that this property is stored in are + assumed to be of the base type of this entity type. + + + + + Populate the table mapping structure + + + + + Sets nullability for association set mappings' foreign keys for 1:* and 1:0..1 associations + when no base types share the the association set mapping's table + + + + + Makes sure only the required property mappings are present + + + + + Determines if the table and entity type need mapping, and if not, removes the existing entity type mapping + + + + + Configures a database column used to store a string values. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the column to allow the maximum length supported by the database provider. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + + Configures the column to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to be variable length. + Columns are variable length by default. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to be optional. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to be required. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column. + + Name of the database provider specific data type. + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column. + + The order that this column should appear in the database table. + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to support Unicode string content. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the column supports Unicode string content. + + + Value indicating if the column supports Unicode string content or not. + Specifying 'null' will remove the Unicode facet from the column. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures a discriminator column used to differentiate between types in an inheritance hierarchy. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the discriminator value used to identify the entity type being + configured from other types in the inheritance hierarchy. + + Type of the discriminator value. + The value to be used to identify the entity type. + A configuration object to configure the column used to store discriminator values. + + + + Configures the discriminator value used to identify the entity type being + configured from other types in the inheritance hierarchy. + + Type of the discriminator value. + The value to be used to identify the entity type. + A configuration object to configure the column used to store discriminator values. + + + + Configures the discriminator value used to identify the entity type being + configured from other types in the inheritance hierarchy. + + The value to be used to identify the entity type. + A configuration object to configure the column used to store discriminator values. + + + + Initializes configurations in the ModelConfiguration so that configuration data + is in a single place + + + + + Configures a many relationship from an entity type. + + The entity type that the relationship originates from. + The entity type that the relationship targets. + + + + Configures the relationship to be many:many with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:many without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:required with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:required without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:optional with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:optional without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures an optional relationship from an entity type. + + The entity type that the relationship originates from. + The entity type that the relationship targets. + + + + Configures the relationship to be optional:many with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:many without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:required with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:required without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + + A lambda expression representing the navigation property on the other end of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + A configuration object that can be used to further configure the relationship. + + + + Configures an required relationship from an entity type. + + The entity type that the relationship originates from. + The entity type that the relationship targets. + + + + Configures the relationship to be required:many with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:many without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:optional with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:optional without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required with a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required without a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required with a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required without a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + A configuration object that can be used to further configure the relationship. + + + + Base class for configuring a property on an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + True if the NavigationProperty's declaring type is the principal end, false if it is not, null if it is not known + + + + + Base class for performing configuration of a relationship. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures a relationship that can support cascade on delete functionality. + + + + + Configures cascade delete to be on for the relationship. + + + + + Configures whether or not cascade delete is on for the relationship. + + Value indicating if cascade delete is on or not. + + + + Configures a relationship that can support foreign key properties that are exposed in the object model. + This configuration functionality is available via the Code First Fluent API, see . + + The dependent entity type. + + + + Configures a relationship that can only support foreign key properties that are not exposed in the object model. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the relationship to use foreign key property(s) that are not exposed in the object model. + The column(s) and table can be customized by specifying a configuration action. + If an empty configuration action is specified then column name(s) will be generated by convention. + If foreign key properties are exposed in the object model then use the HasForeignKey method. + Not all relationships support exposing foreign key properties in the object model. + + Action that configures the foreign key column(s) and table. + + A configuration object that can be used to further configure the relationship. + + + + + Configures the relationship to use foreign key property(s) that are exposed in the object model. + If the foreign key property(s) are not exposed in the object model then use the Map method. + + The type of the key. + + A lambda expression representing the property to be used as the foreign key. + If the foreign key is made up of multiple properties then specify an anonymous type including the properties. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the principal entity type. + + A configuration object that can be used to further configure the relationship. + + + + Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the name of the column(s) for the foreign key. + + + The foreign key column names. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the target entity type. + + The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the table name that the foreign key column(s) reside in. + The table that is specified must already be mapped for the entity type. + + If you want the foreign key(s) to reside in their own table then use the Map method + on to perform + entity splitting to create the table with just the primary key property. Foreign keys can + then be added to the table via this method. + + Name of the table. + The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the table name and schema that the foreign key column(s) reside in. + The table that is specified must already be mapped for the entity type. + + If you want the foreign key(s) to reside in their own table then use the Map method + on to perform + entity splitting to create the table with just the primary key property. Foreign keys can + then be added to the table via this method. + + Name of the table. + Schema of the table. + The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the table and column mapping of a many:many relationship. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the join table name for the relationship. + + Name of the table. + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the join table name and schema for the relationship. + + Name of the table. + Schema of the table. + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the column(s) for the left foreign key. + The left foreign key represents the navigation property specified in the HasMany call. + + + The foreign key column names. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the target entity type. + + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the column(s) for the right foreign key. + The right foreign key represents the navigation property specified in the WithMany call. + + + The foreign key column names. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the target entity type. + + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures a many:many relationship. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the foreign key column(s) and table used to store the relationship. + + Action that configures the foreign key column(s) and table. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Used to configure a property with length facets for an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Used to configure a primitive property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to allow the maximum length supported by the database provider. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to have the specified maximum length. + + + The maximum length for the property. + Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be variable length. + Properties are variable length by default. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to allow the maximum length supported by the database provider. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to have the specified maximum length. + + + The maximum length for the property. + Setting 'null' will remove any maximum length restriction from the property. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be variable length. + properties are variable length by default. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + properties are optional by default. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be a row version in the database. + The actual data type will vary depending on the database provider being used. + Setting the property to be a row version will automatically configure it to be an + optimistic concurrency token. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + properties are required by default. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the precision of the property. + If the database provider does not support precision for the data type of the column then the value is ignored. + + Precision of the property. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + properties are required by default. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the precision and scale of the property. + + The precision of the property. + The scale of the property. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to allow the maximum length supported by the database provider. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to have the specified maximum length. + + + The maximum length for the property. + Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be variable length. + properties are variable length by default. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + properties are optional by default. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to support Unicode string content. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property supports Unicode string content. + + + Value indicating if the property supports Unicode string content or not. + Specifying 'null' will remove the Unicode facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Indicates what parts of a configuration are overridable. + + + + + Nothing in the configuration is overridable. + + + + + The configuration values related to C-Space are overridable. + + + + + The configuration values only related to S-Space are overridable. + + + + + True if this configuration can be replaced in the model configuration, false otherwise + This is only set to true for configurations that are registered automatically via the DbContext + + + + + Base class for conventions that process CLR attributes found in the model. + + The type of member to look for. + The type of the configuration to look for. + The type of the attribute to look for. + + + + Convention to process instances of found on properties in the model + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on foreign key properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on navigation properties in the model. + + + + + Convention to process instances of found on primitive properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on types in the model. + + + + + Convention to process instances of found on types in the model. + + + + + Convention to process instances of found on types in the model. + + + + + Convention to detect navigation properties to be inverses of each other when only one pair + of navigation properties exists between the related types. + + + + + Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties. + + + + + Convention to convert any data types that were explicitly specified, via data annotations or API, + to be lower case. The default SqlClient provider is case sensitive and requires data types to be lower case. This convention + allows the and API to be case insensitive. + + + + + Convention to add a cascade delete to the join table from both tables involved in a many to many relationship. + + + + + Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties + + + + + Convention to set the table name to be a pluralized version of the entity type name. + + + + + Convention to set precision to 18 and scale to 2 for decimal properties. + + + + + Convention to move primary key properties to appear first. + + + + + Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property. + + + + + Convention to process instances of found on navigation properties in the model. + + + + + Convention to detect primary key properties. + Recognized naming patterns in order of precedence are: + 1. 'Id' + 2. [type name]Id + Primary key detection is case insensitive. + + + + + Convention to discover foreign key properties whose names are a combination + of the dependent navigation property name and the principal type primary key property name(s). + + + + + Convention to enable cascade delete for any required relationships. + + + + + Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship. + + + + + Convention to set the entity set name to be a pluralized version of the entity type name. + + + + + Convention to discover foreign key properties whose names match the principal type primary key property name(s). + + + + + Convention to set a default maximum length of 128 for properties whose type supports length facets. + + + + + Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider. + + + + + Convention to configure integer primary keys to be identity. + + + + + Checks for the PK property being an FK in a different table. A PK which is also an FK but + in the same table is used for table splitting and can still be an identity column because + the update pipeline is only inserting into one column of one table. + + + + + Convention to discover foreign key properties whose names are a combination + of the principal type name and the principal type primary key property name(s). + + + + + This class provide service for both the singularization and pluralization, it takes the word pairs + in the ctor following the rules that the first one is singular and the second one is plural. + + + + + Factory method for PluralizationService. Only support english pluralization. + Please set the PluralizationService on the System.Data.Entity.Design.EntityModelSchemaGenerator + to extend the service to other locales. + + CultureInfo + PluralizationService + + + + captalize the return word if the parameter is capitalized + if word is "Table", then return "Tables" + + + + + + + + separate one combine word in to two parts, prefix word and the last word(suffix word) + + + + + + + + return true when the word is "[\s]*" or leading or tailing with spaces + or contains non alphabetical characters + + + + + + + This method allow you to add word to internal PluralizationService of English. + If the singluar or the plural value was already added by this method, then an ArgumentException will be thrown. + + + + + + + Attempt to determine the principal and dependent ends of this association. + + The following table illustrates the solution space. + + Source | Target || Prin | Dep | + -------|--------||-------|-------| + 1 | 1 || - | - | + 1 | 0..1 || Sr | Ta | + 1 | * || Sr | Ta | + 0..1 | 1 || Ta | Sr | + 0..1 | 0..1 || - | - | + 0..1 | * || Sr | Ta | + * | 1 || Ta | Sr | + * | 0..1 || Ta | Sr | + * | * || - | - | + + + + + Allows configuration to be performed for an entity type in a model. + + An EntityTypeConfiguration can be obtained via the Entity method on + or a custom type derived from EntityTypeConfiguration + can be registered via the Configurations property on . + + + + + Initializes a new instance of EntityTypeConfiguration + + + + + Configures the primary key property(s) for this entity type. + + The type of the key. + + A lambda expression representing the property to be used as the primary key. + C#: t => t.Id + VB.Net: Function(t) t.Id + + If the primary key is made up of multiple properties then specify an anonymous type including the properties. + C#: t => new { t.Id1, t.Id2 } + VB.Net: Function(t) New With { t.Id1, t.Id2 } + + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Configures the entity set name to be used for this entity type. + The entity set name can only be configured for the base type in each set. + + The name of the entity set. + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Configures the table name that this entity type is mapped to. + + The name of the table. + + + + Configures the table name that this entity type is mapped to. + + The name of the table. + The database schema of the table. + + + + Allows advanced configuration related to how this entity type is mapped to the database schema. + By default, any configuration will also apply to any type derived from this entity type. + + Derived types can be configured via the overload of Map that configures a derived type or + by using an EntityTypeConfiguration for the derived type. + + The properties of an entity can be split between multiple tables using multiple Map calls. + + Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. + + An action that performs configuration against an . + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Allows advanced configuration related to how a derived entity type is mapped to the database schema. + Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. + + The derived entity type to be configured. + An action that performs configuration against an . + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Configures an optional relationship from this entity type. + Instances of the entity type will be able to be saved to the database without this relationship being specified. + The foreign key in the database will be nullable. + + The type of the entity at the other end of the relationship. + + A lambda expression representing the navigation property for the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures a required relationship from this entity type. + Instances of the entity type will not be able to be saved to the database unless this relationship is specified. + The foreign key in the database will be non-nullable. + + The type of the entity at the other end of the relationship. + + A lambda expression representing the navigation property for the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures a many relationship from this entity type. + + The type of the entity at the other end of the relationship. + + A lambda expression representing the navigation property for the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Handles mapping from a CLR property to an EDM assocation and nav. prop. + + + + + Exception thrown by during model creation when an invalid model is generated. + + + + + Initializes a new instance of ModelValidationException + + + + + Initializes a new instance of ModelValidationException + + The exception message. + + + + Initializes a new instance of ModelValidationException + + The exception message. + The inner exception. + + + + Code Contracts hook methods - Called when contracts fail. Here we detect the most common preconditions + so we can throw the correct exceptions. It also means that we can write preconditions using the + simplest Contract.Requires() form. + + + + + Returns true if a variable of this type can be assigned a null value + + + + True if a reference type or a nullable value type, + false otherwise + + + + + Exception thrown from when validating entities fails. + + + + + Initializes a new instance of DbEntityValidationException + + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + Validation results. + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + The inner exception. + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + Validation results. + The inner exception. + + + + Subscribes the SerializeObjectState event. + + + + + Validation results. + + + + + Holds exception state that will be serialized when the exception is serialized. + + + + + Validation results. + + + + + Completes the deserialization. + + The deserialized object. + + + + Validation results. + + + + + Represents validation results for single entity. + + + + + Entity entry the results applies to. Never null. + + + + + List of instances. Never null. Can be empty meaning the entity is valid. + + + + + Creates an instance of class. + + + Entity entry the results applies to. Never null. + + + List of instances. Never null. Can be empty meaning the entity is valid. + + + + + Creates an instance of class. + + + Entity entry the results applies to. Never null. + + + List of instances. Never null. Can be empty meaning the entity is valid. + + + + + Gets an instance of the results applies to. + + + + + Gets validation errors. Never null. + + + + + Gets an indicator if the entity is valid. + + + + + Exception thrown from when an exception is thrown from the validation + code. + + + + + Initializes a new instance of DbUnexpectedValidationException + + The exception message. + + + + Initializes a new instance of DbUnexpectedValidationException + + The exception message. + + + + Initializes a new instance of DbUnexpectedValidationException + + The exception message. + The inner exception. + + + + Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and + context. + + The serialization info. + The streaming context. + + + + Validation error. Can be either entity or property level validation error. + + + + + Name of the invalid property. Can be null (e.g. for entity level validations) + + + + + Validation error message. + + + + + Creates an instance of . + + Name of the invalid property. Can be null. + Validation error message. Can be null. + + + + Gets name of the invalid property. + + + + + Gets validation error message. + + + + diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net45/EntityFramework.dll b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net45/EntityFramework.dll new file mode 100644 index 0000000..2618485 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net45/EntityFramework.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net45/EntityFramework.xml b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net45/EntityFramework.xml new file mode 100644 index 0000000..aa84a9e --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/lib/net45/EntityFramework.xml @@ -0,0 +1,17968 @@ + + + + EntityFramework + + + + + The base for all all Entity Data Model (EDM) types that represent a type from the EDM type system. + + + + + Represents an item in an Entity Data Model (EDM) . + + + + + The base for all all Entity Data Model (EDM) item types that with a Name property that represents a qualified (can be dotted) name. + + + + + The base for all all Entity Data Model (EDM) item types that with a property. + + + + + The base for all all Entity Data Model (EDM) types that support annotation using . + + + + + EdmDataModelItem is the base for all types in the Entity Data Model (EDM) metadata construction and modification API. + + + + + DataModelItem is the base for all types in the EDM metadata reflection, construction and modification API. + + + + + Gets an value indicating which Entity Data Model (EDM) concept is represented by this item. + + + + + IAnnotatedDataModelItem is implemented by model-specific base types for all types with an property. + + + + + Gets or sets the currently assigned annotations. + + + + + Gets or sets the currently assigned annotations. + + + + + Returns all EdmItem children directly contained by this EdmItem. + + + + + INamedDataModelItem is implemented by model-specific base types for all types with a property. + + + + + Gets or sets the currently assigned name. + + + + + Gets or sets the currently assigned name. + + + + + Gets a value indicating whether this type is abstract. + + + + + Gets the optional base type of this type. + + + + + EdmStructuralMember is the base for all types that represent members of structural items in the Entity Data Model (EDM) metadata construction and modification API. + + + + + Represents information about a database connection. + + + + + Creates a new instance of DbConnectionInfo representing a connection that is specified in the application configuration file. + + The name of the connection string in the application configuration. + + + + Creates a new instance of DbConnectionInfo based on a connection string. + + The connection string to use for the connection. + The name of the provider to use for the connection. Use 'System.Data.SqlClient' for SQL Server. + + + + Gets the connection information represented by this instance. + + Configuration to use if connection comes from the configuration file. + + + + Instances of this class are used to create DbConnection objects for + SQL Server LocalDb based on a given database name or connection string. + + + An instance of this class can be set on the class or in the + app.config/web.config for the application to cause all DbContexts created with no + connection information or just a database name to use SQL Server LocalDb by default. + This class is immutable since multiple threads may access instances simultaneously + when creating connections. + + + + + Implementations of this interface are used to create DbConnection objects for + a type of database server based on a given database name. + An Instance is set on the class to + cause all DbContexts created with no connection information or just a database + name or connection string to use a certain type of database server by default. + Two implementations of this interface are provided: + is used to create connections to Microsoft SQL Server, including EXPRESS editions. + is used to create connections to Microsoft SQL + Server Compact Editions. + Other implementations for other database servers can be added as needed. + Note that implementations should be thread safe or immutable since they may + be accessed by multiple threads at the same time. + + + + + Creates a connection based on the given database name or connection string. + + The database name or connection string. + An initialized DbConnection. + + + + Creates a new instance of the connection factory for the given version of LocalDb. + For SQL Server 2012 LocalDb use "v11.0". + + The LocalDb version to use. + + + + Creates a new instance of the connection factory for the given version of LocalDb. + For SQL Server 2012 LocalDb use "v11.0". + + + The LocalDb version to use. + + The connection string to use for options to the database other than the 'Initial Catalog', + 'Data Source', and 'AttachDbFilename'. + The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the + database name when CreateConnection is called. + The 'Data Source' will be set based on the LocalDbVersion argument. + + + + + Creates a connection for SQL Server LocalDb based on the given database name or connection string. + If the given string contains an '=' character then it is treated as a full connection string, + otherwise it is treated as a database name only. + + The database name or connection string. + An initialized DbConnection. + + + + The connection string to use for options to the database other than the 'Initial Catalog', + 'Data Source', and 'AttachDbFilename'. + The 'Initial Catalog' and 'AttachDbFilename' will be prepended to this string based on the + database name when CreateConnection is called. + The 'Data Source' will be set based on the LocalDbVersion argument. + The default is 'Integrated Security=True; MultipleActiveResultSets=True;'. + + + + + Encapsulates a cloned and store . Note that these + objects are disposable and should be used in a using block to ensure both the cloned context and the + cloned connection are disposed. + + + + + For mocking. + + + + + Creates a clone of the given . The underlying of + the context is also cloned and the given connection string is used for the connection string of + the cloned connection. + + + + + Finds the assemblies that were used for loading o-space types in the source context + and loads those assemblies in the cloned context. + + + + + Disposes both the underlying ObjectContext and its store connection. + + + + + The cloned context. + + + + + This is always the store connection of the underlying ObjectContext. + + + + + Represents setting the database initializer for a specific context type + + + + + Represents a parameter to be passed to a method + + + + + Represents a series of parameters to pass to a method + + + + + Adds a new parameter to the collection + Used for unit testing + + + + + Represents the configuration for a series of contexts + + + + + Adds a new context to the collection + Used for unit testing + + + + + Represents the configuration for a specific context type + + + + + Represents setting the default connection factory + + + + + Represents all Entity Framework related configuration + + + + + Handles creating databases either using the core provider or the Migrations pipeline. + + + + + Creates a database using the core provider (i.e. ObjectContext.CreateDatabase) or + by using Code First Migrations to create an empty database + and the perform an automatic migration to the current model. + Migrations is used if Code First is being used and the EF provider is for SQL Server + or SQL Compact. The core is used for non-Code First models and for other providers even + when using Code First. + + + + + A DbContext instance represents a combination of the Unit Of Work and Repository patterns such that + it can be used to query from a database and group together changes that will then be written + back to the store as a unit. + DbContext is conceptually similar to ObjectContext. + + + DbContext is usually used with a derived type that contains properties for + the root entities of the model. These sets are automatically initialized when the + instance of the derived class is created. This behavior can be modified by applying the + attribute to either the entire derived context + class, or to individual properties on the class. + + The Entity Data Model backing the context can be specified in several ways. When using the Code First + approach, the properties on the derived context are used to build a model + by convention. The protected OnModelCreating method can be overridden to tweak this model. More + control over the model used for the Model First approach can be obtained by creating a + explicitly from a and passing this model to one of the DbContext constructors. + + When using the Database First or Model First approach the Entity Data Model can be created using the + Entity Designer (or manually through creation of an EDMX file) and then this model can be specified using + entity connection string or an object. + + The connection to the database (including the name of the database) can be specified in several ways. + If the parameterless DbContext constructor is called from a derived context, then the name of the derived context + is used to find a connection string in the app.config or web.config file. If no connection string is found, then + the name is passed to the DefaultConnectionFactory registered on the class. The connection + factory then uses the context name as the database name in a default connection string. (This default connection + string points to .\SQLEXPRESS on the local machine unless a different DefaultConnectionFactory is registered.) + + Instead of using the derived context name, the connection/database name can also be specified explicitly by + passing the name to one of the DbContext constructors that takes a string. The name can also be passed in + the form "name=myname", in which case the name must be found in the config file or an exception will be thrown. + + Note that the connection found in the app.config or web.config file can be a normal database connection + string (not a special Entity Framework connection string) in which case the DbContext will use Code First. + However, if the connection found in the config file is a special Entity Framework connection string, then the + DbContext will use Database/Model First and the model specified in the connection string will be used. + + An existing or explicitly created DbConnection can also be used instead of the database/connection name. + + A can be applied to a class derived from DbContext to set the + version of conventions used by the context when it creates a model. If no attribute is applied then the + latest version of conventions will be used. + + + + + Interface implemented by objects that can provide an instance. + The class implements this interface to provide access to the underlying + ObjectContext. + + + + + Gets the object context. + + The object context. + + + + Constructs a new context instance using conventions to create the name of the database to + which a connection will be made. The by-convention name is the full name (namespace + class name) + of the derived context class. + See the class remarks for how this is used to create a connection. + + + + + Constructs a new context instance using conventions to create the name of the database to + which a connection will be made, and initializes it from the given model. + The by-convention name is the full name (namespace + class name) of the derived context class. + See the class remarks for how this is used to create a connection. + + The model that will back this context. + + + + Constructs a new context instance using the given string as the name or connection string for the + database to which a connection will be made. + See the class remarks for how this is used to create a connection. + + Either the database name or a connection string. + + + + Constructs a new context instance using the given string as the name or connection string for the + database to which a connection will be made, and initializes it from the given model. + See the class remarks for how this is used to create a connection. + + Either the database name or a connection string. + The model that will back this context. + + + + Constructs a new context instance using the existing connection to connect to a database. + The connection will not be disposed when the context is disposed. + + An existing connection to use for the new context. + If set to true the connection is disposed when + the context is disposed, otherwise the caller must dispose the connection. + + + + Constructs a new context instance using the existing connection to connect to a database, + and initializes it from the given model. + The connection will not be disposed when the context is disposed. + An existing connection to use for the new context. + The model that will back this context. + If set to true the connection is disposed when + the context is disposed, otherwise the caller must dispose the connection. + + + + + Constructs a new context instance around an existing ObjectContext. + An existing ObjectContext to wrap with the new context. + If set to true the ObjectContext is disposed when + the DbContext is disposed, otherwise the caller must dispose the connection. + + + + + Initializes the internal context, discovers and initializes sets, and initializes from a model if one is provided. + + + + + Discovers DbSets and initializes them. + + + + + This method is called when the model for a derived context has been initialized, but + before the model has been locked down and used to initialize the context. The default + implementation of this method does nothing, but it can be overridden in a derived class + such that the model can be further configured before it is locked down. + + + Typically, this method is called only once when the first instance of a derived context + is created. The model for that context is then cached and is for all further instances of + the context in the app domain. This caching can be disabled by setting the ModelCaching + property on the given ModelBuidler, but note that this can seriously degrade performance. + More control over caching is provided through use of the DbModelBuilder and DbContextFactory + classes directly. + + The builder that defines the model for the context being created. + + + + Internal method used to make the call to the real OnModelCreating method. + + The model builder. + + + + Returns a DbSet instance for access to entities of the given type in the context, + the ObjectStateManager, and the underlying store. + + + See the DbSet class for more details. + + The type entity for which a set should be returned. + A set for the given entity type. + + + + Returns a non-generic DbSet instance for access to entities of the given type in the context, + the ObjectStateManager, and the underlying store. + + The type of entity for which a set should be returned. + A set for the given entity type. + + See the DbSet class for more details. + + + + + Saves all changes made in this context to the underlying database. + + The number of objects written to the underlying database. + Thrown if the context has been disposed. + + + + Validates tracked entities and returns a Collection of containing validation results. + + + Collection of validation results for invalid entities. The collection is never null and must not contain null + values or results for valid entities. + + + 1. This method calls DetectChanges() to determine states of the tracked entities unless + DbContextConfiguration.AutoDetectChangesEnabled is set to false. + 2. By default only Added on Modified entities are validated. The user is able to change this behavior + by overriding ShouldValidateEntity method. + + + + + Extension point allowing the user to override the default behavior of validating only + added and modified entities. + + DbEntityEntry instance that is supposed to be validated. + true to proceed with validation. false otherwise. + + + + Extension point allowing the user to customize validation of an entity or filter out validation results. + Called by . + + DbEntityEntry instance to be validated. + User defined dictionary containing additional info for custom validation. + It will be passed to + and will be exposed as . + This parameter is optional and can be null. + Entity validation result. Possibly null when overridden. + + + + Internal method that calls the protected ValidateEntity method. + + DbEntityEntry instance to be validated. + User defined dictionary containing additional info for custom validation. + It will be passed to + and will be exposed as . + This parameter is optional and can be null. + Entity validation result. Possibly null when ValidateEntity is overridden. + + + + Gets a object for the given entity providing access to + information about the entity and the ability to perform actions on the entity. + + The type of the entity. + The entity. + An entry for the entity. + + + + Gets a object for the given entity providing access to + information about the entity and the ability to perform actions on the entity. + + The entity. + An entry for the entity. + + + + Calls the protected Dispose method. + + + + + Disposes the context. The underlying is also disposed if it was created + is by this context or ownership was passed to this context when this context was created. + The connection to the database ( object) is also disposed if it was created + is by this context or ownership was passed to this context when this context was created. + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + Creates a Database instance for this context that allows for creation/deletion/existence checks + for the underlying database. + + + + + Returns the Entity Framework ObjectContext that is underlying this context. + + Thrown if the context has been disposed. + + + + Provides access to features of the context that deal with change tracking of entities. + + An object used to access features that deal with change tracking. + + + + Provides access to configuration options for the context. + + An object used to access configuration options. + + + + Provides access to the underlying InternalContext for other parts of the internal design. + + + + + A simple representation of an app.config or web.config file. + + + + + Initializes a new instance of AppConfig based on supplied configuration + + Configuration to load settings from + + + + Initializes a new instance of AppConfig based on supplied connection strings + The default configuration for database initializers and default connection factory will be used + + Connection strings to be used + + + + Initializes a new instance of AppConfig based on the for the AppDomain + + + Use AppConfig.DefaultInstance instead of this constructor + + + + + Appies any database intializers specified in the configuration + + + + + Appies any database intializers specified in the configuration + + + Value indicating if initializers should be re-applied if they have already been applied in this AppDomain + + + + + Gets the specified connection string from the configuration + + Name of the connection string to get + The connection string, or null if there is no connection string with the specified name + + + + Gets the default connection factory based on the configuration + + + + + Gets a singleton instance of configuration based on the for the AppDomain + + + + + Acts as a proxy for that for the most part just passes calls + through to the real object but uses virtual methods/properties such that uses of the object + can be mocked. + + + + + Encapsulates information read from the application config file that specifies a database initializer + and allows that initializer to be dynamically applied. + + + + + Initializes a new instance of the class. + + The key from the entry in the config file. + The value from the enrty in the config file. + + + + Uses the context type and initializer type specified in the config to create an initializer instance + and set it with the DbDbatabase.SetInitializer method. + + + + + Reads all initializers from the application config file and sets them using the Database class. + + + + + Calculates the model hash values used the EdmMetadata table from EF 4.1/4.2. + + + + + Calculates an SHA256 hash of the EDMX from the given code first model. This is the hash stored in + the database in the EdmMetadata table in EF 4.1/4.2. The hash is always calculated using a v2 schema + as was generated by EF 4.1/4.2 and with the entity included in the model. + + + + + Acts as a proxy for that for the most part just passes calls + through to the real object but uses virtual methods/properties such that uses of the object + can be mocked. + + + + + An implementation of that will use Code First Migrations + to update the database to the latest version. + + + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + Initializes a new instance of the MigrateDatabaseToLatestVersion class. + + + + + Initializes a new instance of the MigrateDatabaseToLatestVersion class that will + use a specific connection string from the configuration file to connect to + the database to perform the migration. + + The name of the connection string to use for migration. + + + + + + + Helper class that is used to configure a column. + + + + + Creates a new column definition to store Binary data. + + Value indicating whether or not the column allows null values. + The maximum allowable length of the array data. + Value indicating whether or not all data should be padded to the maximum length. + Value indicating whether or not the maximum length supported by the database provider should be used. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + Value indicating whether or not this column should be configured as a timestamp. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Boolean data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Byte data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store DateTime data. + + Value indicating whether or not the column allows null values. + The precision of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Decimal data. + + Value indicating whether or not the column allows null values. + The numeric precision of the column. + The numeric scale of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + Value indicating whether or not the database will generate values for this column during insert. + The newly constructed column definition. + + + + Creates a new column definition to store Double data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store GUID data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Single data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Short data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Integer data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Long data. + + Value indicating whether or not the column allows null values. + Value indicating whether or not the database will generate values for this column during insert. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store String data. + + Value indicating whether or not the column allows null values. + The maximum allowable length of the string data. + Value indicating whether or not all data should be padded to the maximum length. + Value indicating whether or not the maximum length supported by the database provider should be used. + Value indicating whether or not the column supports Unicode content. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store Time data. + + Value indicating whether or not the column allows null values. + The precision of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store DateTimeOffset data. + + Value indicating whether or not the column allows null values. + The precision of the column. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store geography data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Creates a new column definition to store geometry data. + + Value indicating whether or not the column allows null values. + Constant value to use as the default value for this column. + SQL expression used as the default value for this column. + The name of the column. + Provider specific data type to use for this column. + The newly constructed column definition. + + + + Helper class that is used to further configure a table being created from a CreateTable call on . + + + + + Initializes a new instance of the TableBuilder class. + + The table creation operation to be further configured. + The migration the table is created in. + + + + Specifies a primary key for the table. + + + A lambda expression representing the property to be used as the primary key. + C#: t => t.Id + VB.Net: Function(t) t.Id + + If the primary key is made up of multiple properties then specify an anonymous type including the properties. + C#: t => new { t.Id1, t.Id2 } + VB.Net: Function(t) New With { t.Id1, t.Id2 } + + + The name of the primary key. + If null is supplied, a default name will be generated. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + Itself, so that multiple calls can be chained. + + + + Specifies an index to be created on the table. + + + A lambda expression representing the property to be indexed. + C#: t => t.PropertyOne + VB.Net: Function(t) t.PropertyOne + + If multiple properties are to be indexed then specify an anonymous type including the properties. + C#: t => new { t.PropertyOne, t.PropertyTwo } + VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } + + A value indicating whether or not this is a unique index. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + Itself, so that multiple calls can be chained. + + + + Specifies a foreign key constraint to be created on the table. + + Name of the table that the foreign key constraint targets. + + A lambda expression representing the properties of the foreign key. + C#: t => t.PropertyOne + VB.Net: Function(t) t.PropertyOne + + If multiple properties make up the foreign key then specify an anonymous type including the properties. + C#: t => new { t.PropertyOne, t.PropertyTwo } + VB.Net: Function(t) New With { t.PropertyOne, t.PropertyTwo } + + A value indicating whether or not cascade delete should be configured on the foreign key constraint. + + + The name of this foreign key constraint. + If no name is supplied, a default name will be calculated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + Itself, so that multiple calls can be chained. + + + + Base class for code-based migrations. + + + + + Operations to be performed during the upgrade process. + + + + + Operations to be performed during the downgrade process. + + + + + Adds an operation to create a new table. + + + The columns in this create table operation. + You do not need to specify this type, it will be inferred from the columnsAction parameter you supply. + + The name of the table. Schema name is optional, if no schema is specified then dbo is assumed. + + An action that specifies the columns to be included in the table. + i.e. t => new { Id = t.Int(identity: true), Name = t.String() } + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + An object that allows further configuration of the table creation operation. + + + + Adds an operation to create a new foreign key constraint. + + + The table that contains the foreign key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key column. + + The table that contains the column this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The column this foreign key references. + If no value is supplied the primary key of the principal table will be referenced. + + + A value indicating if cascade delete should be configured for the foreign key relationship. + If no value is supplied, cascade delete will be off. + + + The name of the foreign key constraint in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create a new foreign key constraint. + + + The table that contains the foreign key columns. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key columns. + + The table that contains the columns this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The columns this foreign key references. + If no value is supplied the primary key of the principal table will be referenced. + + + A value indicating if cascade delete should be configured for the foreign key relationship. + If no value is supplied, cascade delete will be off. + + + The name of the foreign key constraint in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a foreign key constraint based on its name. + + + The table that contains the foreign key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the foreign key constraint in the database. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a foreign key constraint based on the column it targets. + + + The table that contains the foreign key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key column. + + The table that contains the column this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + The columns this foreign key references. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a foreign key constraint based on the columns it targets. + + + The table that contains the foreign key columns. + Schema name is optional, if no schema is specified then dbo is assumed. + + The foreign key columns. + + The table that contains the columns this foreign key references. + Schema name is optional, if no schema is specified then dbo is assumed. + + The columns this foreign key references. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop a table. + + + The name of the table to be dropped. + Schema name is optional, if no schema is specified then dbo is assumed. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to move a table to a new schema. + + + The name of the table to be moved. + Schema name is optional, if no schema is specified then dbo is assumed. + + The schema the table is to be moved to. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to rename a table. To change the schema of a table use MoveTable + + + The name of the table to be renamed. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The new name for the table. + Schema name is optional, if no schema is specified then dbo is assumed. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to rename a column. + + + The name of the table that contains the column to be renamed. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to be renamed. + The new name for the column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to add a column to an existing table. + + + The name of the table to add the column to. + Schema name is optional, if no schema is specified then dbo is assumed. + + + The name of the column to be added. + + + An action that specifies the column to be added. + i.e. c => c.Int(nullable: false, defaultValue: 3) + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an existing column. + + + The name of the table to drop the column from. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to alter the definition of an existing column. + + + The name of the table the column exists in. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to be changed. + + An action that specifies the new definition for the column. + i.e. c => c.String(nullable: false, defaultValue: "none") + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create a new primary key. + + + The table that contains the primary key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The primary key column. + + The name of the primary key in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create a new primary key based on multiple columns. + + + The table that contains the primary key columns. + Schema name is optional, if no schema is specified then dbo is assumed. + + The primary key columns. + + The name of the primary key in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an existing primary key that does not have the default name. + + + The table that contains the primary key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the primary key to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an existing primary key that was created with the default name. + + + The table that contains the primary key column. + Schema name is optional, if no schema is specified then dbo is assumed. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create an index on a single column. + + + The name of the table to create the index on. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column to create the index on. + + A value indicating if this is a unique index. + If no value is supplied a non-unique index will be created. + + + The name to use for the index in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to create an index on multiple columns. + + + The name of the table to create the index on. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the columns to create the index on. + + A value indicating if this is a unique index. + If no value is supplied a non-unique index will be created. + + + The name to use for the index in the database. + If no value is supplied a unique name will be generated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an index based on its name. + + + The name of the table to drop the index from. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the index to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to drop an index based on the columns it targets. + + + The name of the table to drop the index from. + Schema name is optional, if no schema is specified then dbo is assumed. + + The name of the column(s) the index targets. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Adds an operation to execute a SQL command. + + The SQL to be executed. + + A value indicating if the SQL should be executed outside of the + transaction being used for the migration process. + If no value is supplied the SQL will be executed within the transaction. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Configuration relating to the use of migrations for a given model. + You will typically create a configuration class that derives + from rather than + using this class. + + + + + Initializes a new instance of the DbMigrationsConfiguration class. + + + + + Adds a new SQL generator to be used for a given database provider. + + Name of the database provider to set the SQL generator for. + The SQL generator to be used. + + + + Gets the SQL generator that is set to be used with a given database provider. + + Name of the database provider to get the SQL generator for. + The SQL generator that is set for the database provider. + + + + Gets or sets a value indicating if automatic migrations can be used when migration the database. + + + + + Gets or sets a value indicating if data loss is acceptable during automatic migration. + If set to false an exception will be thrown if data loss may occur as part of an automatic migration. + + + + + Gets or sets the derived DbContext representing the model to be migrated. + + + + + Gets or sets the namespace used for code-based migrations. + + + + + Gets or sets the sub-directory that code-based migrations are stored in. + + + + + Gets or sets the code generator to be used when scaffolding migrations. + + + + + Gets or sets the assembly containing code-based migrations. + + + + + Gets or sets a value to override the connection of the database to be migrated. + + + + + Gets or sets the timeout value used for the individual commands within a + migration. A null value indicates that the default value of the underlying + provider will be used. + + + + + Configuration relating to the use of migrations for a given model. + + The context representing the model that this configuration applies to. + + + + Initializes a new instance of the DbMigrationsConfiguration class. + + + + + Runs after upgrading to the latest migration to allow seed data to be updated. + + Context to be used for updating seed data. + + + + DbMigrator is used to apply existing migrations to a database. + DbMigrator can be used to upgrade and downgrade to any given migration. + To scaffold migrations based on changes to your model use + + + + + Base class for decorators that wrap the core + + + + + Initializes a new instance of the MigratorBase class. + + The migrator that this decorator is wrapping. + + + + Gets a list of the pending migrations that have not been applied to the database. + + List of migration Ids + + + + Updates the target database to the latest migration. + + + + + Updates the target database to a given migration. + + The migration to upgrade/downgrade to. + + + + Gets a list of the migrations that are defined in the assembly. + + List of migration Ids + + + + Gets a list of the migrations that have been applied to the database. + + List of migration Ids + + + + Gets the configuration being used for the migrations process. + + + + + Migration Id representing the state of the database before any migrations are applied. + + + + + Initializes a new instance of the DbMigrator class. + + Configuration to be used for the migration process. + + + + Gets all migrations that are defined in the configured migrations assembly. + + + + + Gets all migrations that have been applied to the target database. + + + + + Gets all migrations that are defined in the assembly but haven't been applied to the target database. + + + + + Updates the target database to a given migration. + + The migration to upgrade/downgrade to. + + + + Gets the configuration that is being used for the migration process. + + + + + A set of extension methods for + + + + + Adds or updates entities by key when SaveChanges is called. Equivalent to an "upsert" operation + from database terminology. + This method can useful when seeding data using Migrations. + + The entities to add or update. + + When the parameter is a custom or fake IDbSet implementation, this method will + attempt to locate and invoke a public, instance method with the same signature as this extension method. + + + + + Adds or updates entities by a custom identification expression when SaveChanges is called. + Equivalent to an "upsert" operation from database terminology. + This method can useful when seeding data using Migrations. + + + An expression specifying the properties that should be used when determining + whether an Add or Update operation should be performed. + + The entities to add or update. + + When the parameter is a custom or fake IDbSet implementation, this method will + attempt to locate and invoke a public, instance method with the same signature as this extension method. + + + + + Generates C# code for a code-based migration. + + + + + Base class for providers that generate code for code-based migrations. + + + + + Generates the code that should be added to the users project. + + Unique identifier of the migration. + Operations to be performed by the migration. + Source model to be stored in the migration metadata. + Target model to be stored in the migration metadata. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Gets the namespaces that must be output as "using" or "Imports" directives to handle + the code generated by the given operations. + + The operations for which code is going to be generated. + An ordered list of namespace names. + + + + Gets the default namespaces that must be output as "using" or "Imports" directives for + any code generated. + + A value indicating if this class is being generated for a code-behind file. + An ordered list of namespace names. + + + + + + + Generates the primary code file that the user can view and edit. + + Operations to be performed by the migration. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates the code behind file with migration metadata. + + Unique identifier of the migration. + Source model to be stored in the migration metadata. + Target model to be stored in the migration metadata. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates a property to return the source or target model in the code behind file. + + Name of the property. + Value to be returned. + Text writer to add the generated code to. + + + + Generates a namespace, using statements and class definition. + + Namespace that code should be generated in. + Name of the class that should be generated. + Text writer to add the generated code to. + Base class for the generated class. + A value indicating if this class is being generated for a code-behind file. + Namespaces for which using directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. + + + + Generates the closing code for a class that was started with WriteClassStart. + + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify a set of column names using a lambda expression. + + The columns to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify the definition for a . + + The column definition to generate code for. + Text writer to add the generated code to. + A value indicating whether to include the column name in the definition. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column of unknown data type. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Removes any invalid characters from the name of an database artifact. + + The name to be scrubbed. + The scrubbed name. + + + + Gets the type name to use for a column of the given data type. + + The data type to translate. + The type name to use in the generated migration. + + + + Quotes an identifier using appropriate escaping to allow it to be stored in a string. + + The identifier to be quoted. + The quoted identifier. + + + + Scaffolds code-based migrations to apply pending model changes to the database. + + + + + Initializes a new instance of the MigrationScaffolder class. + + Configuration to be used for scaffolding. + + + + Scaffolds a code based migration to apply any pending model changes to the database. + + The name to use for the scaffolded migration. + The scaffolded migration. + + + + Scaffolds a code based migration to apply any pending model changes to the database. + + The name to use for the scaffolded migration. + Whether or not to include model changes. + The scaffolded migration. + + + + Scaffolds the initial code-based migration corresponding to a previously run database initializer. + + The scaffolded migration. + + + + Gets or sets the namespace used in the migration's generated code. + + By default, this is the same as MigrationsNamespace on the migrations + configuration object passed into the constructor. For VB.NET projects, this + will need to be updated to take into account the project's root namespace. + + + + + Represents a code-based migration that has been scaffolded and is ready to be written to a file. + + + + + Gets or sets the unique identifier for this migration. + Typically used for the file name of the generated code. + + + + + Gets or sets the scaffolded migration code that the user can edit. + + + + + Gets or sets the scaffolded migration code that should be stored in a code behind file. + + + + + Gets or sets the programming language used for this migration. + Typically used for the file extension of the generated code. + + + + + Gets or sets the subdirectory in the user's project that this migration should be saved in. + + + + + Gets a dictionary of string resources to add to the migration resource file. + + + + + Represents an exception that occurred while running an operation in another AppDomain in the . + + + + + Initializes a new instance of the ToolingException class. + + Error that explains the reason for the exception. + The type of the exception that was thrown. + The stack trace of the exception that was thrown. + + + + + + + + + + Gets the type of the exception that was thrown. + + + + + Gets the stack trace of the exception that was thrown. + + + + + Helper class that is used by design time tools to run migrations related + commands that need to interact with an application that is being edited + in Visual Studio. + + Because the application is being edited the assemblies need to + be loaded in a separate AppDomain to ensure the latest version + is always loaded. + + The App/Web.config file from the startup project is also copied + to ensure that any configuration is applied. + + + + + Initializes a new instance of the ToolingFacade class. + + + The name of the assembly that contains the migrations configuration to be used. + + + The namespace qualified name of migrations configuration to be used. + + + The working directory containing the compiled assemblies. + + + The path of the config file from the startup project. + + + The path of the application data directory from the startup project. + Typically the App_Data directory for web applications or the working directory for executables. + + + The connection to the database to be migrated. + If null is supplied, the default connection for the context will be used. + + + + + Releases all unmanaged resources used by the facade. + + + + + Gets the fully qualified name of all types deriving from . + + All context types found. + + + + Gets the fully qualified name of a type deriving from . + + The name of the context type. If null, the single context type found in the assembly will be returned. + The context type found. + + + + Gets a list of all migrations that have been applied to the database. + + Ids of applied migrations. + + + + Gets a list of all migrations that have not been applied to the database. + + Ids of pending migrations. + + + + Updates the database to the specified migration. + + + The Id of the migration to migrate to. + If null is supplied, the database will be updated to the latest migration. + + Value indicating if data loss during automatic migration is acceptable. + + + + Generates a SQL script to migrate between two migrations. + + + The migration to update from. + If null is supplied, a script to update the current database will be produced. + + + The migration to update to. + If null is supplied, a script to update to the latest migration will be produced. + + Value indicating if data loss during automatic migration is acceptable. + The generated SQL script. + + + + Scaffolds a code-based migration to apply any pending model changes. + + The name for the generated migration. + The programming language of the generated migration. + The root namespace of the project the migration will be added to. + Whether or not to include model changes. + The scaffolded migration. + + + + Scaffolds the initial code-based migration corresponding to a previously run database initializer. + + The programming language of the generated migration. + The root namespace of the project the migration will be added to. + The scaffolded migration. + + + + + + + Releases all resources used by the facade. + + + true to release both managed and unmanaged resources; false to release only unmanaged resources. + + + + + Gets or sets an action to be run to log information. + + + + + Gets or sets an action to be run to log warnings. + + + + + Gets or sets an action to be run to log verbose information. + + + + + Base class for loggers that can be used for the migrations process. + + + + + Logs an informational message. + + The message to be logged. + + + + Logs a warning that the user should be made aware of. + + The message to be logged. + + + + Logs some additional information that should only be presented to the user if they request verbose output. + + The message to be logged. + + + + Generates VB.Net code for a code-based migration. + + + + + + + + Generates the primary code file that the user can view and edit. + + Operations to be performed by the migration. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates the code behind file with migration metadata. + + Unique identifier of the migration. + Source model to be stored in the migration metadata. + Target model to be stored in the migration metadata. + Namespace that code should be generated in. + Name of the class that should be generated. + The generated code. + + + + Generates a property to return the source or target model in the code behind file. + + Name of the property. + Value to be returned. + Text writer to add the generated code to. + + + + Generates a namespace, using statements and class definition. + + Namespace that code should be generated in. + Name of the class that should be generated. + Text writer to add the generated code to. + Base class for the generated class. + A value indicating if this class is being generated for a code-behind file. + Namespaces for which Imports directives will be added. If null, then the namespaces returned from GetDefaultNamespaces will be used. + + + + Generates the closing code for a class that was started with WriteClassStart. + + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a as part of a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify a set of column names using a lambda expression. + + The columns to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform an . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to specify the definition for a . + + The column definition to generate code for. + Text writer to add the generated code to. + A value indicating whether to include the column name in the definition. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to specify the default value for a column of unknown data type. + + The value to be used as the default. + Code representing the default value. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Generates code to perform a . + + The operation to generate code for. + Text writer to add the generated code to. + + + + Removes any invalid characters from the name of an database artifact. + + The name to be scrubbed. + The scrubbed name. + + + + Gets the type name to use for a column of the given data type. + + The data type to translate. + The type name to use in the generated migration. + + + + Quotes an identifier using appropriate escaping to allow it to be stored in a string. + + The identifier to be quoted. + The quoted identifier. + + + + This class is used by Code First Migrations to read and write migration history + from the database. It is not intended to be used by other code and is only public + so that it can be accessed by EF when running under partial trust. It may be + changed or removed in the future. + + + + + Gets or sets the Id of the migration this row represents. + + + + + Gets or sets the date and time that this migrations history entry was created. + + + + + Gets or sets the state of the model after this migration was applied. + + + + + Gets or sets the version of Entity Framework that created this entry. + + + + + This is a version of the HistoryContext that still includes CreatedOn in its model. + It is used when figuring out whether or not the CreatedOn column exists and so should + be dropped. + + + + + Represents an error that occurs when an automatic migration would result in data loss. + + + + + Represents errors that occur inside the Code First Migrations pipeline. + + + + + Initializes a new instance of the MigrationsException class. + + + + + Initializes a new instance of the MigrationsException class. + + The message that describes the error. + + + + Initializes a new instance of the MigrationsException class. + + The message that describes the error. + The exception that is the cause of the current exception, or a null reference (Nothing in Visual Basic) if no inner exception is specified. + + + + Initializes a new instance of the MigrationsException class with serialized data. + + The that holds the serialized object data about the exception being thrown. + The that contains contextual information about the source or destination. + + + + Initializes a new instance of the AutomaticDataLossException class. + + The message that describes the error. + + + + Represents an error that occurs when there are pending model changes after applying the last migration and automatic migration is disabled. + + + + + Initializes a new instance of the AutomaticMigrationsDisabledException class. + + The message that describes the error. + + + + Provides additional metadata about a code-based migration. + + + + + Gets the unique identifier for the migration. + + + + + Gets the state of the model before this migration is run. + + + + + Gets the state of the model after this migration is run. + + + + + Decorator to provide logging during migrations operations.. + + + + + Initializes a new instance of the MigratorLoggingDecorator class. + + The migrator that this decorator is wrapping. + The logger to write messages to. + + + + Decorator to produce a SQL script instead of applying changes to the database. + Using this decorator to wrap will prevent + from applying any changes to the target database. + + + + + Initializes a new instance of the MigratorScriptingDecorator class. + + The migrator that this decorator is wrapping. + + + + + Represents a column being added to a table. + + + + + Represents an operation to modify a database schema. + + + + + Initializes a new instance of the MigrationOperation class. + + + + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets additional arguments that may be processed by providers. + + + + + Gets an operation that will revert this operation. + + + + + Gets a value indicating if this operation may result in data loss. + + + + + Initializes a new instance of the AddColumnOperation class. + + The name of the table the column should be added to. + Details of the column being added. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table the column should be added to. + + + + + Gets the details of the column being added. + + + + + Gets an operation that represents dropping the added column. + + + + + + + + Represents a foreign key constraint being added to a table. + + + + + Base class for changes that affect foreign key constraints. + + + + + Initializes a new instance of the ForeignKeyOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets the name of the table that the foreign key constraint targets. + + + + + Gets or sets the name of the table that the foreign key columns exist in. + + + + + The names of the foreign key column(s). + + + + + Gets a value indicating if a specific name has been supplied for this foreign key constraint. + + + + + Gets or sets the name of this foreign key constraint. + If no name is supplied, a default name will be calculated. + + + + + Initializes a new instance of the AddForeignKeyOperation class. + The PrincipalTable, PrincipalColumns, DependentTable and DependentColumns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to create an index on the foreign key column(s). + + An operation to add the index. + + + + The names of the column(s) that the foreign key constraint should target. + + + + + Gets or sets a value indicating if cascade delete should be configured on the foreign key constraint. + + + + + Gets an operation to drop the foreign key constraint. + + + + + + + + Represents adding a primary key to a table. + + + + + Common base class to represent operations affecting primary keys. + + + + + Initializes a new instance of the PrimaryKeyOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets the name of the table that contains the primary key. + + + + + Gets the column(s) that make up the primary key. + + + + + Gets a value indicating if a specific name has been supplied for this primary key. + + + + + Gets or sets the name of this primary key. + If no name is supplied, a default name will be calculated. + + + + + + + + Initializes a new instance of the AddPrimaryKeyOperation class. + The Table and Columns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to drop the primary key. + + + + + Represents altering an existing column. + + + + + Initializes a new instance of the AlterColumnOperation class. + + The name of the table that the column belongs to. + Details of what the column should be altered to. + Value indicating if this change will result in data loss. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the AlterColumnOperation class. + + The name of the table that the column belongs to. + Details of what the column should be altered to. + Value indicating if this change will result in data loss. + An operation to revert this alteration of the column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table that the column belongs to. + + + + + Gets the new definition for the column. + + + + + Gets an operation that represents reverting the alteration. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents information about a column. + + + + + Initializes a new instance of the class. + + The data type for this column. + + + + Initializes a new instance of the class. + + The data type for this column. + + Additional details about the data type. + This includes details such as maximum length, nullability etc. + + + + + Determines if this column is a narrower data type than another column. + Used to determine if altering the supplied column definition to this definition will result in data loss. + + The column to compare to. + Details of the database provider being used. + True if this column is of a narrower data type. + + + + Gets the data type for this column. + + + + + Gets the CLR type corresponding to the database type of this column. + + + + + Gets the default value for the CLR type corresponding to the database type of this column. + + + + + Gets additional details about the data type of this column. + This includes details such as maximum length, nullability etc. + + + + + Gets or sets the name of the column. + + + + + Gets or sets a provider specific data type to use for this column. + + + + + Gets or sets a value indicating if this column can store null values. + + + + + Gets or sets a value indicating if values for this column will be generated by the database using the identity pattern. + + + + + Gets or sets the maximum length for this column. + Only valid for array data types. + + + + + Gets or sets the precision for this column. + Only valid for decimal data types. + + + + + Gets or sets the scale for this column. + Only valid for decimal data types. + + + + + Gets or sets a constant value to use as the default value for this column. + + + + + Gets or sets a SQL expression used as the default value for this column. + + + + + Gets or sets a value indicating if this column is fixed length. + Only valid for array data types. + + + + + Gets or sets a value indicating if this column supports Unicode characters. + Only valid for textual data types. + + + + + Gets or sets a value indicating if this column should be configured as a timestamp. + + + + + Represents creating a database index. + + + + + Common base class for operations affecting indexes. + + + + + Initializes a new instance of the IndexOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets the table the index belongs to. + + + + + Gets or sets the columns that are indexed. + + + + + Gets a value indicating if a specific name has been supplied for this index. + + + + + Gets or sets the name of this index. + If no name is supplied, a default name will be calculated. + + + + + Initializes a new instance of the CreateIndexOperation class. + The Table and Columns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets or sets a value indicating if this is a unique index. + + + + + Gets an operation to drop this index. + + + + + + + + Represents creating a table. + + + + + Initializes a new instance of the CreateTableOperation class. + + Name of the table to be created. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be created. + + + + + Gets the columns to be included in the new table. + + + + + Gets or sets the primary key for the new table. + + + + + Gets an operation to drop the table. + + + + + + + + Represents deleting a new record from the migrations history table. + The migrations history table is used to store a log of the migrations that have been applied to the database. + + + + + Common base class for operations that affect the migrations history table. + The migrations history table is used to store a log of the migrations that have been applied to the database. + + + + + Initializes a new instance of the HistoryOperation class. + + Name of the migrations history table. + Name of the migration being affected. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the migrations history table. + + + + + Gets the name of the migration being affected. + + + + + + + + Initializes a new instance of the DeleteHistoryOperation class. + + Name of the migrations history table. + Id of the migration record to be deleted. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Represents a column being dropped from a table. + + + + + Initializes a new instance of the DropColumnOperation class. + + The name of the table the column should be dropped from. + The name of the column to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropColumnOperation class. + + The name of the table the column should be dropped from. + The name of the column to be dropped. + The operation that represents reverting the drop operation. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table the column should be dropped from. + + + + + Gets the name of the column to be dropped. + + + + + Gets an operation that represents reverting dropping the column. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents a foreign key constraint being dropped from a table. + + + + + Initializes a new instance of the DropForeignKeyOperation class. + The PrincipalTable, DependentTable and DependentColumns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropForeignKeyOperation class. + + The operation that represents reverting dropping the foreign key constraint. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to drop the associated index on the foreign key column(s). + + An operation to drop the index. + + + + Gets an operation that represents reverting dropping the foreign key constraint. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents dropping an existing index. + + + + + Initializes a new instance of the DropIndexOperation class. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropIndexOperation class. + + The operation that represents reverting dropping the index. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation that represents reverting dropping the index. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents dropping a primary key from a table. + + + + + Initializes a new instance of the DropPrimaryKeyOperation class. + The Table and Columns properties should also be populated. + + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets an operation to add the primary key. + + + + + Represents dropping an existing table. + + + + + Initializes a new instance of the DropTableOperation class. + + The name of the table to be dropped. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Initializes a new instance of the DropTableOperation class. + + The name of the table to be dropped. + An operation that represents reverting dropping the table. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be dropped. + + + + + Gets an operation that represents reverting dropping the table. + The inverse cannot be automatically calculated, + if it was not supplied to the constructor this property will return null. + + + + + + + + Represents inserting a new record into the migrations history table. + The migrations history table is used to store a log of the migrations that have been applied to the database. + + + + + Initializes a new instance of the InsertHistoryOperation class. + + Name of the migrations history table. + Id of the migration record to be inserted. + Value to be stored in the model column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the value to store in the history table representing the target model of the migration. + + + + + Gets the value to store in the history table indicating the version of Entity Framework used to produce this migration. + + + + + + + + Represents moving a table from one schema to another. + + + + + Initializes a new instance of the MoveTableOperation class. + + Name of the table to be moved. + Name of the schema to move the table to. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be moved. + + + + + Gets the name of the schema to move the table to. + + + + + Gets an operation that moves the table back to its original schema. + + + + + + + + Represents renaming an existing column. + + + + + Initializes a new instance of the RenameColumnOperation class. + + Name of the table the column belongs to. + Name of the column to be renamed. + New name for the column. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table the column belongs to. + + + + + Gets the name of the column to be renamed. + + + + + Gets the new name for the column. + + + + + Gets an operation that reverts the rename. + + + + + + + + Represents renaming an existing table. + + + + + Initializes a new instance of the RenameTableOperation class. + + Name of the table to be renamed. + New name for the table. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the name of the table to be renamed. + + + + + Gets the new name for the table. + + + + + Gets an operation that reverts the rename. + + + + + + + + Represents a provider specific SQL statement to be executed directly against the target database. + + + + + Initializes a new instance of the SqlOperation class. + + The SQL to be executed. + + Additional arguments that may be processed by providers. + Use anonymous type syntax to specify arguments e.g. 'new { SampleArgument = "MyValue" }'. + + + + + Gets the SQL to be executed. + + + + + Gets or sets a value indicating whether this statement should be performed outside of + the transaction scope that is used to make the migration process transactional. + If set to true, this operation will not be rolled back if the migration process fails. + + + + + + + + Common base class for providers that convert provider agnostic migration + operations into database provider specific SQL commands. + + + + + Converts a set of migration operations into database provider specific SQL. + + The operations to be converted. + Token representing the version of the database being targeted. + A list of SQL statements to be executed to perform the migration operations. + + + + Represents a migration operation that has been translated into a SQL statement. + + + + + Gets or sets the SQL to be executed to perform this migration operation. + + + + + Gets or sets a value indicating whether this statement should be performed outside of + the transaction scope that is used to make the migration process transactional. + If set to true, this operation will not be rolled back if the migration process fails. + + + + + Provider to convert provider agnostic migration operations into SQL commands + that can be run against Microsoft SQL Server Compact Edition. + + + + + Provider to convert provider agnostic migration operations into SQL commands + that can be run against a Microsoft SQL Server database. + + + + + Converts a set of migration operations into Microsoft SQL Server specific SQL. + + The operations to be converted. + Token representing the version of SQL Server being targeted (i.e. "2005", "2008"). + A list of SQL statements to be executed to perform the migration operations. + + + + Creates an empty connection for the current provider. + Allows derived providers to use connection other than . + + + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL to mark a table as a system table. + Generated SQL should be added using the Statement method. + + The table to mark as a system table. + + + + Generates SQL to create a database schema. + Generated SQL should be added using the Statement method. + + The name of the schema to create. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL for a . + Generated SQL should be added using the Statement method. + + The operation to produce SQL for. + + + + Generates SQL to specify a constant byte[] default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant bool default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant DateTime default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant DateTimeOffset default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant Guid default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant string default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant TimeSpan default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant geogrpahy default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant geometry default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify a constant default value being set on a column. + This method just generates the actual value, not the SQL to set the default value. + + The value to be set. + SQL representing the default value. + + + + Generates SQL to specify the data type of a column. + This method just generates the actual type, not the SQL to create the column. + + The definition of the column. + SQL representing the data type. + + + + Generates a quoted name. The supplied name may or may not contain the schema. + + The name to be quoted. + The quoted name. + + + + Quotes an identifier for SQL Server. + + The identifier to be quoted. + The quoted identifier. + + + + Adds a new Statement to be executed against the database. + + The statement to be executed. + + Gets or sets a value indicating whether this statement should be performed outside of + the transaction scope that is used to make the migration process transactional. + If set to true, this operation will not be rolled back if the migration process fails. + + + + + Gets a new that can be used to build SQL. + + This is just a helper method to create a writer. Writing to the writer will + not cause SQL to be registered for execution. You must pass the generated + SQL to the Statement method. + + An empty text writer to use for SQL generation. + + + + Adds a new Statement to be executed against the database. + + The writer containing the SQL to be executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Utility class to prep the user's config file to run in an AppDomain + + + + + Updates a config file by adding binding redirects for EntityFramework.dll. + This ensures that the user's code can be ran in an AppDomain and the exact + same version of the assembly will be used for both domains. + + That path of the user's config file. Can also be null or a path to an non-existent file. + The path of the updated config file. It is the caller's responsibility to delete this. + + + + The same as but works in partial trust. + + + + + Specifies the default tab string. This field is constant. + + + + + Initializes a new instance of the IndentedTextWriter class using the specified text writer and default tab string. + + The to use for output. + + + + Initializes a new instance of the IndentedTextWriter class using the specified text writer and tab string. + + The to use for output. + The tab string to use for indentation. + + + + Closes the document being written to. + + + + + Flushes the stream. + + + + + Outputs the tab string once for each level of indentation according to the property. + + + + + Writes the specified string to the text stream. + + The string to write. + + + + Writes the text representation of a Boolean value to the text stream. + + The Boolean value to write. + + + + Writes a character to the text stream. + + The character to write. + + + + Writes a character array to the text stream. + + The character array to write. + + + + Writes a subarray of characters to the text stream. + + The character array to write data from. + Starting index in the buffer. + The number of characters to write. + + + + Writes the text representation of a Double to the text stream. + + The double to write. + + + + Writes the text representation of a Single to the text stream. + + The single to write. + + + + Writes the text representation of an integer to the text stream. + + The integer to write. + + + + Writes the text representation of an 8-byte integer to the text stream. + + The 8-byte integer to write. + + + + Writes the text representation of an object to the text stream. + + The object to write. + + + + Writes out a formatted string, using the same semantics as specified. + + The formatting string. + The object to write into the formatted string. + + + + Writes out a formatted string, using the same semantics as specified. + + The formatting string to use. + The first object to write into the formatted string. + The second object to write into the formatted string. + + + + Writes out a formatted string, using the same semantics as specified. + + The formatting string to use. + The argument array to output. + + + + Writes the specified string to a line without tabs. + + The string to write. + + + + Writes the specified string, followed by a line terminator, to the text stream. + + The string to write. + + + + Writes a line terminator. + + + + + Writes the text representation of a Boolean, followed by a line terminator, to the text stream. + + The Boolean to write. + + + + Writes a character, followed by a line terminator, to the text stream. + + The character to write. + + + + Writes a character array, followed by a line terminator, to the text stream. + + The character array to write. + + + + Writes a subarray of characters, followed by a line terminator, to the text stream. + + The character array to write data from. + Starting index in the buffer. + The number of characters to write. + + + + Writes the text representation of a Double, followed by a line terminator, to the text stream. + + The double to write. + + + + Writes the text representation of a Single, followed by a line terminator, to the text stream. + + The single to write. + + + + Writes the text representation of an integer, followed by a line terminator, to the text stream. + + The integer to write. + + + + Writes the text representation of an 8-byte integer, followed by a line terminator, to the text stream. + + The 8-byte integer to write. + + + + Writes the text representation of an object, followed by a line terminator, to the text stream. + + The object to write. + + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + + The formatting string. + The object to write into the formatted string. + + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + + The formatting string to use. + The first object to write into the formatted string. + The second object to write into the formatted string. + + + + Writes out a formatted string, followed by a line terminator, using the same semantics as specified. + + The formatting string to use. + The argument array to output. + + + + Writes the text representation of a UInt32, followed by a line terminator, to the text stream. + + A UInt32 to output. + + + + Gets the encoding for the text writer to use. + + + An that indicates the encoding for the text writer to use. + + + + + Gets or sets the new line character to use. + + + The new line character to use. + + + + + Gets or sets the number of spaces to indent. + + + The number of spaces to indent. + + + + + Gets the to use. + + + The to use. + + + + + Used for generating values that are always in sequential + order for the calling thread. + + + + + Returns the value of unless this value would be the same as the + last value returned by this thread calling this method, in which case the thread pushes the value + a little bit into the future. The comparison is in terms of the form used to store migration ID + in the database--i.e. to the 1/10 second. + + + There should never be any pushing to the future involved for normal use of migrations, but when + this method is called in rapid succession while testing or otherwise calling the DbMigrator APIs + there may be occasional sleeping. + + + + + Same as UtcNow method bur returns the time in the timestamp format used in migration IDs. + + + + + Convention to apply column ordering specified via + or the API. This convention throws if a duplicate configured column order + is detected. + + + + + Convention to apply column ordering specified via + or the API. + + + + + Identifies conventions that can be removed from a instance. + + /// + Note that implementations of this interface must be immutable. + + + + + Strongly-typed and parameterized string resources. + + + + + A string like "Applying automatic migration: {0}." + + + + + A string like "Reverting automatic migration: {0}." + + + + + A string like "Applying code-based migration: {0}." + + + + + A string like "Reverting code-based migration: {0}." + + + + + A string like "Applying code-based migrations: [{1}]." + + + + + A string like "Reverting migrations: [{1}]." + + + + + A string like "Target database is already at version {0}." + + + + + A string like "Target database is: {0}." + + + + + A string like "'{1}' (DataSource: {0}, Provider: {2}, Origin: {3})" + + + + + A string like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id." + + + + + A string like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key." + + + + + A string like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp." + + + + + A string like "'{0}' is not a valid migration. Code-based migrations must be used for both source and target when scripting the upgrade between them." + + + + + A string like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory." + + + + + A string like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead." + + + + + A string like "The migrations configuration type '{0}' was not be found in the assembly '{1}'." + + + + + A string like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use." + + + + + A string like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)." + + + + + A string like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use." + + + + + A string like "The type '{0}' is not a migrations configuration type." + + + + + A string like "The migrations configuration type '{0}' must have a public default constructor." + + + + + A string like "The migrations configuration type '{0}' must not be abstract." + + + + + A string like "The migrations configuration type '{0}' must not be generic." + + + + + A string like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added." + + + + + + A string like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators." + + + + + A string like "Could not load assembly '{0}'. (If you are using Code First Migrations inside Visual Studio this can happen if the startUp project for your solution does not reference the project that contains your migrations. You can either change the startUp project for your solution or use the -StartUpProjectName parameter.)" + + + + + A string like "No context type was found in the assembly '{0}'." + + + + + A string like "More than one context type was found in the assembly '{0}'." + + + + + A string like "To enable migrations for {0}, use Enable-Migrations -ContextTypeName {0}." + + + + + A string like "The context type '{0}' was not found in the assembly '{1}'." + + + + + A string like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context." + + + + + A string like "The argument '{0}' cannot be null, empty or contain only white space." + + + + + A string like "The argument property '{0}' cannot be null." + + + + + A string like "The precondition '{0}' failed. {1}" + + + + + A string like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type." + + + + + A string like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type." + + + + + A string like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + A string like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + A string like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property." + + + + + A string like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property." + + + + + A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'." + + + + + A string like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'." + + + + + A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + A string like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + + A string like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}" + + + + + A string like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}" + + + + + A string like "{0} = {1} conflicts with {2} = {3}" + + + + + A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject." + + + + + A string like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject." + + + + + A string like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys." + + + + + A string like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'." + + + + + A string like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities." + + + + + A string like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + A string like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + A string like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys." + + + + + A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty." + + + + + A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names." + + + + + A string like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name." + + + + + A string like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API." + + + + + A string like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property." + + + + + A string like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property." + + + + + A string like "\t{0}: {1}: {2}" + + + + + A string like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'." + + + + + A string like "The {0} value '{1}' already exists in the user-defined dictionary." + + + + + A string like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call." + + + + + A string like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name." + + + + + A string like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax." + + + + + A string like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation." + + + + + A string like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string." + + + + + A string like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set." + + + + + A string like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model." + + + + + A string like "Unable to determine the provider name for connection of type '{0}'." + + + + + A string like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length." + + + + + A string like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length." + + + + + A string like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method." + + + + + A string like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once." + + + + + A string like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once." + + + + + A string like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used." + + + + + A string like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them." + + + + + A string like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type." + + + + + A string like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types." + + + + + A string like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified." + + + + + A string like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns." + + + + + A string like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations." + + + + + A string like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. " + + + + + A string like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. " + + + + + A string like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct." + + + + + A string like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct." + + + + + A string like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties." + + + + + A string like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation." + + + + + A string like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor." + + + + + A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor." + + + + + + A string like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state." + + + + + A string like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model." + + + + + + A string like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed." + + + + + A string like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created." + + + + + + + A string like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method." + + + + + A string like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method." + + + + + A string like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method." + + + + + A string like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method." + + + + + A string like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method." + + + + + A string like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property." + + + + + A string like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property."" + + + + + A string like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties."" + + + + + A string like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'." + + + + + A string like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead." + + + + + A string like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'." + + + + + A string like "The expression passed to method {0} must represent a property defined on the type '{1}'." + + + + + A string like "{0} cannot be used for entities in the {1} state." + + + + + A string like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'." + + + + + A string like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property." + + + + + A string like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'." + + + + + A string like "The '{0}' property does not exist or is not mapped for the type '{1}'." + + + + + A string like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'." + + + + + A string like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'." + + + + + A string like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties." + + + + + A string like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties." + + + + + A string like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null." + + + + + A string like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null." + + + + + A string like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)." + + + + + A string like "Database '{0}' cannot be created because it already exists." + + + + + + + A string like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. See inner exception for details." + + + + + A string like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once." + + + + + A string like "Failed to set Database.DefaultConnectionFactory to an instance of the '{0}' type as specified in the application configuration. See inner exception for details." + + + + + A string like "The type '{0}' could not be found. The type name must be an assembly-qualified name." + + + + + A string like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute."" + + + + + A string like "The entity found was of type {0} when an entity of type {1} was requested." + + + + + A string like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types." + + + + + A string like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute." + + + + + A string like "The entity type {0} is not part of the model for the current context." + + + + + A string like "No connection string named '{0}' could be found in the application config file." + + + + + A string like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor." + + + + + A string like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'." + + + + + A string like "The context type '{0}' must have a public constructor taking an EntityConnection." + + + + + A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.IsValid. See the inner exception for details." + + + + + A string like "An unexpected exception was thrown during validation of '{0}' when invoking {1}.Validate. See the inner exception for details." + + + + + A string like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file." + + + + + A string like "The context factory type '{0}' must have a public default constructor." + + + + + A string like "The '{0}' property of EdmPrimitiveType is fixed and cannot be set." + + + + + A string like "The namespace '{0}' is a system namespace and cannot be used by other schemas. Choose another namespace name." + + + + + A string like "Role '{0}' in AssociationSets '{1}' and '{2}' refers to the same EntitySet '{3}' in EntityContainer '{4}'. Make sure that if two or more AssociationSets refer to the same AssociationType, the ends do not refer to the same EntitySet." + + + + + A string like "The referenced EntitySet '{0}' for End '{1}' could not be found in the containing EntityContainer." + + + + + A string like "Type '{0}' is derived from type '{1}' that is the type for EntitySet '{2}'. Type '{0}' defines new concurrency requirements that are not allowed for subtypes of base EntitySet types." + + + + + A string like "EntitySet '{0}' is based on type '{1}' that has no keys defined." + + + + + A string like "The end name '{0}' is already defined." + + + + + A string like "The key specified in EntityType '{0}' is not valid. Property '{1}' is referenced more than once in the Key element." + + + + + A string like "Property '{0}' has a CollectionKind specified but is not a collection property." + + + + + A string like "Property '{0}' has a CollectionKind specified. CollectionKind is only supported in version 1.1 EDM models." + + + + + A string like "ComplexType '{0}' is marked as abstract. Abstract ComplexTypes are only supported in version 1.1 EDM models." + + + + + A string like "ComplexType '{0}' has a BaseType specified. ComplexType inheritance is only supported in version 1.1 EDM models." + + + + + A string like "Key part '{0}' for type '{1}' is not valid. All parts of the key must be non-nullable." + + + + + A string like "The property '{0}' in EntityType '{1}' is not valid. All properties that are part of the EntityKey must be of PrimitiveType." + + + + + A string like "Key usage is not valid. The {0} class cannot define keys because one of its base classes ('{1}') defines keys." + + + + + A string like "EntityType '{0}' has no key defined. Define the key for this EntityType." + + + + + A string like "NavigationProperty is not valid. Role '{0}' or Role '{1}' is not defined in Relationship '{2}'." + + + + + A string like "End '{0}' on relationship '{1}' cannot have an operation specified because its multiplicity is '*'. Operations cannot be specified on ends with multiplicity '*'." + + + + + A string like "Each Name and PluralName in a relationship must be unique. '{0}' is already defined." + + + + + A string like "In relationship '{0}', the Principal and Dependent Role of the referential constraint refer to the same Role in the relationship type." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Valid values for multiplicity for the Principal Role are '0..1' or '1'." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because all the properties in the Dependent Role are nullable, multiplicity of the Principal Role must be '0..1'." + + + + + A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because at least one of the properties in the Dependent Role is non-nullable, multiplicity of the Principal Role must be '1'." + + + + + A string like "Multiplicity conflicts with the referential constraint in Role '{0}' in relationship '{1}'. Because all of the properties in the Dependent Role are non-nullable, multiplicity of the Principal Role must be '1'." + + + + + A string like "Properties referred by the Dependent Role '{0}' must be a subset of the key of the EntityType '{1}' referred to by the Dependent Role in the referential constraint for relationship '{2}'." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'." + + + + + A string like "Multiplicity is not valid in Role '{0}' in relationship '{1}'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be '*'." + + + + + A string like "The types of all properties in the Dependent Role of a referential constraint must be the same as the corresponding property types in the Principal Role. The type of property '{0}' on entity '{1}' does not match the type of property '{2}' on entity '{3}' in the referential constraint '{4}'." + + + + + A string like "There is no property with name '{0}' defined in the type referred to by Role '{1}'." + + + + + A string like "A nullable ComplexType is not supported. Property '{0}' must not allow nulls." + + + + + A string like "A property cannot be of type '{0}'. The property type must be a ComplexType or a PrimitiveType." + + + + + A string like "Each member name in an EntityContainer must be unique. A member with name '{0}' is already defined." + + + + + A string like "Each type name in a schema must be unique. Type name '{0}' is already defined." + + + + + A string like "Name '{0}' cannot be used in type '{1}'. Member names cannot be the same as their enclosing type." + + + + + A string like "Each property name in a type must be unique. Property name '{0}' is already defined." + + + + + A string like "A cycle was detected in the type hierarchy of '{0}'." + + + + + A string like "A property cannot be of type '{0}'. The property type must be a ComplexType, a PrimitiveType, or a CollectionType." + + + + + A string like "A property cannot be of type {0}. The property type must be a ComplexType, a PrimitiveType or an EnumType." + + + + + A string like "The specified name must not be longer than 480 characters: '{0}'." + + + + + A string like "The specified name is not allowed: '{0}'." + + + + + A string like "The field {0} must be a string or array type with a maximum length of '{1}'." + + + + + A string like "The field {0} must be a string or array type with a minimum length of '{1}'." + + + + + A string like "No connection string named '{0}' could be found in the application config file." + + + + + A string like "AutomaticMigration" + + + + + A string like "BootstrapMigration" + + + + + A string like "InitialCreate" + + + + + A string like "Automatic migration was not applied because it would result in data loss." + + + + + A string like "[Inserting migration history record]" + + + + + A string like "[Deleting migration history record]" + + + + + A string like "[Updating EdmMetadata model hash]" + + + + + A string like "Running Seed method." + + + + + A string like "No pending code-based migrations." + + + + + A string like "Explicit" + + + + + A string like "Upgrading history table." + + + + + A string like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)." + + + + + A string like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration." + + + + + A string like "Scripting the downgrade between two specified migrations is not supported." + + + + + A string like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it." + + + + + A string like "One or more validation errors were detected during model generation:" + + + + + A string like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported." + + + + + A string like "Connection to the database failed. The connection string is configured with an invalid LocalDB server name. This may have been set in 'global.asax' by a pre-release version of MVC4. The default connection factory is now set in web.config so the line in 'global.asax' starting with 'Database.DefaultConnectionFactory = ' should be removed. See http://go.microsoft.com/fwlink/?LinkId=243166 for details." + + + + + A string like "An error occurred while getting provider information from the database. This can be caused by Entity Framework using an incorrect connection string. Check the inner exceptions for details and ensure that the connection string is correct." + + + + + A string like "Setting IsModified to false for a modified property is not supported." + + + + + A string like "An error occurred while saving entities that do not expose foreign key properties for their relationships. The EntityEntries property will return null because a single entity cannot be identified as the source of the exception. Handling of exceptions while saving can be made easier by exposing foreign key properties in your entity types. See the InnerException for details." + + + + + A string like "The set of property value names is read-only." + + + + + A string like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type." + + + + + A string like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility." + + + + + A string like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions." + + + + + A string like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations." + + + + + A string like "The context cannot be used while the model is being created." + + + + + A string like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)." + + + + + A string like "The operation cannot be completed because the DbContext has been disposed." + + + + + A string like "The provider factory returned a null connection." + + + + + A string like "The DbConnectionFactory instance returned a null connection." + + + + + A string like "The number of primary key values passed must match number of primary key values defined on the entity." + + + + + A string like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details." + + + + + A string like "Multiple entities were found in the Added state that match the given primary key values." + + + + + A string like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()." + + + + + A string like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties." + + + + + A string like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection." + + + + + A string like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used." + + + + + A string like "Validation failed for one or more entities. See 'EntityValidationErrors' property for more details." + + + + + A string like "An exception occurred while initializing the database. See the InnerException for details." + + + + + A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + A string like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + A string like "Code generated using the T4 templates for Database First and Model First development may not work correctly if used in Code First mode. To continue using Database First or Model First ensure that the Entity Framework connection string is specified in the config file of executing application. To use these classes, that were generated from Database First or Model First, with Code First add any additional configuration using attributes or the DbModelBuilder API and then remove the code that throws this exception." + + + + + A string like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method." + + + + + A string like "NavigationProperty is not valid. The FromRole and ToRole are the same." + + + + + A string like "OnDelete can be specified on only one End of an EdmAssociation." + + + + + A string like "The number of properties in the Dependent and Principal Roles in a relationship constraint must be identical." + + + + + A string like "The name is missing or not valid." + + + + + A string like "AssociationEnd must not be null." + + + + + A string like "DependentEnd must not be null." + + + + + A string like "DependentProperties must not be empty." + + + + + A string like "Association must not be null." + + + + + A string like "ResultEnd must not be null." + + + + + A string like "EntityType must not be null." + + + + + A string like "ElementType must not be null." + + + + + A string like "ElementType must not be null." + + + + + A string like "SourceSet must not be null." + + + + + A string like "TargetSet must not be null." + + + + + A string like "The type is not a valid EdmTypeReference." + + + + + A string like "Serializer can only serialize an EdmModel that has one EdmNamespace and one EdmEntityContainer." + + + + + A string like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + A string like "MinLengthAttribute must have a Length value that is zero or greater." + + + + + A string like "The connection can not be overridden because this context was created from an existing ObjectContext." + + + + + A string like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection." + + + + + A string like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection." + + + + + Strongly-typed and parameterized exception factory. + + + + + Migrations.Infrastructure.AutomaticDataLossException with message like "Automatic migration was not applied because it would result in data loss." + + + + + Migrations.Infrastructure.MigrationsException with message like "Cannot scaffold the next migration because the target database was created with a version of Code First earlier than EF 4.3 and does not contain the migrations history table. To start using migrations against this database, ensure the current model is compatible with the target database and execute the migrations Update process. (In Visual Studio you can use the Update-Database command from Package Manager Console to execute the migrations Update process)." + + + + + Migrations.Infrastructure.MigrationsException with message like "The specified target migration '{0}' does not exist. Ensure that target migration refers to an existing migration id." + + + + + Migrations.Infrastructure.MigrationsException with message like "The Foreign Key on table '{0}' with columns '{1}' could not be created because the principal key columns could not be determined. Use the AddForeignKey fluent API to fully specify the Foreign Key." + + + + + Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid target migration. When targeting a previously applied automatic migration, use the full migration id including timestamp." + + + + + Migrations.Infrastructure.MigrationsException with message like "'{0}' is not a valid migration. Code-based migrations must be used for both source and target when scripting the upgrade between them." + + + + + Migrations.Infrastructure.MigrationsException with message like "The target context '{0}' is not constructible. Add a default constructor or provide an implementation of IDbContextFactory." + + + + + Migrations.Infrastructure.MigrationsException with message like "The specified migration name '{0}' is ambiguous. Specify the full migration id including timestamp instead." + + + + + Migrations.Infrastructure.AutomaticMigrationsDisabledException with message like "Unable to update database to match the current model because there are pending changes and automatic migration is disabled. Either write the pending model changes to a code-based migration or enable automatic migration. Set DbMigrationsConfiguration.AutomaticMigrationsEnabled to true to enable automatic migration." + + + + + Migrations.Infrastructure.MigrationsException with message like "Scripting the downgrade between two specified migrations is not supported." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' was not be found in the assembly '{1}'." + + + + + Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the one to use." + + + + + Migrations.Infrastructure.MigrationsException with message like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)." + + + + + Migrations.Infrastructure.MigrationsException with message like "More than one migrations configuration type was found in the assembly '{0}'. Specify the name of the one to use." + + + + + Migrations.Infrastructure.MigrationsException with message like "The type '{0}' is not a migrations configuration type." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must have a public default constructor." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must not be abstract." + + + + + Migrations.Infrastructure.MigrationsException with message like "The migrations configuration type '{0}' must not be generic." + + + + + Migrations.Infrastructure.MigrationsException with message like "Direct column renaming is not supported by SQL Server Compact. To rename a column in SQL Server Compact, you will need to recreate it." + + + + + Migrations.Infrastructure.MigrationsException with message like "In VB.NET projects, the migrations namespace '{0}' must be under the root namespace '{1}'. Update the migrations project's root namespace to allow classes under the migrations namespace to be added." + + + + + + Migrations.Infrastructure.MigrationsException with message like "No MigrationSqlGenerator found for provider '{0}'. Use the SetSqlGenerator method in the target migrations configuration class to register additional SQL generators." + + + + + Migrations.Infrastructure.MigrationsException with message like "No context type was found in the assembly '{0}'." + + + + + Migrations.Infrastructure.MigrationsException with message like "The context type '{0}' was not found in the assembly '{1}'." + + + + + Migrations.Infrastructure.MigrationsException with message like "More than one context type '{0}' was found in the assembly '{1}'. Specify the fully qualified name of the context." + + + + + ArgumentException with message like "The argument '{0}' cannot be null, empty or contain only white space." + + + + + ArgumentException with message like "The argument property '{0}' cannot be null." + + + + + ArgumentException with message like "The precondition '{0}' failed. {1}" + + + + + InvalidOperationException with message like "The type '{0}' has already been configured as a complex type. It cannot be reconfigured as an entity type." + + + + + InvalidOperationException with message like "The type '{0}' has already been configured as an entity type. It cannot be reconfigured as a complex type." + + + + + InvalidOperationException with message like "The key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + InvalidOperationException with message like "The foreign key component '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid primitive property." + + + + + InvalidOperationException with message like "The property '{0}' is not a declared property on type '{1}'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property." + + + + + InvalidOperationException with message like "The navigation property '{0}' is not a declared property on type '{1}'. Verify that it has not been explicitly excluded from the model and that it is a valid navigation property." + + + + + InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'." + + + + + InvalidOperationException with message like "The expression '{0}' is not a valid property expression. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. Use dotted paths for nested properties: C#: 't => t.MyProperty.MyProperty' VB.Net: 'Function(t) t.MyProperty.MyProperty'." + + + + + InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + InvalidOperationException with message like "The properties expression '{0}' is not valid. The expression should represent a property: C#: 't => t.MyProperty' VB.Net: 'Function(t) t.MyProperty'. When specifying multiple properties use an anonymous type: C#: 't => new {{ t.MyProperty1, t.MyProperty2 }}' VB.Net: 'Function(t) New With {{ t.MyProperty1, t.MyProperty2 }}'." + + + + + + InvalidOperationException with message like "Conflicting configuration settings were specified for property '{0}' on type '{1}': {2}" + + + + + InvalidOperationException with message like "Conflicting configuration settings were specified for column '{0}' on table '{1}': {2}" + + + + + InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from ComplexObject." + + + + + InvalidOperationException with message like "The type '{0}' was not mapped. Check that the type has not been explicitly excluded by using the Ignore method or NotMappedAttribute data annotation. Verify that the type was defined as a class, is not primitive, nested or generic, and does not inherit from EntityObject." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' cannot be the inverse of itself." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting foreign keys." + + + + + MappingException with message like "Values of incompatible types ('{1}' and '{2}') were assigned to the '{0}' discriminator column. Values of the same type must be specified. To explicitly specify the type of the discriminator column use the HasColumnType method." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting mapping information." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting cascade delete operations using 'WillCascadeOnDelete'." + + + + + InvalidOperationException with message like "The navigation property '{0}' declared on type '{1}' has been configured with conflicting multiplicities." + + + + + InvalidOperationException with message like "The MaxLengthAttribute on property '{0}' on type '{1} is not valid. The Length value must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + InvalidOperationException with message like "The StringLengthAttribute on property '{0}' on type '{1}' is not valid. The maximum length must be greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + InvalidOperationException with message like "Unable to determine composite primary key ordering for type '{0}'. Use the ColumnAttribute or the HasKey method to specify an order for composite primary keys." + + + + + InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. Name must not be empty." + + + + + InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The foreign key name '{2}' was not found on the dependent type '{3}'. The Name value should be a comma separated list of foreign key property names." + + + + + InvalidOperationException with message like "The ForeignKeyAttribute on property '{0}' on type '{1}' is not valid. The navigation property '{2}' was not found on the dependent type '{1}'. The Name value should be a valid navigation property name." + + + + + InvalidOperationException with message like "Unable to determine a composite foreign key ordering for foreign key on type {0}. When using the ForeignKey data annotation on composite foreign key properties ensure order is specified by using the Column data annotation or the fluent API." + + + + + InvalidOperationException with message like "The InversePropertyAttribute on property '{2}' on type '{3}' is not valid. The property '{0}' is not a valid navigation property on the related type '{1}'. Ensure that the property exists and is a valid reference or collection navigation property." + + + + + InvalidOperationException with message like "A relationship cannot be established from property '{0}' on type '{1}' to property '{0}' on type '{1}'. Check the values in the InversePropertyAttribute to ensure relationship definitions are unique and reference from one navigation property to its corresponding inverse navigation property." + + + + + InvalidOperationException with message like "A key is registered for the derived type '{0}'. Keys can only be registered for the root type '{1}'." + + + + + InvalidOperationException with message like "The type '{0}' has already been mapped to table '{1}'. Specify all mapping aspects of a table in a single Map call." + + + + + InvalidOperationException with message like "Map was called more than once for type '{0}' and at least one of the calls didn't specify the target table name." + + + + + InvalidOperationException with message like "The derived type '{0}' has already been mapped using the chaining syntax. A derived type can only be mapped once using the chaining syntax." + + + + + InvalidOperationException with message like "An "is not null" condition cannot be specified on property '{0}' on type '{1}' because this property is not included in the model. Check that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation." + + + + + ArgumentException with message like "Values of type '{0}' cannot be used as type discriminator values. Supported types include byte, signed byte, bool, int16, int32, int64, and string." + + + + + InvalidOperationException with message like "Unable to add the convention '{0}'. Could not find an existing convention of type '{1}' in the current convention set." + + + + + InvalidOperationException with message like "Not all properties for type '{0}' have been mapped. Either map those properties or explicitly excluded them from the model." + + + + + NotSupportedException with message like "Unable to determine the provider name for connection of type '{0}'." + + + + + ArgumentException with message like "The qualified table name '{0}' contains an invalid schema name. Schema names must have a non-zero length." + + + + + ArgumentException with message like "The qualified table name '{0}' contains an invalid table name. Table names must have a non-zero length." + + + + + InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the MapInheritedProperties method is only used during one call to the Map method." + + + + + InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. Ensure the Properties method is used and that repeated calls specify each non-key property only once." + + + + + InvalidOperationException with message like "Properties for type '{0}' can only be mapped once. The non-key property '{1}' is mapped more than once. Ensure the Properties method specifies each non-key property only once." + + + + + InvalidOperationException with message like "The property '{1}' on type '{0}' cannot be mapped because it has been explicitly excluded from the model or it is of a type not supported by the DbModelBuilderVersion being used." + + + + + InvalidOperationException with message like "The entity types '{0}' and '{1}' cannot share table '{2}' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them." + + + + + InvalidOperationException with message like "You cannot use Ignore method on the property '{0}' on type '{1}' because this type inherits from the type '{2}' where this property is mapped. To exclude this property from your model, use NotMappedAttribute or Ignore method on the base type." + + + + + InvalidOperationException with message like "The property '{0}' cannot be used as a key property on the entity '{1}' because the property type is not a valid key type. Only scalar types, string and byte[] are supported key types." + + + + + InvalidOperationException with message like "The specified table '{0}' was not found in the model. Ensure that the table name has been correctly specified." + + + + + InvalidOperationException with message like "The specified association foreign key columns '{0}' are invalid. The number of columns specified must match the number of primary key columns." + + + + + InvalidOperationException with message like "A circular ComplexType hierarchy was detected. Self-referencing ComplexTypes are not supported." + + + + + InvalidOperationException with message like "Unable to determine the principal end of an association between the types '{0}' and '{1}'. The principal end of this association must be explicitly configured using either the relationship fluent API or data annotations." + + + + + InvalidOperationException with message like "The abstract type '{0}' has no mapped descendents and so cannot be mapped. Either remove '{0}' from the model or add one or more types deriving from '{0}' to the model. " + + + + + NotSupportedException with message like "The type '{0}' cannot be mapped as defined because it maps inherited properties from types that use entity splitting or another form of inheritance. Either choose a different inheritance mapping strategy so as to not map inherited properties, or change all types in the hierarchy to map inherited properties and to not use splitting. " + + + + + InvalidOperationException with message like "The table '{0}' was configured but is not used in any mappings. Verify the mapping configuration for '{0}' is correct." + + + + + InvalidOperationException with message like "The configured column orders for the table '{0}' contains duplicates. Ensure the specified column order values are distinct." + + + + + NotSupportedException with message like "The enum or spatial property '{1}' on type '{0}' cannot be mapped. Use DbModelBuilderVersion 'V5_0' or later to map enum or spatial properties." + + + + + InvalidOperationException with message like "Multiple potential primary key properties named '{0}' but differing only by case were found on entity type '{1}'. Configure the primary key explicitly using the HasKey fluent API or the KeyAttribute data annotation." + + + + + InvalidOperationException with message like "Cannot get value for property '{0}' from entity of type '{1}' because the property has no get accessor." + + + + + InvalidOperationException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor." + + + + + + NotSupportedException with message like "Cannot set value for property '{0}' on entity of type '{1}' because the property has no set accessor and is in the '{2}' state." + + + + + InvalidOperationException with message like "Member '{0}' cannot be called for property '{1}' on entity of type '{2}' because the property is not part of the Entity Data Model." + + + + + + ArgumentException with message like "Cannot call the {0} method for an entity of type '{1}' on a DbSet for entities of type '{2}'. Only entities of type '{2}' or derived from type '{2}' can be added, attached, or removed." + + + + + ArgumentException with message like "Cannot call the Create method for the type '{0}' on a DbSet for entities of type '{1}'. Only entities of type '{1}' or derived from type '{1}' can be created." + + + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is a collection navigation property. The Collection method should be used instead of the Reference method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is a reference navigation property. The Reference method should be used instead of the Collection method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a navigation property. The Reference and Collection methods can only be used with navigation properties. Use the Property or ComplexProperty method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive or complex property. The Property method can only be used with primitive or complex properties. Use the Reference or Collection method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a complex property. The ComplexProperty method can only be used with complex properties. Use the Property, Reference or Collection method." + + + + + ArgumentException with message like "The property '{0}' on type '{1}' is not a primitive property, complex property, collection navigation property, or reference navigation property." + + + + + ArgumentException with message like ""The property '{0}' from the property path '{1}' is not a complex property on type '{2}'. Property paths must be composed of complex properties for all except the final property."" + + + + + NotSupportedException with message like "Setting IsModified to false for a modified property is not supported." + + + + + ArgumentException with message like ""The property path '{0}' cannot be used for navigation properties. Property paths can only be used to access primitive or complex properties."" + + + + + ArgumentException with message like "The navigation property '{0}' on entity type '{1}' cannot be used for entities of type '{2}' because it refers to entities of type '{3}'." + + + + + ArgumentException with message like "The generic type argument '{0}' cannot be used with the Member method when accessing the collection navigation property '{1}' on entity type '{2}'. The generic type argument '{3}' must be used instead." + + + + + ArgumentException with message like "The property '{0}' on entity type '{1}' cannot be used for objects of type '{2}' because it is a property for objects of type '{3}'." + + + + + ArgumentException with message like "The expression passed to method {0} must represent a property defined on the type '{1}'." + + + + + InvalidOperationException with message like "{0} cannot be used for entities in the {1} state." + + + + + InvalidOperationException with message like "Cannot set non-nullable property '{0}' of type '{1}' to null on object of type '{2}'." + + + + + InvalidOperationException with message like "The property '{0}' in the entity of type '{1}' is null. Store values cannot be obtained for an entity with a null complex property." + + + + + InvalidOperationException with message like "Cannot assign value of type '{0}' to property '{1}' of type '{2}' in property values for type '{3}'." + + + + + NotSupportedException with message like "The set of property value names is read-only." + + + + + ArgumentException with message like "The '{0}' property does not exist or is not mapped for the type '{1}'." + + + + + ArgumentException with message like "Cannot copy values from DbPropertyValues for type '{0}' into DbPropertyValues for type '{1}'." + + + + + ArgumentException with message like "Cannot copy from property values for object of type '{0}' into property values for object of type '{1}'." + + + + + ArgumentException with message like "A property of a complex type must be set to an instance of the generic or non-generic DbPropertyValues class for that type." + + + + + InvalidOperationException with message like "The value of the complex property '{0}' on entity of type '{1}' is null. Complex properties cannot be set to null and values cannot be set for null complex properties." + + + + + InvalidOperationException with message like "The value of the nested property values property '{0}' on the values for entity of type '{1}' is null. Nested property values cannot be set to null and values cannot be set for null complex properties." + + + + + InvalidOperationException with message like "Cannot set the value of the nested property '{0}' because value of the complex property '{1}' to which it belongs is null." + + + + + InvalidOperationException with message like "Cannot set the original value of the nested property '{0}' because the original value of the complex property '{1}' to which it belongs is null." + + + + + InvalidOperationException with message like "The model backing the '{0}' context has changed since the database was created. Consider using Code First Migrations to update the database (http://go.microsoft.com/fwlink/?LinkId=238269)." + + + + + InvalidOperationException with message like "Database '{0}' cannot be created because it already exists." + + + + + NotSupportedException with message like "Model compatibility cannot be checked because the DbContext instance was not created using Code First patterns. DbContext instances created from an ObjectContext or using an EDMX file cannot be checked for compatibility." + + + + + NotSupportedException with message like "Model compatibility cannot be checked because the EdmMetadata type was not included in the model. Ensure that IncludeMetadataConvention has been added to the DbModelBuilder conventions." + + + + + NotSupportedException with message like "Model compatibility cannot be checked because the database does not contain model metadata. Model compatibility can only be checked for databases created using Code First or Code First Migrations." + + + + + + + InvalidOperationException with message like "Failed to set database initializer of type '{0}' for DbContext type '{1}' specified in the application configuration. See inner exception for details." + + + + + InvalidOperationException with message like "Configuration for DbContext type '{0}' is specified multiple times in the application configuration. Each context can only be configured once." + + + + + InvalidOperationException with message like "Failed to set Database.DefaultConnectionFactory to an instance of the '{0}' type as specified in the application configuration. See inner exception for details." + + + + + InvalidOperationException with message like "The type '{0}' could not be found. The type name must be an assembly-qualified name." + + + + + InvalidOperationException with message like "The context cannot be used while the model is being created." + + + + + InvalidOperationException with message like "The DbContext class cannot be used with models that have multiple entity sets per type (MEST)." + + + + + InvalidOperationException with message like "The operation cannot be completed because the DbContext has been disposed." + + + + + InvalidOperationException with message like "The provider factory returned a null connection." + + + + + InvalidOperationException with message like "The connection string '{0}' in the application's configuration file does not contain the required providerName attribute."" + + + + + InvalidOperationException with message like "The DbConnectionFactory instance returned a null connection." + + + + + ArgumentException with message like "The number of primary key values passed must match number of primary key values defined on the entity." + + + + + ArgumentException with message like "The type of one of the primary key values did not match the type defined in the entity. See inner exception for details." + + + + + InvalidOperationException with message like "The entity found was of type {0} when an entity of type {1} was requested." + + + + + InvalidOperationException with message like "Multiple entities were found in the Added state that match the given primary key values." + + + + + InvalidOperationException with message like "The type '{0}' is mapped as a complex type. The Set method, DbSet objects, and DbEntityEntry objects can only be used with entity types, not complex types." + + + + + InvalidOperationException with message like "The type '{0}' is not attributed with EdmEntityTypeAttribute but is contained in an assembly attributed with EdmSchemaAttribute. POCO entities that do not use EdmEntityTypeAttribute cannot be contained in the same assembly as non-POCO entities that use EdmEntityTypeAttribute." + + + + + InvalidOperationException with message like "The entity type {0} is not part of the model for the current context." + + + + + NotSupportedException with message like "Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery) is not supported. Instead populate a DbSet with data, for example by calling Load on the DbSet, and then bind to local data. For WPF bind to DbSet.Local. For WinForms bind to DbSet.Local.ToBindingList()." + + + + + ArgumentException with message like "The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties." + + + + + InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file." + + + + + InvalidOperationException with message like "Cannot initialize a DbContext from an entity connection string or an EntityConnection instance together with a DbCompiledModel. If an entity connection string or EntityConnection instance is used, then the model will be created from the metadata in the connection. If a DbCompiledModel is used, then the connection supplied should be a standard database connection (for example, a SqlConnection instance) rather than an entity connection." + + + + + NotSupportedException with message like "The collection navigation property '{0}' on the entity of type '{1}' cannot be set because the entity type does not define a navigation property with a set accessor." + + + + + NotSupportedException with message like "Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used." + + + + + InvalidOperationException with message like "Multiple object sets per type are not supported. The object sets '{0}' and '{1}' can both contain instances of type '{2}'." + + + + + InvalidOperationException with message like "The context type '{0}' must have a public constructor taking an EntityConnection." + + + + + NotSupportedException with message like "The database name '{0}' is not supported because it is an MDF file name. A full connection string must be provided to attach an MDF file." + + + + + DataException with message like "An exception occurred while initializing the database. See the InnerException for details." + + + + + NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing ObjectContext is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using an existing DbCompiledModel is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + NotSupportedException with message like "Creating a DbModelBuilder or writing the EDMX from a DbContext created using Database First or Model First is not supported. EDMX can only be obtained from a Code First DbContext created without using an existing DbCompiledModel." + + + + + InvalidOperationException with message like "The context factory type '{0}' must have a public default constructor." + + + + + InvalidOperationException with message like "The generic 'Set' method cannot be called with a proxy type. Either use the actual entity type or call the non-generic 'Set' method." + + + + + InvalidOperationException with message like "MaxLengthAttribute must have a Length value that is greater than zero. Use MaxLength() without parameters to indicate that the string or array can have the maximum allowable length." + + + + + InvalidOperationException with message like "MinLengthAttribute must have a Length value that is zero or greater." + + + + + InvalidOperationException with message like "No connection string named '{0}' could be found in the application config file." + + + + + InvalidOperationException with message like "The connection can not be overridden because this context was created from an existing ObjectContext." + + + + + InvalidOperationException with message like "Can not override the connection for this context with a standard DbConnection because the original connection was an EntityConnection." + + + + + InvalidOperationException with message like "Can not override the connection for this context with an EntityConnection because the original connection was a standard DbConnection." + + + + + The exception that is thrown when a null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument. + + + + + The exception that is thrown when the value of an argument is outside the allowable range of values as defined by the invoked method. + + + + + The exception that is thrown when the author has yet to implement the logic at this point in the program. This can act as an exception based TODO tag. + + + + + The exception that is thrown when an invoked method is not supported, or when there is an attempt to read, seek, or write to a stream that does not support the invoked functionality. + + + + + AutoGenerated resource class. Usage: + + string s = EntityRes.GetString(EntityRes.MyIdenfitier); + + + + + Allows the construction and modification of a user-specified annotation (name-value pair) on a instance. + + + + + Gets or sets an optional namespace that can be used to distinguish the annotation from others with the same value. + + + + + Gets or sets the name of the annotation. + + + + + Gets or sets the value of the annotation. + + + + + + + + + DataModelEventArgs is the base argument type for all events raised by consumers of Entity Data Model (EDM) models. + + + + + Gets a value indicating the that caused the event to be raised. + + + + + Gets an optional value indicating which property of the source item caused the event to be raised. + + + + + Gets a value that identifies the specific error that is being raised. + + + + + Gets an optional descriptive message the describes the error that is being raised. + + + + + DbAliasedMetadataItem provides the base type for all Database Metadata types that can have an optional that should be used instead of the item's when referring to the item in the database. + + + + + NamedDbItem is the base for all types in the Database Metadata construction and modification API with a property. + + + + + The base for all all Database Metadata types that support annotation using . + + + + + DbDataModelItem is the base for all types in the Database Metadata construction and modification API. + + + + + Gets or sets the currently assigned annotations. + + + + + Gets or sets the currently assigned name. + + + + + Gets an optional alternative identifier that should be used when referring to this item in the database. + + + + + When implemented in derived types, allows the construction and modification of a column in a Database Metadata table or row. + + + + + Gets or sets a string indicating the database-specific type of the column. + + + + + Gets or sets a value indicating whether the column is nullable. + + + + + Gets or sets an optional instance that applies additional constraints to the referenced database-specific type of the column. + + + + + Allows the construction and modification of a database in a Database Metadata model. + + + + + Gets or sets an optional value that indicates the database model version. + + + + + Gets or sets the collection of instances that specifies the schemas within the database. + + + + + Allows the construction and modification of a foreign key constraint sourced by a instance. + + + + + Gets or sets the to take when a delete operation is attempted. + + + + + Indicates which Database Metadata concept is represented by a given item. + + + + + Database Kind + + + + + Schema Kind + + + + + Foreign Key Constraint Kind + + + + + Function Kind + + + + + Function Parameter Kind + + + + + Function Return or Parameter Type Kind + + + + + Row Column Kind + + + + + Table Kind + + + + + Table Column Kind + + + + + Primitive Facets Kind + + + + + Specifies the action to take on a given operation. + + + + + Default behavior + + + + + Restrict the operation + + + + + Cascade the operation + + + + + Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in a Database Metadata item. + + + + + Returns true if any facet value property currently has a non-null value; otherwise returns false . + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode. + + + + + Gets or sets an optional value indicating the current constraint on the type's maximum length. + + + + + Gets or sets an optional value indicating the current constraint on the type's precision. + + + + + Gets or sets an optional value indicating the current constraint on the type's scale. + + + + + Gets or sets an optional value indicating the current spatial type's SRID. + + + + + Gets or sets an optional value indicating the current spatial type's SRID. + + + + + Gets or sets an optional value indicating whether the spatial type is to be type checked strictly. + + + + + Allows the construction and modification of a database schema in a database model. + + + + + Gets or sets the collection of instances that specifies the tables declared within the schema. + + + + + DbSchemaMetadataItem is the base for all types that can be contained in a schema. + + + + + Allows the construction and modification of a column in a table. + + + + + Gets or sets a value indicating whether the column is part of the table's primary key. + + + + + Gets or sets a value indicating if and how the value of the column is automatically generated. + + + + + Gets or sets an optional value indicating the collation specific to this table column. + + + + + Gets or sets an optional value that specifies the default value for the column. + + + + + Allows the construction and modification a table in a database schema. + + + + + Gets or sets the collection of instances that specifies the columns present within the table. + + + + + Gets or sets the collection of instances from the collection of the table that are part of the primary key. + + + + + Gets or sets the collection of instances that defines the foreign key constraints sourced from the table. + + + + + Represents a specific use of a type in a Database Metadata item. + + + + + Gets or sets an optional instance that applies additional constraints to a referenced primitive type. + + + Accessing this property forces the creation of a DbPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value. + + + + + Gets or sets a value indicating whether the represented type is a collection type. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered nullable. + + + + + Gets a value indicating whether the type has been configured as a row type by the addition of one or more RowColumns. + + + + + Represents the mapping of an EDM association end ( ) as a collection of property mappings ( ). + + + + + DbMappingMetadataItem is the base for all types in the EDM-to-Database Mapping construction and modification API that support annotation using . + + + + + DbMappingModelItem is the base for all types in the EDM-to-Database Mapping construction and modification API. + + + + + Gets or sets the currently assigned annotations. + + + + + Gets an value representing the association end that is being mapped. + + + + + Gets the collection of s that specifies how the association end key properties are mapped to the table. + + + + + Gets an value representing the association set that is being mapped. + + + + + Gets a value representing the table to which the entity type's properties are being mapped. + + + + + Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping to apply. + + + + + Allows the construction and modification of a condition for a column in a database table. + + + + + Gets or sets a value representing the table column which must contain for this condition to hold. + + + + + Gets or sets the value that must contain for this condition to hold. + + + + + Gets or sets an value representing the model that is being mapped. + + + + + Gets or sets a value representing the database that is the target of the mapping. + + + + + Gets or sets the collection of s that specifies how the model's entity containers are mapped to the database. + + + + + Represents the mapping of an entity property to a column in a database table. + + + + + Gets or sets the collection of instances that defines the mapped property, beginning from a property declared by the mapped entity type and optionally proceeding through properties of complex property result types. + + + + + Gets or sets a value representing the table column to which the entity property is being mapped. + + + + + Allows the construction and modification of the mapping of an EDM entity container ( ) to a database ( ). + + + + + Gets or sets an value representing the entity container that is being mapped. + + + + + Gets or sets the collection of s that specifies how the container's entity sets are mapped to the database. + + + + + Gets the collection of s that specifies how the container's association sets are mapped to the database. + + + + + Allows the construction and modification of the mapping of an EDM entity set ( ) to a database ( ). + + + + + Gets or sets an value representing the entity set that is being mapped. + + + + + Gets or sets the collection of s that specifies how the set's entity types are mapped to the database. + + + + + Allows the construction and modification of a complete or partial mapping of an EDM entity type ( ) or type hierarchy to a specific database table ( ). + + + + + Gets or sets an value representing the entity type or hierarchy that is being mapped. + + + + + Gets or sets a value indicating whether this type mapping applies to and all its direct or indirect subtypes ( true ), or only to ( false ). + + + + + Gets a value representing the table to which the entity type's properties are being mapped. + + + + + Gets the collection of s that specifies how the type's properties are mapped to the table. + + + + + Gets the collection of s that specifies the constant or null values that columns in must have for this type mapping fragment to apply. + + + + + Indicates which EDM-to-Database Mapping concept is represented by a given item. + + + + + Database Mapping Kind + + + + + Entity Container Mapping Kind + + + + + Entity Set Mapping Kind + + + + + Association Set Mapping Kind + + + + + Entity Type Mapping Kind + + + + + Query View Mapping Kind + + + + + Entity Type Mapping Fragment Kind + + + + + Edm Property Mapping Kind + + + + + Association End Mapping Kind + + + + + Column Condition Kind + + + + + Property Condition Kind + + + + + Allows the construction and modification of a constraint applied to an Entity Data Model (EDM) association. + + + + + Gets or sets the that represents the 'dependent' end of the constraint; properties from this association end's entity type contribute to the collection. + + + + + Gets or sets the collection of instances from the of the constraint. The values of these properties are constrained against the primary key values of the remaining, 'principal' association end's entity type. + + + + + Allows the construction and modification of one end of an Entity Data Model (EDM) association. + + + + + Gets or sets the entity type referenced by this association end. + + + + + Gets or sets the of this association end, which indicates the multiplicity of the end and whether or not it is required. + + + + + Gets or sets the to take when a delete operation is attempted. + + + + + Indicates the multiplicity of an and whether or not it is required. + + + + + Allows the construction and modification of an association set in an Entity Data Model (EDM) ). + + + + + Represents an item in an Entity Data Model (EDM) . + + + + + Gets or sets the that specifies the association type for the set. + + + + + Gets or sets the that specifies the entity set corresponding to the association end for this association set. + + + + + Gets or sets the that specifies the entity set corresponding to the association end for this association set. + + + + + + The base for all all Entity Data Model (EDM) types that represent a structured type from the EDM type system. + + + + + Gets or sets the that defines the source end of the association. + + + + + Gets or sets the that defines the target end of the association. + + + + + Gets or sets the optional constraint that indicates whether the relationship is an independent association (no constraint present) or a foreign key relationship ( specified). + + + + + Collection semantics for properties. + + + + + The property does not have a collection type or does not specify explicit collection semantics. + + + + + The property is an unordered collection that may contain duplicates. + + + + + The property is an ordered collection that may contain duplicates. + + + + + Allows the construction and modification of a complex type in an Entity Data Model (EDM) . + + + + + Gets or sets the optional that indicates the base complex type of the complex type. + + + + + Gets or sets a value indicating whether the complex type is abstract. + + + + + Gets or sets the collection of instances that describe the (scalar or complex) properties of the complex type. + + + + + Concurrency mode for properties. + + + + + Default concurrency mode: the property is never validated at write time + + + + + Fixed concurrency mode: the property is always validated at write time + + + + + Allows the construction and modification of an entity container in an Entity Data Model (EDM) . + + + + + Gets all s declared within the namspace. Includes s and s. + + + + + Gets or sets the collection of s that specifies the association sets within the container. + + + + + Gets or sets the collection of s that specifies the entity sets within the container. + + + + + Allows the construction and modification of an entity set in an Entity Data Model (EDM) . + + + + + Gets or sets the that specifies the entity type for the set. + + + + + Allows the construction and modification of an entity type in an Entity Data Model (EDM) . + + + + + Gets or sets the optional that indicates the base entity type of the entity type. + + + + + Gets or sets a value indicating whether the entity type is abstract. + + + + + Gets or sets the collection of s that specifies the properties declared by the entity type. + + + + + Gets or sets the collection of s that indicates which properties from the collection are part of the entity key. + + + + + Gets or sets the optional collection of s that specifies the navigation properties declared by the entity type. + + + + + Indicates which Entity Data Model (EDM) concept is represented by a given item. + + + + + Association End Kind + + + + + Association Set Kind + + + + + Association Type Kind + + + + + Collection Type Kind + + + + + Complex Type Kind + + + + + Entity Container Kind + + + + + Entity Set Kind + + + + + Entity Type Kind + + + + + Function Group Kind + + + + + Function Overload Kind + + + + + Function Import Kind + + + + + Function Parameter Kind + + + + + Navigation Property Kind + + + + + EdmProperty Type Kind + + + + + Association Constraint Type Kind + + + + + Ref Type Kind + + + + + Row Column Kind + + + + + Row Type Kind + + + + + Type Reference Kind + + + + + Model Kind + + + + + Namespace Kind + + + + + Primitive Facets Kind + + + + + Primitive Type Kind + + + + + Enum Type Kind + + + + + Enum Type Member Kind + + + + + EdmModel is the top-level container for namespaces and entity containers belonging to the same logical Entity Data Model (EDM) model. + + + + + Gets or sets an optional value that indicates the entity model version. + + + + + Gets or sets the containers declared within the model. + + + + + Gets or sets the namespaces declared within the model. + + + + + Allows the construction and modification of a namespace in an . + + + + + Gets all s declared within the namspace. Includes s, s, s. + + + + + Gets or sets the s declared within the namespace. + + + + + Gets or sets the s declared within the namespace. + + + + + Gets or sets the s declared within the namespace. + + + + + Allows the construction and modification of an Entity Data Model (EDM) navigation property. + + + + + Gets or sets the that specifies the association over which navigation takes place. + + + + + Gets or sets the that specifies which association end is the 'destination' end of the navigation and produces the navigation property result. + + + + + Specifies the action to take on a given operation. + + + + + Default behavior + + + + + Restrict the operation + + + + + Cascade the operation + + + + + Represents one of the fixed set of Entity Data Model (EDM) primitive types. + + + + + The base for all all Entity Data Model (EDM) types that represent a scalar type from the EDM type system. + + + + + Retrieves the EdmPrimitiveType instance with the corresponding to the specified value, if any. + + The name of the primitive type instance to retrieve + The EdmPrimitiveType with the specified name, if successful; otherwise null . + true if the given name corresponds to an EDM primitive type name; otherwise false . + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets the EdmPrimitiveType instance that represents the primitive type. + + + + + Gets an value that indicates which Entity Data Model (EDM) primitive type this type represents. + + + + + Allows the construction and modification of additional constraints that can be applied to a specific use of a primitive type in an Entity Data Model (EDM) item. See . + + + + + Returns true if any facet value property currently has a non-null value; otherwise returns false . + + + + + Gets or sets an optional value indicating the current constraint on the type's maximum length. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have its intrinsic maximum length, rather than a specific value. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to have a fixed or variable length. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered to be Unicode or non-Unicode. + + + + + Gets or sets an optional value indicating the current constraint on the type's precision. + + + + + Gets or sets an optional value indicating the current constraint on the type's scale. + + + + + Gets or sets an optional value indicating that the current spatial type's SRID is unconstrained. + + + + + Gets or sets an optional value indicating the current spatial type's SRID. + + + + + Gets or sets an optional value indicating whether the spatial type is to be type checked strictly. + + + + + Primitive Types as defined by the Entity Data Model (EDM). + + + + + Binary Type Kind + + + + + Boolean Type Kind + + + + + Byte Type Kind + + + + + DateTime Type Kind + + + + + Decimal Type Kind + + + + + Double Type Kind + + + + + Guid Type Kind + + + + + Single Type Kind + + + + + SByte Type Kind + + + + + Int16 Type Kind + + + + + Int32 Type Kind + + + + + Int64 Type Kind + + + + + String Type Kind + + + + + Time Type Kind + + + + + DateTimeOffset Type Kind + + + + + Geometry Type Kind + + + + + Geography Type Kind + + + + + Geometric point type kind + + + + + Geometric linestring type kind + + + + + Geometric polygon type kind + + + + + Geometric multi-point type kind + + + + + Geometric multi-linestring type kind + + + + + Geometric multi-polygon type kind + + + + + Geometric collection type kind + + + + + Geographic point type kind + + + + + Geographic linestring type kind + + + + + Geographic polygon type kind + + + + + Geographic multi-point type kind + + + + + Geographic multi-linestring type kind + + + + + Geographic multi-polygon type kind + + + + + Geographic collection type kind + + + + + Allows the construction and modification of a primitive- or complex-valued property of an Entity Data Model (EDM) entity or complex type. + + + + + Gets or sets an value that indicates which collection semantics - if any - apply to the property. + + + + + Gets or sets a value that indicates whether the property is used for concurrency validation. + + + + + Gets or sets on optional value that indicates an initial default value for the property. + + + + + Gets or sets an that specifies the result type of the property. + + + + + Enumerates all s declared or inherited by an . + + + + + Allows the construction and modification of a specific use of a type in an Entity Data Model (EDM) item. See for examples. + + + + + Gets or sets a value indicating the collection rank of the type reference. A collection rank greater than zero indicates that the type reference represents a collection of its referenced . + + + + + Gets or sets a value indicating the referenced by this type reference. + + + + + Gets or sets an optional value indicating whether the referenced type should be considered nullable. + + + + + Gets or sets an optional instance that applies additional constraints to a referenced primitive type. + + + Accessing this property forces the creation of an EdmPrimitiveTypeFacets value if no value has previously been set. Use to determine whether or not this property currently has a value. + + + + + Gets a value indicating whether the property of this type reference has been assigned an value with at least one facet value specified. + + + + + Indicates whether this type reference represents a collection of its referenced (when is greater than zero) or not. + + + + + Indicates whether the property of this type reference currently refers to an , is not a collection type, and does not have primitive facet values specified. + + + + + Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a complex type. + + + + + Indicates whether the property of this type reference currently refers to an and is not a collection type. + + + + + Gets the currently referred to by this type reference, or null if the type reference is a collection type or does not refer to a primitive type. + + + + + Contains constant values that apply to the EDM model, regardless of source (for CSDL specific constants see ). + + + + + Parsing code taken from System.dll's System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string) method to avoid LinkDemand needed to call this method + + + + + + + + + + + Constants for CSDL XML. + + + + + Constants for C-S MSL XML. + + + + + Constants for SSDL XML. + + + + + The acceptable range for this enum is 0000 - 0999; the range 10,000-15,000 is reserved for tools. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Precision out of range + + + + + Scale out of range + + + + + + + + + + + + + One of the required facets is missing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The facet isn't allow by the property type. + + + + + This facet value is constant and is specified in the schema + + + + + + + + + + + + + Multiplicity value was malformed + + + + + The value for the Action attribute is invalid or not allowed in the current context + + + + + An error occurred processing the On<Operation> elements + + + + + Ends were given for the Property element of a EntityContainer that is not a RelationshipSet + + + + + The extent name used in the EntittyContainerType End does not match the name of any of the EntityContainerProperties in the containing EntityContainer + + + + + An end element was not given, and cannot be inferred because too many EntityContainerEntitySet elements that are good possibilities. + + + + + An end element was not given, and cannot be inferred because there is no EntityContainerEntitySets that are the correct type to be used as an EntitySet. + + + + + Not a valid parameter direction for the parameter in a function + + + + + Unable to infer an optional schema part, to resolve this; be more explicit + + + + + Invalid facet attribute(s) specified in provider manifest + + + + + Invalid role value in the relationship constraint + + + + + Invalid Property in relationship constraint + + + + + Type mismatch between ToProperty and FromProperty in the relationship constraint + + + + + Invalid multiplicity in FromRole in the relationship constraint + + + + + The number of properties in the FromProperty and ToProperty in the relationship constraint must be identical + + + + + No Properties defined in either FromProperty or ToProperty in the relationship constraint + + + + + Missing constraint in relationship type in ssdl + + + + + Same role referred in the ToRole and FromRole of a referential constraint + + + + + Invalid value for attribute ParameterTypeSemantics + + + + + Invalid type used for a Relationship End Type + + + + + Invalid PrimitiveTypeKind + + + + + Invalid TypeConversion DestinationType + + + + + Expected a integer value between 0 - 255 + + + + + Invalid Type specified in function + + + + + Precision must not be greater than 28 + + + + + Properties that are part of entity key must be of scalar type + + + + + Binary type properties which are part of entity key are currently not supported + + + + + The primitive type kind does not have a preferred mapping + + + + + More than one PreferredMapping for a PrimitiveTypeKind + + + + + End with * multiplicity cannot have operations specified + + + + + EntitySet type has no keys + + + + + InvalidNumberOfParametersForAggregateFunction + + + + + InvalidParameterTypeForAggregateFunction + + + + + Composable functions must declare a return type. + + + + + Non-composable functions must not declare a return type. + + + + + Non-composable functions do not permit the aggregate; niladic; or built-in attributes. + + + + + Composable functions can not include command text attribute. + + + + + Functions should not declare both a store name and command text (only one or the other can be used). + + + + + SystemNamespace + + + + + Empty DefiningQuery text + + + + + Schema, Table and DefiningQuery are all specified, and are mutually exclusive + + + + + ConcurrencyMode value was malformed + + + + + Concurrency can't change for any sub types of an EntitySet type. + + + + + Function import return type must be either empty, a collection of entities, or a singleton scalar. + + + + + Function import specifies a non-existent entity set. + + + + + Function import specifies entity type return but no entity set. + + + + + Function import specifies entity type that does not derive from element type of entity set. + + + + + Function import specifies a binding to an entity set but does not return entities. + + + + + InternalError + + + + + Same Entity Set Taking part in the same role of the relationship set in two different relationship sets + + + + + Entity key refers to the same property twice + + + + + Function declares a ReturnType attribute and element + + + + + Nullable Complex Type not supported in Edm V1 + + + + + Only Complex Collections supported in Edm V1.1 + + + + + No Key defined on Entity Type + + + + + Invalid namespace specified in using element + + + + + Need not specify system namespace in using + + + + + Cannot use a reserved/system namespace as alias + + + + + Invalid qualification specified for type + + + + + Invalid Entity Container Name in extends attribute + + + + + Invalid CollectionKind value in property CollectionKind attribute + + + + + Must specify namespace or alias of the schema in which this type is defined + + + + + Entity Container cannot extend itself + + + + + Failed to retrieve provider manifest + + + + + Mismatched Provider Manifest token values in SSDL artifacts + + + + + Missing Provider Manifest token value in SSDL artifact(s) + + + + + Empty CommandText element + + + + + Inconsistent Provider values in SSDL artifacts + + + + + Inconsistent Provider Manifest token values in SSDL artifacts + + + + + Duplicated Function overloads + + + + + InvalidProvider + + + + + FunctionWithNonEdmTypeNotSupported + + + + + ComplexTypeAsReturnTypeAndDefinedEntitySet + + + + + ComplexTypeAsReturnTypeAndDefinedEntitySet + + + + unused 179, + unused 180, + unused 181, + + In model functions facet attribute is allowed only on ScalarTypes + + + + + Captures several conditions where facets are placed on element where it should not exist. + + + + + Return type has not been declared + + + + + Invalid value in the EnumTypeOption + + + + + The structural annotation cannot use codegen namespaces + + + + + Function and type cannot have the same fully qualified name + + + + + Cannot load different version of schema in the same ItemCollection + + + + + Expected bool value + + + + + End without Multiplicity specified + + + + + In SSDL, if composable function returns a collection of rows (TVF), all row properties must be of scalar types. + + + + + The name of NamedEdmItem must not be empty or white space only + + + + + EdmTypeReference is empty + + Unused 199; + + + + Serializes an that conforms to the restrictions of a single CSDL schema file to an XML writer. The model to be serialized must contain a single and a single . + + + + + Serialize the to the XmlWriter. + + The EdmModel to serialize, mut have only one and one + The XmlWriter to serialize to + + + + Serialize the to the XmlWriter + + The DbModel to serialize + The XmlWriter to serialize to + + + + Serialize the to the + + The DbDatabaseMetadata to serialize + Provider information on the Schema element + ProviderManifestToken information on the Schema element + The XmlWriter to serialize to + + + + + author/email + + + + + author/name + + + + + author/uri + + + + + published + + + + + rights + + + + + summary + + + + + title + + + + + contributor/email + + + + + contributor/name + + + + + contributor/uri + + + + + category/@label + + + + + Plaintext + + + + + HTML + + + + + XHTML + + + + + updated + + + + + link/@href + + + + + link/@rel + + + + + link/@type + + + + + link/@hreflang + + + + + link/@title + + + + + link/@length + + + + + category/@term + + + + + category/@scheme + + + + + Return role name pair + + + + + + + + The context for DataModel Validation + + + + + Returns true if the given two ends are similar - the relationship type that this ends belongs to is the same and the entity set refered by the ends are same and they are from the same role + + + + + + + + Return true if the Referential Constraint on the association is ready for further validation, otherwise return false. + + + + + + + Resolves the given property names to the property in the item Also checks whether the properties form the key for the given type and whether all the properties are nullable or not + + + + + + + + + + + Return true if the namespaceName is a Edm System Namespace + + + + + + + Return true if the entityType is a subtype of any entity type in the dictionary keys, and return the corresponding entry EntitySet value. Otherwise return false. + + + + + + + + + Return true if any of the properties in the EdmEntityType defines ConcurrencyMode. Otherwise return false. + + + + + + + Add member name to the Hash set, raise an error if the name exists already. + + + + + + + + + If the string is null, empty, or only whitespace, return false, otherwise return true + + + + + + + Determine if a cycle exists in the type hierarchy: use two pointers to walk the chain, if one catches up with the other, we have a cycle. + + true if a cycle exists in the type hierarchy, false otherwise + + + + RuleSet for DataModel Validation + + + + + Get the related rules given certain DataModelItem + + The to validate + A collection of + + + + Data Model Validator + + + + + Validate the and all of its properties given certain version. + + The root of the model to be validated + True to validate the syntax, otherwise false + + + + The RuleSet for EdmModel + + + + + Get based on version + + a double value of version + + + + + The context for EdmModel Validation + + + + + Visitor for EdmModel Validation + + + + + Edm Model Validator + + + + + validate the from the root with the context + + The root to validate from + The validation context + + + + An implementation of IDatabaseInitializer that will recreate and optionally re-seed the + database only if the database does not exist. + To seed the database, create a derived class and override the Seed method. + + The type of the context. + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + A that should be overridden to actually add data to the context for seeding. + The default implementation does nothing. + + The context to seed. + + + + An instances of this class is obtained from an object and can be used + to manage the actual database backing a DbContext or connection. + This includes creating, deleting, and checking for the existence of a database. + Note that deletion and checking for existence of a database can be performed using just a + connection (i.e. without a full context) by using the static methods of this class. + + + + + Creates a Database backed by the given context. This object can be used to create a database, + check for database existence, and delete a database. + + The context that defines the database connection and model. + + + + Gets or sets the database initialization strategy. The database initialization strategy is called when instance + is initialized from a . The strategy can optionally check for database existence, create a new database, and + seed the database with data. + The default strategy is an instance of . + + The type of the context. + The strategy. + The database creation strategy. + + + + Internal version of SetInitializer that allows the strategy to be locked such that it cannot be replaced + by another call to SetInitializer. This allows strategies set in the app.config to win over strategies set + in code. + + The type of the context. + The strategy. + if set to true then the strategy is locked. + + + + Runs the the registered on this context. + + If "force" is set to true, then the initializer is run regardless of whether or not it + has been run before. This can be useful if a database is deleted while an app is running + and needs to be reinitialized. + + If "force" is set to false, then the initializer is only run if it has not already been + run for this context, model, and connection in this app domain. This method is typically + used when it is necessary to ensure that the database has been created and seeded + before starting some operation where doing so lazily will cause issues, such as when the + operation is part of a transaction. + + if set to true the initializer is run even if it has already been run. + + + + Checks whether or not the database is compatible with the the current Code First model. + + + Model compatibility currently uses the following rules. + + If the context was created using either the Model First or Database First approach then the + model is assumed to be compatible with the database and this method returns true. + + For Code First the model is considered compatible if the model is stored in the database + in the Migrations history table and that model has no differences from the current model as + determined by Migrations model differ. + + If the model is not stored in the database but an EF 4.1/4.2 model hash is found instead, + then this is used to check for compatibility. + + + If set to true then an exception will be thrown if no model metadata is found in + the database. If set to false then this method will return true if metadata + is not found. + + True if the model hash in the context and the database match; false otherwise. + + + + + Creates a new database on the database server for the model defined in the backing context. + Note that calling this method before the database initialization strategy has run will disable + executing that strategy. + + + + + Creates a new database on the database server for the model defined in the backing context, but only + if a database with the same name does not already exist on the server. + + True if the database did not exist and was created; false otherwise. + + + + Checks whether or not the database exists on the server. + + True if the database exists; false otherwise. + + + + Deletes the database on the database server if it exists, otherwise does nothing. + Calling this method from outside of an initializer will mark the database as having + not been initialized. This means that if an attempt is made to use the database again + after it has been deleted, then any initializer set will run again and, usually, will + try to create the database again automatically. + + True if the database did exist and was deleted; false otherwise. + + + + Checks whether or not the database exists on the server. + The connection to the database is created using the given database name or connection string + in the same way as is described in the documentation for the class. + + The database name or a connection string to the database. + True if the database exists; false otherwise. + + + + Deletes the database on the database server if it exists, otherwise does nothing. + The connection to the database is created using the given database name or connection string + in the same way as is described in the documentation for the class. + + The database name or a connection string to the database. + True if the database did exist and was deleted; false otherwise. + + + + Checks whether or not the database exists on the server. + + An existing connection to the database. + True if the database exists; false otherwise. + + + + Deletes the database on the database server if it exists, otherwise does nothing. + + An existing connection to the database. + True if the database did exist and was deleted; false otherwise. + + + + Resets the DefaultConnectionFactory to its initial value. + Currently, this method is only used by test code. + + + + + Performs the operation defined by the given delegate using the given lazy connection, ensuring + that the lazy connection is disposed after use. + + Information used to create a DbConnection. + The operation to perform. + The return value of the operation. + + + + Performs the operation defined by the given delegate against a connection. The connection + is either the connection accessed from the context backing this object, or is obtained from + the connection information passed to one of the static methods. + + The connection to use. + The operation to perform. + The return value of the operation. + + + + Returns an empty ObjectContext that can be used to perform delete/exists operations. + + The connection for which to create an ObjectContext + The empty context. + + + + Creates a raw SQL query that will return elements of the given generic type. + The type can be any type that has properties that match the names of the columns returned + from the query, or can be a simple primitive type. The type does not have to be an + entity type. The results of this query are never tracked by the context even if the + type of object returned is an entity type. Use the + method to return entities that are tracked by the context. + + The type of object returned by the query. + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Creates a raw SQL query that will return elements of the given type. + The type can be any type that has properties that match the names of the columns returned + from the query, or can be a simple primitive type. The type does not have to be an + entity type. The results of this query are never tracked by the context even if the + type of object returned is an entity type. Use the + method to return entities that are tracked by the context. + + The type of object returned by the query. + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Executes the given DDL/DML command against the database. + + The command string. + The parameters to apply to the command string. + The result returned by the database after executing the command. + + + + Returns the connection being used by this context. This may cause the + connection to be created if it does not already exist. + + Thrown if the context has been disposed. + + + + Returns the as a delegate that can be called with + an instance of the that owns this Database object, or returns null if + there is no initializer set for this context type. + + The initializer delegate or null. + + + + The connection factory to use when creating a from just + a database name or a connection string. + + + This is used when just a database name or connection string is given to or when + the no database name or connection is given to DbContext in which case the name of + the context class is passed to this factory in order to generate a DbConnection. + By default, the instance to use is read from the applications .config + file from the "EntityFramework DefaultConnectionFactory" entry in appSettings. If no entry is found in + the config file then is used. Setting this property in code + always overrides whatever value is found in the config file. + + + + + Checks wether or not the DefaultConnectionFactory has been set to something other than its default value. + + + + + + + Common code for generic and non-generic string Include. + + + + + + Returns a new query where the entities returned will not be cached in the + or . This method works by calling the AsNoTracking method of the + underlying query object. If the underlying query object does not have a AsNoTracking method, + then calling this method will have no affect. + + The element type. + The source query. + A new query with NoTracking applied, or the source query if NoTracking is not supported. + + + + Returns a new query where the entities returned will not be cached in the + or . This method works by calling the AsNoTracking method of the + underlying query object. If the underlying query object does not have a AsNoTracking method, + then calling this method will have no affect. + + The source query. + A new query with NoTracking applied, or the source query if NoTracking is not supported. + + + + Common code for generic and non-generic AsNoTracking. + + + + + Enumerates the query such that for server queries such as those of , , + , and others the results of the query will be loaded into the associated , + or other cache on the client. + This is equivalent to calling ToList and then throwing away the list without the overhead of actually creating the list. + + The source query. + + + + Returns an implementation that stays in sync with the given . + + The element type. + The collection that the binding list will stay in sync with. + The binding list. + + + + DbModelBuilder is used to map CLR classes to a database schema. + This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'. + + + DbModelBuilder is typically used to configure a model by overriding . + You can also use DbModelBuilder independently of DbContext to build a model and then construct a + or . + The recommended approach, however, is to use OnModelCreating in as + the workflow is more intuitive and takes care of common tasks, such as caching the created model. + + Types that form your model are registered with DbModelBuilder and optional configuration can be + performed by applying data annotations to your classes and/or using the fluent style DbModelBuilder + API. + + When the Build method is called a set of conventions are run to discover the initial model. + These conventions will automatically discover aspects of the model, such as primary keys, and + will also process any data annotations that were specified on your classes. Finally + any configuration that was performed using the DbModelBuilder API is applied. + + Configuration done via the DbModelBuilder API takes precedence over data annotations which + in turn take precedence over the default conventions. + + + + + Initializes a new instance of the class. + + The process of discovering the initial model will use the set of conventions included + in the most recent version of the Entity Framework installed on your machine. + + + Upgrading to newer versions of the Entity Framework may cause breaking changes + in your application because new conventions may cause the initial model to be + configured differently. There is an alternate constructor that allows a specific + version of conventions to be specified. + + + + + Initializes a new instance of the class that will use + a specific set of conventions to discover the initial model. + + The version of conventions to be used. + + + + Excludes a type from the model. This is used to remove types from the model that were added + by convention during initial model discovery. + + The type to be excluded. + The same DbModelBuilder instance so that multiple calls can be chained. + + + + Excludes a type(s) from the model. This is used to remove types from the model that were added + by convention during initial model discovery. + + The types to be excluded from the model. + The same DbModelBuilder instance so that multiple calls can be chained. + + + + Registers an entity type as part of the model and returns an object that can be used to + configure the entity. This method can be called multiple times for the same entity to + perform multiple lines of configuration. + + The type to be registered or configured. + The configuration object for the specified entity type. + + + + Registers a type as an entity in the model and returns an object that can be used to + configure the entity. This method can be called multiple times for the same type to + perform multiple lines of configuration. + + The type to be registered or configured. + The configuration object for the specified entity type. + + + + Registers a type as a complex type in the model and returns an object that can be used to + configure the complex type. This method can be called multiple times for the same type to + perform multiple lines of configuration. + + The type to be registered or configured. + The configuration object for the specified complex type. + + + + Creates a based on the configuration performed using this builder. + The connection is used to determine the database provider being used as this + affects the database layer of the generated model. + + Connection to use to determine provider information. + The model that was built. + + + + Creates a based on the configuration performed using this builder. + Provider information must be specified because this affects the database layer of the generated model. + For SqlClient the invariant name is 'System.Data.SqlClient' and the manifest token is the version year (i.e. '2005', '2008' etc.) + + The database provider that the model will be used with. + The model that was built. + + + + Provides access to the settings of this DbModelBuilder that deal with conventions. + + + + + Gets the for this DbModelBuilder. + The registrar allows derived entity and complex type configurations to be registered with this builder. + + + + + A value from this enumeration can be provided directly to the + class or can be used in the applied to + a class derived from . The value used defines which version of + the DbContext and DbModelBuilder conventions should be used when building a model from + code--also know as "Code First". + + + Using DbModelBuilderVersion.Latest ensures that all the latest functionality is available + when upgrading to a new release of the Entity Framework. However, it may result in an + application behaving differently with the new release than it did with a previous release. + This can be avoided by using a specific version of the conventions, but if a version + other than the latest is set then not all the latest functionality will be available. + + + + + Indicates that the latest version of the and + conventions should be used. + + + + + Indicates that the version of the and + conventions shipped with Entity Framework 4.1 + through 4.3 should be used. + + + + + Indicates that the version of the and + conventions shipped with Entity Framework 5.0 + when targeting .NET 4 should be used. + + + + + Indicates that the version of the and + conventions shipped with Entity Framework 5.0 + when targeting .NET 4.5 should be used. + + + + + This attribute can be applied to a class derived from to set which + version of the DbContext and conventions should be used when building + a model from code--also know as "Code First". See the + enumeration for details about DbModelBuilder versions. + + + If the attribute is missing from DbContextthen DbContext will always use the latest + version of the conventions. This is equivalent to using DbModelBuilderVersion.Latest. + + + + + Initializes a new instance of the class. + + The conventions version to use. + + + + Gets the conventions version. + + The conventions version. + + + + A non-generic version of which can be used when the type of entity + is not known at build time. + + + + + Represents a non-generic LINQ to Entities query against a DbContext. + + + + + An internal interface implemented by and that allows access to + the internal query without using reflection. + + + + + The underlying internal set. + + + + + Internal constructor prevents external classes deriving from DbQuery. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + Instead populate a DbSet with data, for example by using the Load extension method, and + then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to + DbSet.Local.ToBindingList(). + + + Never returns; always throws. + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Returns the equivalent generic object. + + The type of element for which the query was created. + The generic set object. + + + + Returns a representation of the underlying query. + + + The query string. + + + + + Returns false. + + false. + + + + The IQueryable element type. + + + + + The IQueryable LINQ Expression. + + + + + The IQueryable provider. + + + + + Gets the underlying internal query object. + + The internal query. + + + + The internal query object that is backing this DbQuery + + + + + An internal interface implemented by and that allows access to + the internal set without using reflection. + + + + + The underlying internal set. + + + + + Internal constructor prevents external classes deriving from DbSet. + + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + Thrown if multiple entities exist in the context with the primary key values given. + Thrown if the type of entity is not part of the data model for this context. + Thrown if the types of the key values do not match the types of the key values for the entity type to be found. + Thrown if the context has been disposed. + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + The entity to attach. + The entity. + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + The entity to add. + The entity. + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + The entity to remove. + The entity. + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Returns the equivalent generic object. + + The type of entity for which the set was created. + The generic set object. + + + + Creates a raw SQL query that will return entities in this set. By default, the + entities returned are tracked by the context; this can be changed by calling + AsNoTracking on the returned. + Note that the entities returned are always of the type for this set and never of + a derived type. If the table or tables queried may contain data for other entity + types, then the SQL query must be written appropriately to ensure that only entities of + the correct type are returned. + + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Gets an that represents a local view of all Added, Unchanged, + and Modified entities in this set. This local view will stay in sync as entities are added or + removed from the context. Likewise, entities added to or removed from the local view will automatically + be added to or removed from the context. + + + This property can be used for data binding by populating the set with data, for example by using the Load + extension method, and then binding to the local data through this property. For WPF bind to this property + directly. For Windows Forms bind to the result of calling ToBindingList on this property + + The local view. + + + + The internal IQueryable that is backing this DbQuery + + + + + Gets the underlying internal set. + + The internal set. + + + + A DbSet represents the collection of all entities in the context, or that can be queried from the + database, of a given type. DbSet objects are created from a DbContext using the DbContext.Set method. + + + Note that DbSet does not support MEST (Multiple Entity Sets per Type) meaning that there is always a + one-to-one correlation between a type and a set. + + The type that defines the set. + + + + Represents a LINQ to Entities query against a DbContext. + + The type of entity to query for. + + + + Creates a new query that will be backed by the given internal query object. + + The backing query. + + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Throws an exception indicating that binding directly to a store query is not supported. + Instead populate a DbSet with data, for example by using the Load extension method, and + then bind to local data. For WPF bind to DbSet.Local. For Windows Forms bind to + DbSet.Local.ToBindingList(). + + + Never returns; always throws. + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Returns a representation of the underlying query. + + + The query string. + + + + + Returns a new instance of the non-generic class for this query. + + A non-generic version. + + + + Returns false. + + false. + + + + The IQueryable element type. + + + + + The IQueryable LINQ Expression. + + + + + The IQueryable provider. + + + + + The internal query object that is backing this DbQuery + + + + + The internal query object that is backing this DbQuery + + + + + An IDbSet represents the collection of all entities in the context, or that can be queried from the + database, of a given type. DbSet is a concrete implementation of IDbSet. + + The type that defines the set. + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + The entity to add. + The entity. + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + The entity to remove. + The entity. + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + The entity to attach. + The entity. + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The type of entity to create. + The entity instance, which may be a proxy. + + + + Gets an that represents a local view of all Added, Unchanged, + and Modified entities in this set. This local view will stay in sync as entities are added or + removed from the context. Likewise, entities added to or removed from the local view will automatically + be added to or removed from the context. + + + This property can be used for data binding by populating the set with data, for example by using the Load + extension method, and then binding to the local data through this property. For WPF bind to this property + directly. For Windows Forms bind to the result of calling ToBindingList on this property + + The local view. + + + + Creates a new set that will be backed by the given . + + The internal set. + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + Thrown if multiple entities exist in the context with the primary key values given. + Thrown if the type of entity is not part of the data model for this context. + Thrown if the types of the key values do not match the types of the key values for the entity type to be found. + Thrown if the context has been disposed. + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + The entity to attach. + The entity. + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + The entity to add. + The entity. + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + The entity to remove. + The entity. + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The type of entity to create. + The entity instance, which may be a proxy. + + + + Returns the equivalent non-generic object. + + The non-generic set object. + + + + Creates a raw SQL query that will return entities in this set. By default, the + entities returned are tracked by the context; this can be changed by calling + AsNoTracking on the returned. + Note that the entities returned are always of the type for this set and never of + a derived type. If the table or tables queried may contain data for other entity + types, then the SQL query must be written appropriately to ensure that only entities of + the correct type are returned. + + The SQL query string. + The parameters to apply to the SQL query string. + A object that will execute the query when it is enumerated. + + + + Gets an that represents a local view of all Added, Unchanged, + and Modified entities in this set. This local view will stay in sync as entities are added or + removed from the context. Likewise, entities added to or removed from the local view will automatically + be added to or removed from the context. + + + This property can be used for data binding by populating the set with data, for example by using the Load + extension method, and then binding to the local data through this property. For WPF bind to this property + directly. For Windows Forms bind to the result of calling ToBindingList on this property + + The local view. + + + + The internal IQueryable that is backing this DbQuery + + + + + An implementation of IDatabaseInitializer that will always recreate and optionally re-seed the + database the first time that a context is used in the app domain. + To seed the database, create a derived class and override the Seed method. + + The type of the context. + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + A that should be overridden to actually add data to the context for seeding. + The default implementation does nothing. + + The context to seed. + + + + An implementation of IDatabaseInitializer that will DELETE, recreate, and optionally re-seed the + database only if the model has changed since the database was created. + + + Whether or not the model has changed is determined by the + method. + To seed the database create a derived class and override the Seed method. + + + + + Executes the strategy to initialize the database for the given context. + + The context. + + + + A that should be overridden to actually add data to the context for seeding. + The default implementation does nothing. + + The context to seed. + + + + Returned by the ChangeTracker method of to provide access to features of + the context that are related to change tracking of entities. + + + + + Initializes a new instance of the class. + + The internal context. + + + + Gets objects for all the entities tracked by this context. + + The entries. + + + + Gets objects for all the entities of the given type + tracked by this context. + + The type of the entity. + The entries. + + + + Detects changes made to the properties and relationships of POCO entities. Note that some types of + entity (such as change tracking proxies and entities that derive from ) + report changes automatically and a call to DetectChanges is not normally needed for these types of entities. + Also note that normally DetectChanges is called automatically by many of the methods of + and its related classes such that it is rare that this method will need to be called explicitly. + However, it may be desirable, usually for performance reasons, to turn off this automatic calling of + DetectChanges using the AutoDetectChangesEnabled flag from . + + + + + A non-generic version of the class. + + + + + This is an abstract base class use to represent a scalar or complex property, or a navigation property + of an entity. Scalar and complex properties use the derived class , + reference navigation properties use the derived class , and collection + navigation properties use the derived class . + + + + + Creates a from information in the given . + This method will create an instance of the appropriate subclass depending on the metadata contained + in the InternalMemberEntry instance. + + The internal member entry. + The new entry. + + + + Validates this property. + + + Collection of objects. Never null. If the entity is valid the collection will be empty. + + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the property. + The equivalent generic object. + + + + Gets the name of the property. + + The property name. + + + + Gets or sets the current value of this property. + + The current value. + + + + The to which this member belongs. + + An entry for the entity that owns this member. + + + + Gets the backing this object. + + The internal member entry. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal collection entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the collection of entities from the database. + Note that entities that already exist in the context are not overwritten with values from the database. + + + + + Returns the query that would be used to load this collection from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database, such + as counting the number of entities in the collection in the database without actually loading them. + + A query for the collection. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the collection element. + The equivalent generic object. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the collection of entities has been loaded from the database. + + true if the collection is loaded; otherwise, false. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + Gets the backing this object as an . + + The internal member entry. + + + + Instances of this class are returned from the Collection method of + and allow operations such as loading to + be performed on the an entity's collection navigation properties. + + The type of the entity to which this property belongs. + The type of the element in the collection of entities. + + + + This is an abstract base class use to represent a scalar or complex property, or a navigation property + of an entity. Scalar and complex properties use the derived class , + reference navigation properties use the derived class , and collection + navigation properties use the derived class . + + The type of the entity to which this property belongs. + The type of the property. + + + + Creates a from information in the given . + This method will create an instance of the appropriate subclass depending on the metadata contained + in the InternalMemberEntry instance. + + The internal member entry. + The new entry. + + + + Returns a new instance of the non-generic class for + the property represented by this object. + + A non-generic version. + + + + Validates this property. + + + Collection of objects. Never null. If the entity is valid the collection will be empty. + + + + + Gets or sets the current value of this property. + + The current value. + + + + Gets the underlying . + + The internal member entry. + + + + The to which this member belongs. + + An entry for the entity that owns this member. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal collection entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the collection of entities from the database. + Note that entities that already exist in the context are not overwritten with values from the database. + + + + + Returns the query that would be used to load this collection from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database, such + as counting the number of entities in the collection in the database without actually loading them. + + A query for the collection. + + + + Returns a new instance of the non-generic class for + the navigation property represented by this object. + + A non-generic version. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the collection of entities has been loaded from the database. + + true if the collection is loaded; otherwise, false. + + + + Gets the underlying as an . + + The internal member entry. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + An immutable representation of an Entity Data Model (EDM) model that can be used to create an + or can be passed to the constructor of a . + For increased performance, instances of this type should be cached and re-used to construct contexts. + + + + + For mocking. + + + + + Creates a model for the given EDM metadata model. + + The EDM metadata model. + + + + Creates an instance of ObjectContext or class derived from ObjectContext. Note that an instance + of DbContext can be created instead by using the appropriate DbContext constructor. + If a derived ObjectContext is used, then it must have a public constructor with a single + EntityConnection parameter. + The connection passed is used by the ObjectContext created, but is not owned by the context. The caller + must dispose of the connection once the context has been disposed. + + The type of context to create. + An existing connection to a database for use by the context. + + + + + Gets a cached delegate (or creates a new one) used to call the constructor for the given derived ObjectContext type. + + + + + A snapshot of the that was used to create this compiled model. + + + + + The provider info (provider name and manifest token) that was used to create this model. + + + + + A non-generic version of the class. + + + + + A non-generic version of the class. + + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the property. + The equivalent generic object. + + + + Gets the property name. + + The property name. + + + + Gets or sets the original value of this property. + + The original value. + + + + Gets or sets the current value of this property. + + The current value. + + + + Gets or sets a value indicating whether the value of this property has been modified since + it was loaded from the database. + + + Setting this value to false for a modified property will revert the change by setting the + current value to the original value. If the result is that no properties of the entity are + marked as modified, then the entity will be marked as Unchanged. + Setting this value to false for properties of Added, Unchanged, or Deleted entities + is a no-op. + + + true if this instance is modified; otherwise, false. + + + + + The to which this property belongs. + + An entry for the entity that owns this property. + + + + The of the property for which this is a nested property. + This method will only return a non-null entry for properties of complex objects; it will + return null for properties of the entity itself. + + An entry for the parent complex property, or null if this is an entity property. + + + + Gets the backing this object. + + The internal member entry. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The name of the nested property. + An object representing the nested property. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the complex property. + The equivalent generic object. + + + + Instances of this class are returned from the ComplexProperty method of + and allow access to the state of a complex property. + + The type of the entity to which this property belongs. + The type of the property. + + + + Instances of this class are returned from the Property method of + and allow access to the state of the scalar + or complex property. + + The type of the entity to which this property belongs. + The type of the property. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Returns a new instance of the non-generic class for + the property represented by this object. + + A non-generic version. + + + + Gets the property name. + + The property name. + + + + Gets or sets the original value of this property. + + The original value. + + + + Gets or sets the current value of this property. + + The current value. + + + + Gets or sets a value indicating whether the value of this property has been modified since + it was loaded from the database. + + + true if this instance is modified; otherwise, false. + + + + + The to which this property belongs. + + An entry for the entity that owns this property. + + + + The of the property for which this is a nested property. + This method will only return a non-null entry for properties of complex objects; it will + return null for properties of the entity itself. + + An entry for the parent complex property, or null if this is an entity property. + + + + Gets the underlying as an . + + The internal member entry. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal property entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Returns a new instance of the non-generic class for + the property represented by this object. + + A non-generic version. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The type of the nested property. + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested property of this property. + This method can be used for both scalar or complex properties. + + The type of the nested property. + An expression representing the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The type of the nested property. + The name of the nested property. + An object representing the nested property. + + + + Gets an object that represents a nested complex property of this property. + + The type of the nested property. + An expression representing the nested property. + An object representing the nested property. + + + + Describes the origin of the database connection string associated with a . + + + + + The connection string was created by convention. + + + + + The connection string was read from external configuration. + + + + + The connection string was explicitly specified at runtime. + + + + + The connection string was overriden by connection information supplied to DbContextInfo. + + + + + Returned by the Configuration method of to provide access to configuration + options for the context. + + + + + Initializes a new instance of the class. + + The internal context. + + + + Gets or sets a value indicating whether lazy loading of relationships exposed as + navigation properties is enabled. Lazy loading is enabled by default. + + true if lazy loading is enabled; otherwise, false. + + + + Gets or sets a value indicating whether or not the framework will create instances of + dynamically generated proxy classes whenever it creates an instance of an entity type. + Note that even if proxy creation is enabled with this flag, proxy instances will only + be created for entity types that meet the requirements for being proxied. + Proxy creation is enabled by default. + + true if proxy creation is enabled; otherwise, false. + + + + + Gets or sets a value indicating whether tracked entities should be validated automatically when + is invoked. + The default value is true. + + + + + Provides runtime information about a given type. + + + + + Creates a new instance representing a given type. + + The type deriving from . + + + + Creates a new instance representing a given targeting a specific database. + + The type deriving from . + Connection information for the database to be used. + + + + Creates a new instance representing a given type. An external list of + connection strings can be supplied and will be used during connection string resolution in place + of any connection strings specified in external configuration files. + + + It is preferable to use the constructor that accepts the entire config document instead of using this + constructor. Providing the entire config document allows DefaultConnectionFactroy entries in the config + to be found in addition to explicitly specified connection strings. + + The type deriving from . + A collection of connection strings. + + + + Creates a new instance representing a given type. An external config + object (e.g. app.config or web.config) can be supplied and will be used during connection string + resolution. This includes looking for connection strings and DefaultConnectionFactory entries. + + The type deriving from . + An object representing the config file. + + + + Creates a new instance representing a given , targeting a specific database. + An external config object (e.g. app.config or web.config) can be supplied and will be used during connection string + resolution. This includes looking for connection strings and DefaultConnectionFactory entries. + + The type deriving from . + An object representing the config file. + Connection information for the database to be used. + + + + Creates a new instance representing a given type. A + can be supplied in order to override the default determined provider used when constructing + the underlying EDM model. + + The type deriving from . + A specifying the underlying ADO.NET provider to target. + + + + Creates a new instance representing a given type. An external config + object (e.g. app.config or web.config) can be supplied and will be used during connection string + resolution. This includes looking for connection strings and DefaultConnectionFactory entries. + A can be supplied in order to override the default determined + provider used when constructing the underlying EDM model. This can be useful to prevent EF from + connecting to discover a manifest token. + + The type deriving from . + An object representing the config file. + A specifying the underlying ADO.NET provider to target. + + + + Called internally when a context info is needed for an existing context, which may not be constructable. + + The context instance to get info from. + + + + If instances of the underlying type can be created, returns + a new instance; otherwise returns null. + + A instance. + + + + The concrete type. + + + + + Whether or not instances of the underlying type can be created. + + + + + The connection string used by the underlying type. + + + + + The connection string name used by the underlying type. + + + + + The ADO.NET provider name of the connection used by the underlying type. + + + + + The origin of the connection string used by the underlying type. + + + + + An action to be run on the DbModelBuilder after OnModelCreating has been run on the context. + + + + + A non-generic version of the class. + + + + + Initializes a new instance of the class. + + The internal entry. + + + + Queries the database for copies of the values of the tracked entity as they currently exist in the database. + Note that changing the values in the returned dictionary will not update the values in the database. + If the entity is not found in the database then null is returned. + + The store values. + + + + Reloads the entity from the database overwriting any property values with values from the database. + The entity will be in the Unchanged state after calling this method. + + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The name of the property. + An object representing the property. + + + + Gets an object that represents a complex property of this entity. + + The name of the complex property. + An object representing the complex property. + + + + Gets an object that represents a member of the entity. The runtime type of the returned object will + vary depending on what kind of member is asked for. The currently supported member types and their return + types are: + Reference navigation property: . + Collection navigation property: . + Primitive/scalar property: . + Complex property: . + + The name of the member. + An object representing the member. + + + + Returns a new instance of the generic class for the given + generic type for the tracked entity represented by this object. + Note that the type of the tracked entity must be compatible with the generic type or + an exception will be thrown. + + The type of the entity. + A generic version. + + + + Validates this instance and returns validation result. + + + Entity validation result. Possibly null if + method is overridden. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the entity. + + The entity. + + + + Gets or sets the state of the entity. + + The state. + + + + Gets the current property values for the tracked entity represented by this object. + + The current values. + + + + Gets the original property values for the tracked entity represented by this object. + The original values are usually the entity's property values as they were when last queried from + the database. + + The original values. + + + + Gets InternalEntityEntry object for this DbEntityEntry instance. + + + + + Instances of this class provide access to information about and control of entities that + are being tracked by the . Use the Entity or Entities methods of + the context to obtain objects of this type. + + The type of the entity. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Queries the database for copies of the values of the tracked entity as they currently exist in the database. + Note that changing the values in the returned dictionary will not update the values in the database. + If the entity is not found in the database then null is returned. + + The store values. + + + + Reloads the entity from the database overwriting any property values with values from the database. + The entity will be in the Unchanged state after calling this method. + + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The type of the property. + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the reference (i.e. non-collection) navigation property from this + entity to another entity. + + The type of the property. + An expression representing the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The type of elements in the collection. + The name of the navigation property. + An object representing the navigation property. + + + + Gets an object that represents the collection navigation property from this + entity to a collection of related entities. + + The type of elements in the collection. + An expression representing the navigation property. + An object representing the navigation property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The name of the property. + An object representing the property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The type of the property. + The name of the property. + An object representing the property. + + + + Gets an object that represents a scalar or complex property of this entity. + + The type of the property. + An expression representing the property. + An object representing the property. + + + + Gets an object that represents a complex property of this entity. + + The name of the complex property. + An object representing the complex property. + + + + Gets an object that represents a complex property of this entity. + + The type of the complex property. + The name of the complex property. + An object representing the complex property. + + + + Gets an object that represents a complex property of this entity. + + The type of the complex property. + An expression representing the complex property. + An object representing the complex property. + + + + Gets an object that represents a member of the entity. The runtime type of the returned object will + vary depending on what kind of member is asked for. The currently supported member types and their return + types are: + Reference navigation property: . + Collection navigation property: . + Primitive/scalar property: . + Complex property: . + + The name of the member. + An object representing the member. + + + + Gets an object that represents a member of the entity. The runtime type of the returned object will + vary depending on what kind of member is asked for. The currently supported member types and their return + types are: + Reference navigation property: . + Collection navigation property: . + Primitive/scalar property: . + Complex property: . + + The type of the member. + The name of the member. + An object representing the member. + + + + Returns a new instance of the non-generic class for + the tracked entity represented by this object. + + A non-generic version. + + + + Validates this instance and returns validation result. + + + Entity validation result. Possibly null if + method is overridden. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the entity. + + The entity. + + + + Gets or sets the state of the entity. + + The state. + + + + Gets the current property values for the tracked entity represented by this object. + + The current values. + + + + Gets the original property values for the tracked entity represented by this object. + The original values are usually the entity's property values as they were when last queried from + the database. + + The original values. + + + + Represents an Entity Data Model (EDM) created by the . + The Compile method can be used to go from this EDM representation to a + which is a compiled snapshot of the model suitable for caching and creation of + or instances. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + + + + Creates a for this mode which is a compiled snapshot + suitable for caching and creation of instances. + + The compiled model. + + + + A snapshot of the that was used to create this compiled model. + + + + + A collection of all the properties for an underlying entity or complex object. + + + An instance of this class can be converted to an instance of the generic class + using the Cast method. + Complex properties in the underlying entity or complex object are represented in + the property values as nested instances of this class. + + + + + Initializes a new instance of the class. + + The internal dictionary. + + + + Creates an object of the underlying type for this dictionary and hydrates it with property + values from this dictionary. + + The properties of this dictionary copied into a new object. + + + + Sets the values of this dictionary by reading values out of the given object. + The given object can be of any type. Any property on the object with a name that + matches a property name in the dictionary and can be read will be read. Other + properties will be ignored. This allows, for example, copying of properties from + simple Data Transfer Objects (DTOs). + + The object to read values from. + + + + Creates a new dictionary containing copies of all the properties in this dictionary. + Changes made to the new dictionary will not be reflected in this dictionary and vice versa. + + A clone of this dictionary. + + + + Sets the values of this dictionary by reading values from another dictionary. + The other dictionary must be based on the same type as this dictionary, or a type derived + from the type for this dictionary. + + The dictionary to read values from. + + + + Gets the value of the property just like using the indexed property getter but + typed to the type of the generic parameter. This is useful especially with + nested dictionaries to avoid writing expressions with lots of casts. + + The type of the property. + Name of the property. + The value of the property. + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + Gets or sets the value of the property with the specified property name. + The value may be a nested instance of this class. + + The property name. + The value of the property. + + + + Gets the internal dictionary. + + The internal dictionary. + + + + A non-generic version of the class. + + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal reference entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the entity from the database. + Note that if the entity already exists in the context, then it will not overwritten with values from the database. + + + + + Returns the query that would be used to load this entity from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database. + + A query for the entity. + + + + Returns the equivalent generic object. + + The type of entity on which the member is declared. + The type of the property. + The equivalent generic object. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the entity has been loaded from the database. + + true if the entity is loaded; otherwise, false. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + Gets the backing this object as an . + + The internal member entry. + + + + Instances of this class are returned from the Reference method of + and allow operations such as loading to + be performed on the an entity's reference navigation properties. + + The type of the entity to which this property belongs. + The type of the property. + + + + Creates a from information in the given . + Use this method in preference to the constructor since it may potentially create a subclass depending on + the type of member represented by the InternalCollectionEntry instance. + + The internal reference entry. + The new entry. + + + + Initializes a new instance of the class. + + The internal entry. + + + + Loads the entity from the database. + Note that if the entity already exists in the context, then it will not overwritten with values from the database. + + + + + Returns the query that would be used to load this entity from the database. + The returned query can be modified using LINQ to perform filtering or operations in the database. + + A query for the entity. + + + + Returns a new instance of the non-generic class for + the navigation property represented by this object. + + A non-generic version. + + + + Gets the property name. + + The property name. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references. + + The current value. + + + + Gets a value indicating whether the entity has been loaded from the database. + + true if the entity is loaded; otherwise, false. + + + + Gets the underlying as an . + + The internal member entry. + + + + The to which this navigation property belongs. + + An entry for the entity that owns this navigation property. + + + + Represents a SQL query for entities that is created from a + and is executed using the connection from that context. + Instances of this class are obtained from the instance for the + entity type. The query is not executed when this object is created; it is executed + each time it is enumerated, for example by using foreach. + SQL queries for non-entities are created using the . + See for a generic version of this class. + + + + + Initializes a new instance of the class. + + The internal query. + + + + Executes the query and returns an enumerator for the elements. + + + An object that can be used to iterate through the elements. + + + + + Returns a new query where the results of the query will not be tracked by the associated + . + + A new query with no-tracking applied. + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Gets the internal query. + + The internal query. + + + + Returns false. + + false. + + + + Represents a SQL query for entities that is created from a + and is executed using the connection from that context. + Instances of this class are obtained from the instance for the + entity type. The query is not executed when this object is created; it is executed + each time it is enumerated, for example by using foreach. + SQL queries for non-entities are created using the . + See for a non-generic version of this class. + + + + + Executes the query and returns an enumerator for the elements. + + An + + object that can be used to iterate through the elements. + + + + Executes the query and returns an enumerator for the elements. + + + An object that can be used to iterate through the elements. + + + + + Returns a new query where the results of the query will not be tracked by the associated + . + + A new query with no-tracking applied. + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Gets the internal query. + + The internal query. + + + + Returns false. + + false. + + + + Exception thrown by when it was expected that SaveChanges for an entity would + result in a database update but in fact no rows in the database were affected. This usually indicates + that the database has been concurrently updated such that a concurrency token that was expected to match + did not actually match. + Note that state entries referenced by this exception are not serialized due to security and accesses to + the state entries after serialization will return null. + + + + + + Initializes a new instance of the class. + + The internal context. + The inner exception. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Subscribes the SerializeObjectState event. + + + + + Gets objects that represents the entities that could not + be saved to the database. + + The entries representing the entities that could not be saved. + + + + Holds exception state that will be serialized when the exception is serialized. + + + + + Completes the deserialization. + + The deserialized object. + + + + Gets or sets a value indicating whether the exception involved independent associations. + + + + + Initializes a new instance of the class. + + The context. + The inner exception. + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Represents an entity used to store metadata about an EDM in the database. + + + + + Attempts to get the model hash calculated by Code First for the given context. + This method will return null if the context is not being used in Code First mode. + + The context. + The hash string. + + + + Gets or sets the ID of the metadata entity, which is currently always 1. + + The id. + + + + Gets or sets the model hash which is used to check whether the model has + changed since the database was created from it. + + The model hash. + + + + Contains methods used to access the Entity Data Model created by Code First in the EDMX form. + These methods are typically used for debugging when there is a need to look at the model that + Code First creates internally. + + + + + Uses Code First with the given context and writes the resulting Entity Data Model to the given + writer in EDMX form. This method can only be used with context instances that use Code First + and create the model internally. The method cannot be used for contexts created using Database + First or Model First, for contexts created using a pre-existing , or + for contexts created using a pre-existing . + + The context. + The writer. + + + + Writes the Entity Data Model represented by the given to the + given writer in EDMX form. + + An object representing the EDM. + The writer. + + + + A factory for creating derived instances. Implement this + interface to enable design-time services for context types that do not have a + public default constructor. + + At design-time, derived instances can be created in order to enable specific + design-time experiences such as model rendering, DDL generation etc. To enable design-time instantiation + for derived types that do not have a public, default constructor, implement + this interface. Design-time services will auto-discover implementations of this interface that are in the + same assembly as the derived type. + + + + + + Creates a new instance of a derived type. + + An instance of TContext + + + + This convention causes DbModelBuilder to include metadata about the model + when it builds the model. When creates a model by convention it will + add this convention to the list of those used by the DbModelBuilder. This will then result in + model metadata being written to the database if the DbContext is used to create the database. + This can then be used as a quick check to see if the model has changed since the last time it was + used against the database. + This convention can be removed from the conventions by overriding + the OnModelCreating method on a derived DbContext class. + + + + + Adds metadata to the given model configuration. + + The model configuration. + + + + This convention uses the name of the derived + class as the container for the conceptual model built by + Code First. + + + + + Initializes a new instance of the class. + + The model container name. + + + + Applies the convention to the given model. + + The model. + + + + This convention uses the namespace of the derived + class as the namespace of the conceptual model built by + Code First. + + + + + Initializes a new instance of the class. + + The model namespace. + + + + Applies the convention to the given model. + + The model. + + + + Instances of this class are used internally to create constant expressions for + that are inserted into the expression tree to replace references to + and . + + The type of the element. + + + + Private constructor called by the Create factory method. + + The query. + + + + Factory method called by CreateDelegate to create an instance of this class. + + The query, which must be a generic object of the expected type. + A new instance. + + + + The public property expected in the LINQ expression tree. + + The query. + + + + Instances of this class are used to create DbConnection objects for + SQL Server Compact Edition based on a given database name or connection string. + + + It is necessary to provide the provider invariant name of the SQL Server Compact + Edition to use when creating an instance of this class. This is because different + versions of SQL Server Compact Editions use different invariant names. + An instance of this class can be set on the class to + cause all DbContexts created with no connection information or just a database + name or connection string to use SQL Server Compact Edition by default. + This class is immutable since multiple threads may access instances simultaneously + when creating connections. + + + + + Creates a new connection factory with empty (default) DatabaseDirectory and BaseConnectionString + properties. + + The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. + + + + Creates a new connection factory with the given DatabaseDirectory and BaseConnectionString properties. + + + The provider invariant name that specifies the version of SQL Server Compact Edition that should be used. + + + The path to prepend to the database name that will form the file name used by SQL Server Compact Edition + when it creates or reads the database file. An empty string means that SQL Server Compact Edition will use + its default for the database file location. + + + The connection string to use for options to the database other than the 'Data Source'. The Data Source will + be prepended to this string based on the database name when CreateConnection is called. + + + + + Creates a connection for SQL Server Compact Edition based on the given database name or connection string. + If the given string contains an '=' character then it is treated as a full connection string, + otherwise it is treated as a database name only. + + The database name or connection string. + An initialized DbConnection. + + + + The path to prepend to the database name that will form the file name used by + SQL Server Compact Edition when it creates or reads the database file. + The default value is "|DataDirectory|", which means the file will be placed + in the designated data directory. + + + + + The connection string to use for options to the database other than the 'Data Source'. + The Data Source will be prepended to this string based on the database name when + CreateConnection is called. + The default is the empty string, which means no other options will be used. + + + + + The provider invariant name that specifies the version of SQL Server Compact Edition + that should be used. + + + + + Instances of this class are used to create DbConnection objects for + SQL Server based on a given database name or connection string. By default, the connection is + made to '.\SQLEXPRESS'. This can be changed by changing the base connection + string when constructing a factory instance. + + + An instance of this class can be set on the class to + cause all DbContexts created with no connection information or just a database + name or connection string to use SQL Server by default. + This class is immutable since multiple threads may access instances simultaneously + when creating connections. + + + + + Creates a new connection factory with a default BaseConnectionString property of + 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'. + + + + + Creates a new connection factory with the given BaseConnectionString property. + + + The connection string to use for options to the database other than the 'Initial Catalog'. The 'Initial Catalog' will + be prepended to this string based on the database name when CreateConnection is called. + + + + + Creates a connection for SQL Server based on the given database name or connection string. + If the given string contains an '=' character then it is treated as a full connection string, + otherwise it is treated as a database name only. + + The database name or connection string. + An initialized DbConnection. + + + + Remove hard dependency on DbProviderFactories. + + + + + The connection string to use for options to the database other than the 'Initial Catalog'. + The 'Initial Catalog' will be prepended to this string based on the database name when + CreateConnection is called. + The default is 'Data Source=.\SQLEXPRESS; Integrated Security=True; MultipleActiveResultSets=True'. + + + + + This attribute can be applied to either an entire derived class or to + individual or properties on that class. When applied + any discovered or properties will still be included + in the model but will not be automatically initialized. + + + + + Thrown when a context is generated from the templates in Database First or Model + First mode and is then used in Code First mode. + + + Code generated using the T4 templates provided for Database First and Model First use may not work + correctly if used in Code First mode. To use these classes with Code First please add any additional + configuration using attributes or the DbModelBuilder API and then remove the code that throws this + exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The object that holds the serialized object data. + The contextual information about the source or destination. + + + + Initializes a new instance of the class. + + The message. + + + + Initializes a new instance of the class. + + The message. + The inner exception. + + + + Implements ICachedMetadataWorkspace for a Code First model. + + + + + Represents an object that holds a cached copy of a MetadataWorkspace and optionally the + assemblies containing entity types to use with that workspace. + + + + + Gets the MetadataWorkspace, potentially lazily creating it if it does not already exist. + If the workspace is not compatible with the provider manifest obtained from the given + connection then an exception is thrown. + + The connection to use to create or check SSDL provider info. + The workspace. + + + + The list of assemblies that contain entity types for this workspace, which may be empty, but + will never be null. + + + + + The default container name for code first is the container name that is set from the DbModelBuilder + + + + + The provider info used to construct the workspace. + + + + + Builds and stores the workspace based on the given code first configuration. + + The code first EDM model. + + + + Gets the . + If the workspace is not compatible with the provider manifest obtained from the given + connection then an exception is thrown. + + The connection to use to create or check SSDL provider info. + The workspace. + + + + The default container name for code first is the container name that is set from the DbModelBuilder + + + + + The list of assemblies that contain entity types for this workspace, which may be empty, but + will never be null. + + + + + The provider info used to construct the workspace. + + + + + The methods here are called from multiple places with an ObjectContext that may have + been created in a variety of ways and ensure that the same code is run regardless of + how the context was created. + + + + + Used a delegate to do the actual creation once an ObjectContext has been obtained. + This is factored in this way so that we do the same thing regardless of how we get to + having an ObjectContext. + Note however that a context obtained from only a connection will have no model and so + will result in an empty database. + + + + + Used a delegate to do the actual existence check once an ObjectContext has been obtained. + This is factored in this way so that we do the same thing regardless of how we get to + having an ObjectContext. + + + + + Used a delegate to do the actual check/delete once an ObjectContext has been obtained. + This is factored in this way so that we do the same thing regardless of how we get to + having an ObjectContext. + + + + + Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. + + + + + Creates a new pair of the given set of entity types and DbSet initializer delegate. + + + + + The entity types part of the pair. + + + + + The DbSet properties initializer part of the pair. + + + + + Static helper methods only. + + + + + Checks whether the given value is null and throws ArgumentNullException if it is. + This method should only be used in places where Code Contracts are compiled out in the + release build but we still need public surface null-checking, such as where a public + abstract class is implemented by an internal concrete class. + + + + + Checks whether the given string is null, empty, or just whitespace, and throws appropriately + if the check fails. + This method should only be used in places where Code Contracts are compiled out in the + release build but we still need public surface checking, such as where a public + abstract class is implemented by an internal concrete class. + + + + + Given two key values that may or may not be byte arrays, this method determines + whether or not they are equal. For non-binary key values, this is equivalent + to Object.Equals. For binary keys, it is by comparison of every byte in the + arrays. + + + + + Provides a standard helper method for quoting identifiers + + Identifier to be quoted. Does not validate that this identifier is valid. + Quoted string + + + + Checks the given string which might be a database name or a connection string and determines + whether it should be treated as a name or connection string. Currently, the test is simply + whether or not the string contains an '=' character--if it does, then it should be treated + as a connection string. + + The name or connection string. + true if the string should be treated as a connection string; false if it should be treated as a name. + + + + Determines whether the given string should be treated as a database name directly (it contains no '='), + is in the form name=foo, or is some other connection string. If it is a direct name or has name=, then + the name is extracted and the method returns true. + + The name or connection string. + The name. + True if a name is found; false otherwise. + + + + Determines whether the given string is a full EF connection string with provider, provider connection string, + and metadata parts, or is is instead some other form of connection string. + + The name or connection string. + true if the given string is an EF connection string; otherwise, false. + + + + + Parses a property selector expression used for the expression-based versions of the Property, Collection, Reference, + etc methods on and + classes. + + The type of the entity. + The type of the property. + The property. + Name of the method. + Name of the param. + The property name. + + + + Called recursively to parse an expression tree representing a property path such + as can be passed to Include or the Reference/Collection/Property methods of . + This involves parsing simple property accesses like o => o.Products as well as calls to Select like + o => o.Products.Select(p => p.OrderLines). + + The expression to parse. + The expression parsed into an include path, or null if the expression did not match. + True if matching succeeded; false if the expression could not be parsed. + + + + Gets a cached dictionary mapping property names to property types for all the properties + in the given type. + + + + + Gets a dictionary of compiled property setter delegates for the underlying types. + The dictionary is cached for the type in the app domain. + + + + + Used by the property setter delegates to throw for attempts to set null onto + non-nullable properties or otherwise go ahead and set the property. + + + + + Gets a dictionary of compiled property getter delegates for the underlying types. + The dictionary is cached for the type in the app domain. + + + + + Creates a new with the NoTracking merge option applied. + The query object passed in is not changed. + + The query. + A new query with NoTracking applied. + + + + Converts to + + + Name of the property being validated with ValidationAttributes. Null for type-level validation. + + + ValidationResults instances to be converted to instances. + + + An created based on the + . + + + class contains a property with names of properties the error applies to. + On the other hand each applies at most to a single property. As a result for + each name in ValidationResult.MemberNames one will be created (with some + exceptions for special cases like null or empty .MemberNames or null names in the .MemberNames). + + + + + Calculates a "path" to a property. For primitive properties on an entity type it is just the + name of the property. Otherwise it is a dot separated list of names of the property and all + its ancestor properties starting from the entity. + + Property for which to calculate the path. + Dot separated path to the property. + + + + Gets names of the property and its ancestor properties as enumerable walking "bottom-up". + + Property for which to get the segments. + Names of the property and its ancestor properties. + + + + Gets an type for the given element type. + + Type of the element. + The collection type. + + + + Creates a database name given a type derived from DbContext. This handles nested and + generic classes. No attempt is made to ensure that the name is not too long since this + is provider specific. If a too long name is generated then the provider will throw and + the user must correct by specifying their own name in the DbContext constructor. + + Type of the context. + The database name to use. + + + + A local (in-memory) view of the entities in a DbSet. + This view contains Added entities and does not contain Deleted entities. The view extends + from and hooks up events between the collection and the + state manager to keep the view in sync. + + The type of the entity. + + + + Initializes a new instance of the class for entities + of the given generic type in the given internal context. + + The internal context. + + + + Called by the base class when the collection changes. + This method looks at the change made to the collection and reflects those changes in the + state manager. + + The instance containing the event data. + + + + Handles events from the state manager for entities entering, leaving, or being marked as deleted. + The local view is kept in sync with these changes. + + The sender. + The instance containing the event data. + + + + Clears the items by calling remove on each item such that we get Remove events that + can be tracked back to the state manager, rather than a single Reset event that we + cannot deal with. + + + + + Adds a contains check to the base implementation of InsertItem since we can't support + duplicate entities in the set. + + The index at which to insert. + The item to insert. + + + + Returns a cached binding list implementation backed by this ObservableCollection. + + The binding list. + + + + Service used to search for instance properties on a DbContext class that can + be assigned a DbSet instance. Also, if the the property has a public setter, + then a delegate is compiled to set the property to a new instance of DbSet. + All of this information is cached per app domain. + + + + + Creates a set discovery service for the given derived context. + + + + + Processes the given context type to determine the DbSet or IDbSet + properties and collect root entity types from those properties. Also, delegates are + created to initialize any of these properties that have public setters. + If the type has been processed previously in the app domain, then all this information + is returned from a cache. + + A dictionary of potential entity type to the list of the names of the properties that used the type. + + + + Calls the public setter on any property found to initialize it to a new instance of DbSet. + + + + + Registers the entities and their entity set name hints with the given . + + The model builder. + + + + Returns false if SuppressDbSetInitializationAttribute is found on the property or the class, otherwise + returns true. + + + + + Determines whether or not an instance of DbSet/ObjectSet can be assigned to a property of the given type. + + The type to check. + The entity type of the DbSet/ObjectSet that can be assigned, or null if no set type can be assigned. + + + + + A EagerInternalConnection object wraps an already existing DbConnection object. + + + + + InternalConnection objects manage DbConnections. + Two concrete base classes of this abstract interface exist: + and . + + + + + IInternalConnection objects manage DbConnections. + Two concrete implementations of this interface exist--LazyInternalConnection and EagerInternalConnection. + + + + + Creates an from metadata in the connection. This method must + only be called if ConnectionHasModel returns true. + + The newly created context. + + + + Returns the underlying DbConnection. + + + + + Returns a key consisting of the connection type and connection string. + If this is an EntityConnection then the metadata path is included in the key returned. + + + + + Gets a value indicating whether the connection is an EF connection which therefore contains + metadata specifying the model, or instead is a store connection, in which case it contains no + model info. + + true if the connection contains model info; otherwise, false. + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries + and connection strins. + + + + + Gets or sets the provider to be used when creating the underlying connection. + + + + + Gets the name of the underlying connection string. + + + + + Gets the original connection string. + + + + + Creates an from metadata in the connection. This method must + only be called if ConnectionHasModel returns true. + + The newly created context. + + + + Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. + + + + + Called after the connection is initialized for the first time. + + + + + Adds a tracking cookie to the connection string for SqlConnections. Returns the + possibly modified store connection string. + + + + + Returns the underlying DbConnection. + + + + + Returns a key consisting of the connection type and connection string. + If this is an EntityConnection then the metadata path is included in the key returned. + + + + + + Gets a value indicating whether the connection is an EF connection which therefore contains + metadata specifying the model, or instead is a store connection, in which case it contains no + model info. + + true if the connection contains model info; otherwise, false. + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries + and connection strins. + + + + + Gets or sets the provider to be used when creating the underlying connection. + + + + + Gets the name of the underlying connection string. + + + + + Gets the original connection string. + + + + + Gets or sets the underlying object. No initialization is done when the + connection is obtained, and it can also be set to null. + + The underlying connection. + + + + Creates a new EagerInternalConnection that wraps an existing DbConnection. + + An existing connection. + If set to true then the underlying connection should be disposed when this object is disposed. + + + + Dispose the existing connection is the original caller has specified that it should be disposed + by the framework. + + + + + Returns the origin of the underlying connection string. + + + + + An is an where the + instance that it wraps is set immediately at construction time rather than being created lazily. In this case + the internal context may or may not own the instance but will only dispose it + if it does own it. + + + + + An underlies every instance of and wraps an + instance. + The also acts to expose necessary information to other parts of the design in a + controlled manner without adding a lot of internal methods and properties to the + class itself. + Two concrete classes derive from this abstract class - and + . + + + + + Initializes the object with its owner. + + The owner . + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Creates a new temporary based on the same metadata and connection as the real + and sets it as the context to use DisposeTempObjectContext is called. + This allows this internal context and its DbContext to be used for transient operations + such as initializing and seeding the database, after which it can be thrown away. + This isolates the real from any changes made and and saves performed. + + + + + If a temporary ObjectContext was set with UseTempObjectContext, then this method disposes that context + and returns this internal context and its DbContext to using the real ObjectContext. + + + + + Called by methods of to create a database either using the Migrations pipeline + if possible and the core provider otherwise. + + The context to use for core provider calls. + + + + Internal implementation of . + + True if the model hash in the context and the database match; false otherwise. + + + + Checks whether the given model (an EDMX document) matches the current model. + + + + + Queries the database for a model hash and returns it if found or returns null if the table + or the row doesn't exist in the database. + + The model hash, or null if not found. + + + + Queries the database for a model stored in the MigrationHistory table and returns it as an EDMX, or returns + null if the database does not contain a model. + + + + + Saves the model hash from the context to the database. + + + + + Performs the initialization action that may result in a and + handle the exception to provide more meaning to the user. + + The action. + + + + Registers for the ObjectStateManagerChanged event on the underlying ObjectStateManager. + This is a virtual method on this class so that it can be mocked. + + The event handler. + + + + Checks whether or not the given object is in the context in any state other than Deleted. + This is a virtual method on this class so that it can be mocked. + + The entity. + true if the entity is in the context and not deleted; otherwise false. + + + + Saves all changes made in this context to the underlying database. + + The number of objects written to the underlying database. + + + + Initializes this instance, which means both the context is initialized and the underlying + database is initialized. + + + + + Initializes the underlying ObjectContext but does not cause the database to be initialized. + + + + + Marks the database as having not been initialized. This is called when the app calls Database.Delete so + that the database if the app attempts to then use the database again it will be re-initialized automatically. + + + + + Runs the unless it has already been run or there + is no initializer for this context type in which case this method does nothing. + + + + + Marks the database as having been initialized without actually running the . + + + + + Runs the if one has been set for this context type. + Calling this method will always cause the initializer to run even if the database is marked + as initialized. + + + + + Disposes the context. Override the DisposeContext method to perform + additional work when disposing. + + + + + Performs additional work to dispose a context. + + + + + Calls DetectChanges on the underlying if AutoDetectChangesEnabled is + true or if force is set to true. + + if set to true then DetectChanges is called regardless of the value of AutoDetectChangesEnabled. + + + + Returns the DbSet instance for the given entity type. + This property is virtual and returns to that it can be mocked. + + The entity type for which a set should be returned. + A set for the given entity type. + + + + Returns the non-generic instance for the given entity type. + This property is virtual and returns to that it can be mocked. + + The entity type for which a set should be returned. + A set for the given entity type. + + + + Creates an internal set using an app domain cached delegate. + + Type of the entity. + The set. + + + + Returns the entity set and the base type for that entity set for the given type. + This method does o-space loading if required and throws if the type is not in the model. + + The entity type to lookup. + The entity set and base type pair. + + + + Returns the entity set and the base type for that entity set for the given type if that + type is mapped in the model, otherwise returns null. + This method does o-space loading if required. + + The entity type to lookup. + The entity set and base type pair, or null if not found. + + + + Checks whether or not the given entity type is mapped in the model. + + The entity type to lookup. + True if the type is mapped as an entity; false otherwise. + + + + Gets the local entities of the type specified from the state manager. That is, all + Added, Modified, and Unchanged entities of the given type. + + The type of entity to get. + The entities. + + + + Executes the given SQL query against the database backing this context. The results are not materialized as + entities or tracked. + + The type of the element. + The SQL. + The parameters. + The query results. + + + + Executes the given SQL query against the database backing this context. The results are not materialized as + entities or tracked. + + Type of the element. + The SQL. + The parameters. + The query results. + + + + Calls the generic ExecuteSqlQuery but with a non-generic return type so that it + has the correct signature to be used with CreateDelegate above. + + + + + Executes the given SQL command against the database backing this context. + + The SQL. + The parameters. + The return value from the database. + + + + Gets the underlying for the given entity, or returns null if the entity isn't tracked by this context. + This method is virtual so that it can be mocked. + + The entity. + The state entry or null. + + + + Gets the underlying objects for all entities tracked by + this context. + This method is virtual so that it can be mocked. + + State entries for all tracked entities. + + + + Gets the underlying objects for all entities of the given + type tracked by this context. + This method is virtual so that it can be mocked. + + The type of the entity. + State entries for all tracked entities of the given type. + + + + Helper method that gets the underlying objects for all entities that + match the given predicate. + + + + + Wraps the given in either a or + a depending on the actual exception type and the state + entries involved. + + The update exception. + A new exception wrapping the given exception. + + + + Uses the underlying context to create an entity such that if the context is configured + to create proxies and the entity is suitable then a proxy instance will be returned. + This method is virtual so that it can be mocked. + + The type of the entity. + The new entity instance. + + + + Uses the underlying context to create an entity such that if the context is configured + to create proxies and the entity is suitable then a proxy instance will be returned. + This method is virtual so that it can be mocked. + + The type of entity to create. + The new entity instance. + + + + This method is used by CreateDelegate to transform the CreateObject method with return type TEntity + into a method with return type object which matches the required type of the delegate. + + + + + Replaces the connection that will be used by this context. + The connection can only be changed before the context is initialized. + + The new connection. + + + + Throws if the context has been disposed. + + + + + Checks whether or not the internal cache of types to entity sets has been initialized, + and initializes it if necessary. + + + + + Forces all DbSets to be initialized, which in turn causes o-space loading to happen + for any entity type for which we have a DbSet. This includes all DbSets that were + discovered on the user's DbContext type. + + + + + Performs o-space loading for the type and returns false if the type is not in the model. + + + + + Performs o-space loading for the type and throws if the type is not in the model. + + Type of the entity. + + + + Returns true if the given entity type does not have EdmEntityTypeAttribute but is in + an assembly that has EdmSchemaAttribute. This indicates mixing of POCO and EOCO in the + same assembly, which is something that we don't support. + + + + + Determines whether or not the given clrType is mapped to a complex type. Assumes o-space loading has happened. + + + + + Updates the cache of types to entity sets either for the first time or after potentially + doing some o-space loading. + + + + + The public context instance that owns this internal context. + + + + + Returns the underlying . + + + + + Gets the temp object context, or null if none has been set. + + The temp object context. + + + + The compiled model created from the Code First pipeline, or null if Code First was + not used to create this context. + Causes the Code First pipeline to be run to create the model if it has not already been + created. + + + + + Set to true when a database initializer is performing some actions, such as creating or deleting + a database, or seeding the database. + + + + + Gets the default database initializer to use for this context if no other has been registered. + For code first this property returns a instance. + For database/model first, this property returns null. + + The default initializer. + + + + Gets or sets a value indicating whether lazy loading is enabled. + + + + + Gets or sets a value indicating whether proxy creation is enabled. + + + + + Gets or sets a value indicating whether DetectChanges is called automatically in the API. + + + + + Gets or sets a value indicating whether to validate entities when is called. + + + + + True if the context has been disposed. + + + + + The connection underlying this context. Accessing this property does not cause the context + to be initialized, only its connection. + + + + + The connection string as originally applied to the context. This is used to perform operations + that need the connection string in a non-mutated form, such as with security info still intact. + + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries, + database intializers and connection strings. + + + + + Gets or sets the provider details to be used when building the EDM model. + + + + + Gets the name of the underlying connection string. + + + + + Gets the provider name bsing used either using a cached value or getting it from + the DbConnection in use. + + + + + Gets or sets a custom OnModelCreating action. + + + + + Gets the DatabaseOperations instance to use to perform Create/Delete/Exists operations + against the database. + Note that this virtual property can be mocked to help with unit testing. + + + + + Gets instance used to create validators and validation contexts. + This property is virtual to allow mocking. + + + + + For mocking. + + + + + Constructs an for an already existing . + + The owner . + The existing . + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Does nothing, since the already exists. + + + + + Does nothing since the database is always considered initialized if the was created + from an existing . + + + + + Does nothing since the database is always considered initialized if the was created + from an existing . + + + + + Does nothing since the database is always considered initialized if the was created + from an existing . + + + + + Disposes the context. The underlying is also disposed if it is owned. + + + + + + + + Returns the underlying . + + + + + Gets the default database initializer to use for this context if no other has been registered. + For code first this property returns a instance. + For database/model first, this property returns null. + + The default initializer. + + + + The connection underlying this context. + + + + + The connection string as originally applied to the context. This is used to perform operations + that need the connection string in a non-mutated form, such as with security info still intact. + + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets a value indicating whether lazy loading is enabled. This is just a wrapper + over the same flag in the underlying . + + + + + Gets or sets a value indicating whether proxy creation is enabled. This is just a wrapper + over the same flag in the underlying ObjectContext. + + + + + An implementation of that represents a clone of another + dictionary. That is, all the property values have been been copied into this dictionary. + + + + + The internal class used to implement . + This internal class allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal context with which the entity of complex object is associated. + The type of the entity or complex object. + If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object. + + + + Implemented by subclasses to get the dictionary item for a given property name. + Checking that the name is valid should happen before this method is called such + that subclasses do not need to perform the check. + + Name of the property. + An item for the given name. + + + + Creates an object of the underlying type for this dictionary and hydrates it with property + values from this dictionary. + + The properties of this dictionary copied into a new object. + + + + Creates an instance of the underlying type for this dictionary, which may either be an entity type (in which + case CreateObject on the context is used) or a non-entity type (in which case the empty constructor is used.) + In either case, app domain cached compiled delegates are used to do the creation. + + + + + Sets the values of this dictionary by reading values out of the given object. + The given object must be of the type that this dictionary is based on. + + The object to read values from. + + + + Creates a new dictionary containing copies of all the properties in this dictionary. + Changes made to the new dictionary will not be reflected in this dictionary and vice versa. + + A clone of this dictionary. + + + + Sets the values of this dictionary by reading values from another dictionary. + The other dictionary must be based on the same type as this dictionary, or a type derived + from the type for this dictionary. + + The dictionary to read values from. + + + + Gets the dictionary item for the property with the given name. + This method checks that the given name is valid. + + The property name. + The item. + + + + Sets the value of the property only if it is different from the current value and is not + an invalid attempt to set a complex property. + + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + Gets or sets the value of the property with the specified property name. + The value may be a nested instance of this class. + + The property name. + The value of the property. + + + + Gets the entity type of complex type that this dictionary is based on. + + The type of the object underlying this dictionary. + + + + Gets the internal context with which the underlying entity or complex type is associated. + + The internal context. + + + + Gets a value indicating whether the object for this dictionary is an entity or a complex object. + + true if this this is a dictionary for an entity; false if it is a dictionary for a complex object. + + + + Initializes a new instance of the class by copying + values from the given dictionary. + + The dictionary to clone. + If non-null, then the values for the new dictionary are taken from this record rather than from the original dictionary. + + + + Gets the dictionary item for a given property name. + + Name of the property. + An item for the given name. + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + An implementation of for an item in a . + + + + + Represents an item in an representing a property name/value. + + + + + Gets or sets the value of the property represented by this item. + + The value. + + + + Gets the name of the property. + + The name. + + + + Gets a value indicating whether this item represents a complex property. + + true If this instance represents a complex property; otherwise, false. + + + + Gets the type of the underlying property. + + The property type. + + + + Initializes a new instance of the class. + + The name. + The value. + The type. + If set to true this item represents a complex property. + + + + Gets or sets the value of the property represented by this item. + + The value. + + + + Gets the name of the property. + + The name. + + + + Gets a value indicating whether this item represents a complex property. + + + true If this instance represents a complex property; otherwise, false. + + + + + Gets the type of the underlying property. + + The property type. + + + + An implementation of that is based on an existing + instance. + + + + + Initializes a new instance of the class. + + The internal context. + The type. + The data record. + If set to true this is a dictionary for an entity, otherwise it is a dictionary for a complex object. + + + + Gets the dictionary item for a given property name. + + Name of the property. + An item for the given name. + + + + Gets the set of names of all properties in this dictionary as a read-only set. + + The property names. + + + + An implementation of for an item in a . + + + + + Initializes a new instance of the class. + + The data record. + The ordinal. + The value. + + + + Gets or sets the value of the property represented by this item. + + The value. + + + + Gets the name of the property. + + The name. + + + + Gets a value indicating whether this item represents a complex property. + + + true If this instance represents a complex property; otherwise, false. + + + + + Gets the type of the underlying property. + + The property type. + + + + This is version of an internal interface that already exists in System.Data.Entity that + is implemented by . Using this interface allows state + entries to be mocked for unit testing. The plan is to remove this version of the + interface and use the one in System.Data.Entity once we roll into the framework. + Note that some members may need to be added to the interface in the framework when + we combine the two. + + + + + The internal class used to implement and + . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Base class for and + containing common code for collection and reference navigation property entries. + + + + + Base class for all internal entries that represent different kinds of properties. + + + + + Initializes a new instance of the class. + + The internal entity entry. + The member metadata. + + + + Validates this property. + + A sequence of validation errors for this property. Empty if no errors. Never null. + + + + Creates a new non-generic backed by this internal entry. + The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The actual subtype of the DbMemberEntry created depends on the metadata of this internal entry. + + The type of the entity. + The type of the property. + The new entry. + + + + Gets the property name. + The property is virtual to allow mocking. + + The property name. + + + + Gets or sets the current value of the navigation property. + + The current value. + + + + Gets the internal entity entry property belongs to. + This property is virtual to allow mocking. + + The internal entity entry. + + + + Gets the entry metadata. + + The entry metadata. + + + + Initializes a new instance of the class. + + The internal entity entry. + The navigation metadata. + + + + Calls Load on the underlying . + + + + + Uses CreateSourceQuery on the underlying to create a query for this + navigation property. + + + + + Gets the navigation property value from the object. + + The entity. + The navigation property value. + + + + Validates that the owning entity entry is associated with an underlying and + is not just wrapping a non-attached entity. + If the entity is not detached, then the RelatedEnd for this navigation property is obtained. + + + + + Calls IsLoaded on the underlying . + + + + + Gets the related end, which will be null if the entity is not being tracked. + + The related end. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references or the collection of references + for a collection property. + This property is virtual so that it can be mocked. + + The current value. + + + + Gets a delegate that can be used to get the value of the property directly from the entity. + Returns null if the property does not have an accessible getter. + + The getter delegate, or null. + + + + Gets a delegate that can be used to set the value of the property directly on the entity. + Returns null if the property does not have an accessible setter. + + The setter delegate, or null. + + + + Initializes a new instance of the class. + + The internal entity entry. + The navigation metadata. + + + + Gets the navigation property value from the object. + Since for a collection the related end is an , it means + that the internal representation of the navigation property is just the related end. + + The entity. + The navigation property value. + + + + Creates a new non-generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The type of the entity. + The type of the property. + The new entry. + + + + Creates a new generic backed by this internal entry. + The actual subtype of the DbCollectionEntry created depends on the metadata of this internal entry. + + The type of the entity. + The type of the element. + The new entry. + + + + Creates a object for the given entity type + and collection element type. + + The type of the entity. + The type of the property. + Type of the element. + The set. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references or the collection of references + for a collection property. + + The current value. + + + + The internal class used to implement + and . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal context. + The state entry. + + + + Initializes a new instance of the class for an + entity which may or may not be attached to the context. + + The internal context. + The entity. + + + + Queries the database for copies of the values of the tracked entity as they currently exist in the database. + + The store values. + + + + Appends a query for the properties in the entity to the given string builder that is being used to + build the eSQL query. This method may be called recursively to query for all the sub-properties of + a complex property. + + The query builder. + The qualifier with which to prefix each property name. + The dictionary that acts as a template for the properties to query. + + + + Validates that a dictionary can be obtained for the state of the entity represented by this entry. + + The method name being used to request a dictionary. + The state that is invalid for the request being processed. + + + + Calls Refresh with StoreWins on the underlying state entry. + + + + + Gets an internal object representing a reference navigation property. + This method is virtual to allow mocking. + + The navigation property. + The type of entity requested, which may be 'object' or null if any type can be accepted. + The entry. + + + + Gets an internal object representing a collection navigation property. + This method is virtual to allow mocking. + + The navigation property. + The type of entity requested, which may be 'object' or null f any type can be accepted. + The entry. + + + + Gets an internal object representing a navigation, scalar, or complex property. + This method is virtual to allow mocking. + + Name of the property. + The type of entity requested, which may be 'object' if any type can be accepted. + The entry. + + + + Gets an internal object representing a scalar or complex property. + This method is virtual to allow mocking. + + The property. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Gets an internal object representing a scalar or complex property. + The property may be a nested property on the given . + + The parent property entry, or null if this is a property directly on the entity. + Name of the property. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Gets an internal object representing a scalar or complex property. + The property may be a nested property on the given . + + The parent property entry, or null if this is a property directly on the entity. + Name of the property. + The property split out into its parts. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Checks that the given property name is a navigation property and is either a reference property or + collection property according to the value of requireCollection. + + + + + Gets metadata for the given property if that property is a navigation property or returns null + if it is not a navigation property. + + Name of the property. + Navigation property metadata or null. + + + + Gets the type of entity or entities at the target end of the given navigation property. + + The navigation property. + The CLR type of the entity or entities at the other end. + + + + Gets the related end for the navigation property with the given name. + + The navigation property. + + + + + Uses EDM metadata to validate that the property name exists in the model and represents a scalar or + complex property or exists in the CLR type. + This method is public and virtual so that it can be mocked. + + The property name. + The type on which the property is declared. + The type of object requested, which may be 'object' if any type can be accepted. + Metadata for the property. + + + + Splits the given property name into parts delimited by dots. + + Name of the property. + The parts of the name. + + + + Validates that this entry is associated with an underlying and + is not just wrapping a non-attached entity. + + + + + Validates entity represented by this entity entry. + This method is virtual to allow mocking. + + User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. + containing validation result. Never null. + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Determines whether the specified is equal to this instance. + Two instances are considered equal if they are both entries for + the same entity on the same . + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Gets the tracked entity. + This property is virtual to allow mocking. + + The entity. + + + + Gets or sets the state of the entity. + + The state. + + + + Gets the current property values for the tracked entity represented by this object. + This property is virtual to allow mocking. + + The current values. + + + + Gets the original property values for the tracked entity represented by this object. + The original values are usually the entity's property values as they were when last queried from + the database. + This property is virtual to allow mocking. + + The original values. + + + + Checks whether or not this entry is associated with an underlying or + is just wrapping a non-attached entity. + + + + + Gets the type of the entity being tracked. + + The type of the entity. + + + + Gets the c-space entity type for this entity from the EDM. + + + + + Gets the underlying object state entry. + + + + + Gets the internal context. + + The internal context. + + + + A concrete implementation of used for properties of entities. + + + + + The internal class used to implement and + . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal entry. + The property info. + + + + Creates a delegate that will get the value of this property. + + The delegate. + + + + Creates a delegate that will set the value of this property. + + The delegate. + + + + Returns true if the property of the entity that this property is ultimately part + of is set as modified. If this is a property of an entity, then this method returns + true if the property is modified. If this is a property of a complex object, then + this method returns true if the top-level complex property on the entity is modified. + + True if the entity property is modified. + + + + Sets the property of the entity that this property is ultimately part of to modified. + If this is a property of an entity, then this method marks it as modified. + If this is a property of a complex object, then this method marks the top-level + complex property as modified. + + + + + Rejects changes to this property. + If this is a property of a complex object, then this method rejects changes to the top-level + complex property. + + + + + Walks the tree from a property of a complex property back up to the top-level + complex property and then checks whether or not DetectChanges still considers + the complex property to be modified. If it does not, then the complex property + is marked as Unchanged. + + + + + Throws if the user attempts to set a complex property to null. + + The value. + + + + Sets the given value directly onto the underlying entity object. + + The value. + True if the property had a setter that we could attempt to call; false if no setter was available. + + + + Sets the property value, potentially by setting individual nested values for a complex + property. + + The value. + + + + Gets an internal object representing a scalar or complex property of this property, + which must be a mapped complex property. + This method is virtual to allow mocking. + + The property. + The type of object requested, which may be null or 'object' if any type can be accepted. + if set to true then the found property must be a complex property. + The entry. + + + + Validates that the owning entity entry is associated with an underlying and + is not just wrapping a non-attached entity. + + + + + Creates a new non-generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The type of the entity. + The type of the property. + The new entry. + + + + Returns parent property, or null if this is a property on the top-level entity. + + + + + Gets the current values of the parent entity or complex property. + That is, the current values that contains the value for this property. + + The parent current values. + + + + Gets the original values of the parent entity or complex property. + That is, the original values that contains the value for this property. + + The parent original values. + + + + A delegate that reads the value of this property. + May be null if there is no way to set the value due to missing accessors on the type. + + + + + A delegate that sets the value of this property. + May be null if there is no way to set the value due to missing accessors on the type. + + + + + Gets or sets the original value. + Note that complex properties are returned as objects, not property values. + + + + + Gets or sets the current value. + Note that complex properties are returned as objects, not property values. + Also, for complex properties, the object returned is the actual complex object from the entity + and setting the complex object causes the actual object passed to be set onto the entity. + + The current value. + + + + Gets or sets a value indicating whether this property is modified. + + + + + Gets the property metadata. + + The property metadata. + + + + Initializes a new instance of the class. + + The internal entry. + The property info. + + + + Creates a delegate that will get the value of this property. + + The delegate. + + + + Creates a delegate that will set the value of this property. + + The delegate. + + + + Returns true if the property of the entity that this property is ultimately part + of is set as modified. Since this is a property of an entity this method returns + true if the property is modified. + + True if the entity property is modified. + + + + Sets the property of the entity that this property is ultimately part of to modified. + Since this is a property of an entity this method marks it as modified. + + + + + Rejects changes to this property. + + + + + Walks the tree from a property of a complex property back up to the top-level + complex property and then checks whether or not DetectChanges still considers + the complex property to be modified. If it does not, then the complex property + is marked as Unchanged. + + + + + Returns parent property, or null if this is a property on the top-level entity. + + + + + Gets the current values of the parent entity. + That is, the current values that contains the value for this property. + + The parent current values. + + + + Gets the original values of the parent entity. + That is, the original values that contains the value for this property. + + The parent original values. + + + + A concrete implementation of used for properties of complex objects. + + + + + Initializes a new instance of the class. + + The parent property entry. + The property metadata. + + + + Creates a delegate that will get the value of this property. + + The delegate. + + + + Creates a delegate that will set the value of this property. + + The delegate. + + + + Returns true if the property of the entity that this property is ultimately part + of is set as modified. Since this is a property of a complex object + this method returns true if the top-level complex property on the entity is modified. + + True if the entity property is modified. + + + + Sets the property of the entity that this property is ultimately part of to modified. + Since this is a property of a complex object this method marks the top-level + complex property as modified. + + + + + Rejects changes to this property. + Since this is a property of a complex object this method rejects changes to the top-level + complex property. + + + + + Walks the tree from a property of a complex property back up to the top-level + complex property and then checks whether or not DetectChanges still considers + the complex property to be modified. If it does not, then the complex property + is marked as Unchanged. + + + + + Returns parent property, or null if this is a property on the top-level entity. + + + + + Gets the current values of the parent complex property. + That is, the current values that contains the value for this property. + + The parent current values. + + + + Gets the original values of the parent complex property. + That is, the original values that contains the value for this property. + + The parent original values. + + + + The internal class used to implement , + and . + This internal class contains all the common implementation between the generic and non-generic + entry classes and also allows for a clean internal factoring without compromising the public API. + + + + + Initializes a new instance of the class. + + The internal entity entry. + The navigation metadata. + + + + Gets the navigation property value from the object. + For reference navigation properties, this means getting the value from the + object. + + The entity. + The navigation property value. + + + + Sets the navigation property value onto the object. + For reference navigation properties, this means setting the value onto the + object. + + The entity. + The value. + + + + Sets the given value on the given which must be an + . + This method is setup in such a way that it can easily be used by CreateDelegate without any + dynamic code generation needed. + + The type of the related entity. + The entity reference. + The value. + + + + Creates a new non-generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The new entry. + + + + Creates a new generic backed by this internal entry. + The runtime type of the DbMemberEntry created will be or a subtype of it. + + The type of the entity. + The type of the property. + The new entry. + + + + Gets or sets the current value of the navigation property. The current value is + the entity that the navigation property references or the collection of references + for a collection property. + + The current value. + + + + Contains metadata about a member of an entity type or complex type. + + + + + Initializes a new instance of the class. + + The type that the property is declared on. + Type of the property. + The property name. + + + + Creates a new the runtime type of which will be + determined by the metadata. + + The entity entry to which the member belongs. + The parent property entry if the new entry is nested, otherwise null. + The new entry. + + + + Gets the type of the member for which this is metadata. + + The type of the member entry. + + + + Gets the name of the property. + + The name. + + + + Gets the type of the entity or complex object that on which the member is declared. + + The type that the member is declared on. + + + + Gets the type of element for the property, which for non-collection properties + is the same as the MemberType and which for collection properties is the type + of element contained in the collection. + + The type of the element. + + + + Gets the type of the member, which for collection properties is the type + of the collection rather than the type in the collection. + + The type of the member. + + + + The types of member entries supported. + + + + + Initializes a new instance of the class. + + The type that the property is declared on. + Type of the property. + The property name. + if set to true this is a collection nav prop. + + + + Creates a new the runtime type of which will be + determined by the metadata. + + The entity entry to which the member belongs. + The parent property entry which will always be null for navigation entries. + The new entry. + + + + Gets the type of the member for which this is metadata. + + The type of the member entry. + + + + Gets the type of the member, which for collection properties is the type + of the collection rather than the type in the collection. + + The type of the member. + + + + Contains metadata for a property of a complex object or entity. + + + + + Initializes a new instance of the class. + + The type that the property is declared on. + Type of the property. + The property name. + if set to true the property is mapped in the EDM. + if set to true the property is a complex property. + + + + Validates that the given name is a property of the declaring type (either on the CLR type or in the EDM) + and that it is a complex or scalar property rather than a nav property and then returns metadata about + the property. + + The internal context. + The type that the property is declared on. + The type of property requested, which may be 'object' if any type can be accepted. + Name of the property. + Metadata about the property, or null if the property does not exist or is a navigation property. + + + + Creates a new the runtime type of which will be + determined by the metadata. + + The entity entry to which the member belongs. + The parent property entry if the new entry is nested, otherwise null. + The new entry. + + + + Gets a value indicating whether this is a complex property. + That is, not whether or not this is a property on a complex object, but rather if the + property itself is a complex property. + + + true if this instance is complex; otherwise, false. + + + + + Gets the type of the member for which this is metadata. + + The type of the member entry. + + + + Gets a value indicating whether this instance is mapped in the EDM. + + true if this instance is mapped; otherwise, false. + + + + Gets the type of the member, which for collection properties is the type + of the collection rather than the type in the collection. + + The type of the member. + + + + An implementation of that wraps an existing set but makes + it read-only. + + + + + + Initializes a new instance of the class wrapped around + another existing set. + + The existing set. + + + + This is a temporary adapter class that wraps an and + presents it as an . This class will be removed once + we roll into the System.Data.Entity assembly. See + for more details. + + + + + Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. + + + + + Creates a new pair of the given EntitySet and BaseType. + + + + + The EntitySet part of the pair. + + + + + The BaseType part of the pair. + + + + + Helper class that extends Tuple to give the Item1 and Item2 properties more meaningful names. + + + + + Creates a new pair of the given database initializer delegate and a flag + indicating whether or not it is locked. + + + + + The initializer delegate. + + + + + A flag indicating whether or not the initializer is locked and should not be changed. + + + + + Represents a raw SQL query against the context for any type where the results are never + associated with an entity set and are never tracked. + + + + + Represents a raw SQL query against the context that may be for entities in an entity set + or for some other non-entity element type. + + + + + Initializes a new instance of the class. + + The SQL. + The parameters. + + + + If the query is would track entities, then this method returns a new query that will + not track entities. + + A no-tracking query. + + + + Executes the query and returns an enumerator for the results. + + The query results. + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Gets the SQL query string, + + The SQL query. + + + + Gets the parameters. + + The parameters. + + + + Returns false. + + false. + + + + Initializes a new instance of the class. + + The internal context. + Type of the element. + The SQL. + The parameters. + + + + Returns this query since it can never be a tracking query. + + This instance. + + + + Executes the query and returns an enumerator for the results. + + The query results. + + + + Generic wrapper around to allow results to be + returned as generic + + The type of the element. + + + + Executes the query and returns an enumerator for the elements. + + An + + object that can be used to iterate through the elements. + + + + Executes the query and returns an enumerator for the elements. + + + An object that can be used to iterate through the elements. + + + + + Returns a that contains the SQL string that was set + when the query was created. The parameters are not included. + + + A that represents this instance. + + + + + Throws an exception indicating that binding directly to a store query is not supported. + + + Never returns; always throws. + + + + + Returns false. + + false. + + + + Represents a raw SQL query against the context for entities in an entity set. + + + + + Initializes a new instance of the class. + + The set. + The SQL. + if set to true then the entities will not be tracked. + The parameters. + + + + If the query is would track entities, then this method returns a new query that will + not track entities. + + A no-tracking query. + + + + Executes the query and returns an enumerator for the results. + + The query results. + + + + Gets a value indicating whether this instance is set to track entities or not. + + + true if this instance is no-tracking; otherwise, false. + + + + + A LazyInternalConnection object manages information that can be used to create a DbConnection object and + is responsible for creating that object and disposing it. + + + + + Creates a new LazyInternalConnection using convention to calculate the connection. + The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed. + + Either the database name or a connection string. + + + + Creates a new LazyInternalConnection targeting a specific database. + The DbConnection object will be created lazily on demand and will be disposed when the LazyInternalConnection is disposed. + + The connection to target. + + + + Creates an from metadata in the connection. This method must + only be called if ConnectionHasModel returns true. + + The newly created context. + + + + Disposes the underlying DbConnection. + Note that dispose actually puts the LazyInternalConnection back to its initial state such that + it can be used again. + + + + + + Searches the app.config/web.config file for a connection that matches the given name. + The connection might be a store connection or an EF connection. + + The connection name. + + True if a connection from the app.config file was found and used. + + + + Attempts to locate a connection entry in the configuration based on the supplied context name. + + The name to search for. + The configuration to search in. + Connection string if found, otherwise null. + + + + Initializes the connection based on a connection string. + + The settings to initialize from. + + + + Returns the underlying DbConnection, creating it first if it does not already exist. + + + + + Returns the origin of the underlying connection string. + + + + + Gets the name of the underlying connection string. + + + + + Returns a key consisting of the connection type and connection string. + If this is an EntityConnection then the metadata path is included in the key returned. + + + + + + + + + Gets a value indicating whether the connection is an EF connection which therefore contains + metadata specifying the model, or instead is a store connection, in which case it contains no + model info. + + true if connection contain model info; otherwise, false. + + + + Gets a value indicating if the lazy connection has been initialized. + + + + + A is a concrete type that will lazily create the + underlying when needed. The created is owned by the + internal context and will be disposed when the internal context is disposed. + + + + + Constructs a for the given owner that will be initialized + on first use. + + The owner . + Responsible for creating a connection lazily when the context is used for the first time. + The model, or null if it will be created by convention + + + + Returns the underlying without causing the underlying database to be created + or the database initialization strategy to be executed. + This is used to get a context that can then be used for database creation/initialization. + + + + + Saves all changes made in this context to the underlying database, but only if the + context has been initialized. If the context has not been initialized, then this + method does nothing because there is nothing to do; in particular, it does not + cause the context to be initialized. + + The number of objects written to the underlying database. + + + + Disposes the context. The underlying is also disposed. + The connection to the database ( object) is also disposed if it was created by + the context, otherwise it is not disposed. + + + + + + + + Initializes the underlying . + + + + + Creates an immutable, cacheable representation of the model defined by this builder. + This model can be used to create an or can be passed to a + constructor to create a for this model. + + + + + + Creates and configures the instance that will be used to build the + . + + The builder. + + + + Marks the database as having not been initialized. This is called when the app calls Database.Delete so + that the database if the app attempts to then use the database again it will be re-initialized automatically. + + + + + Marks the database as having been initialized without actually running the . + + + + + Runs the unless it has already been run or there + is no initializer for this context type in which case this method does nothing. + + + + + Performs some action (which may do nothing) in such a way that it is guaranteed only to be run + once for the model and connection in this app domain, unless it fails by throwing an exception, + in which case it will be re-tried next time the context is initialized. + + The action. + + + + Returns the underlying . + + + + + The compiled model created from the Code First pipeline, or null if Code First was + not used to create this context. + Causes the Code First pipeline to be run to create the model if it has not already been + created. + + + + + The actually being used, which may be the + temp context for initialization or the real context. + + + + + The connection underlying this context. Accessing this property does not cause the context + to be initialized, only its connection. + + + + + The connection string as originally applied to the context. This is used to perform operations + that need the connection string in a non-mutated form, such as with security info still intact. + + + + + Returns the origin of the underlying connection string. + + + + + Gets or sets an object representing a config file used for looking for DefaultConnectionFactory entries + and connection strings. + + + + + Gets the name of the underlying connection string. + + + + + Gets or sets the provider details to be used when building the EDM model. + + + + + + + + Gets or sets a custom OnModelCreating action. + + + + + Gets the default database initializer to use for this context if no other has been registered. + For code first this property returns a instance. + For database/model first, this property returns null. + + The default initializer. + + + + Gets or sets a value indicating whether lazy loading is enabled. + If the exists, then this property acts as a wrapper over the flag stored there. + If the has not been created yet, then we store the value given so we can later + use it when we create the . This allows the flag to be changed, for example in + a DbContext constructor, without it causing the to be created. + + + + + Gets or sets a value indicating whether proxy creation is enabled. + If the ObjectContext exists, then this property acts as a wrapper over the flag stored there. + If the ObjectContext has not been created yet, then we store the value given so we can later + use it when we create the ObjectContext. This allows the flag to be changed, for example in + a DbContext constructor, without it causing the ObjectContext to be created. + + + + + A wrapping query provider that performs expression transformation and then delegates + to the provider. The objects returned are always instances + of . This provider is associated with generic objects. + + + + + Creates a provider that wraps the given provider. + + The provider to wrap. + + + + Performs expression replacement and then delegates to the wrapped provider before wrapping + the returned as a . + + + + + Performs expression replacement and then delegates to the wrapped provider before wrapping + the returned as a where T is determined + from the element type of the ObjectQuery. + + + + + By default, calls the same method on the wrapped provider. + + + + + By default, calls the same method on the wrapped provider. + + + + + Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of + the given ObjectQuery. + + + + + Performs expression replacement and then delegates to the wrapped provider to create an + . + + + + + Wraps the given as a where T is determined + from the element type of the ObjectQuery. + + + + + Gets the internal context. + + The internal context. + + + + A LINQ expression visitor that finds uses with equivalent + instances. + + + + + Replaces calls to DbContext.Set() with an expression for the equivalent . + + The node to replace. + A new node, which may have had the replacement made. + + + + Replaces a or property with a constant expression + for the underlying . + + The node to replace. + A new node, which may have had the replacement made. + + + + Processes the fields in each constant expression and replaces instances with + the underlying ObjectQuery instance. This handles cases where the query has a closure + containing values. + + + + + Gets a value from the given member, or returns null + if the member doesn't contain a DbContext instance. + + The expression for the object for the member, which may be null for a static member. + The member. + The context or null. + + + + Gets the instance from the given instance or static member, returning null + if the member does not contain a DbContext instance. + + The member. + The value of the object to get the instance from, or null if the member is static. + The context instance or null. + + + + Takes a or and creates an expression + for the underlying . + + + + + Takes a or and extracts the underlying . + + + + + A non-generic interface implemented by that allows operations on + any query object without knowing the type to which it applies. + + + + + An interface implemented by . + + The type of the element. + + + + A non-generic interface implemented by that allows operations on + any set object without knowing the type to which it applies. + + + + + An interface implemented by . + + + + + An instance of this internal class is created whenever an instance of the public + class is needed. This allows the public surface to be non-generic, while the runtime type created + still implements . + + The type of the element. + + + + Creates a new query that will be backed by the given internal query object. + + The backing query. + + + + See comments in . + + + + + See comments in . + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the underlying internal query object. + + The internal query. + + + + An instance of this internal class is created whenever an instance of the public + class is needed. This allows the public surface to be non-generic, while the runtime type created + still implements . + + The type of the entity. + + + + Creates a new set that will be backed by the given internal set. + + The internal set. + + + + Creates an instance of this class. This method is used with CreateDelegate to cache a delegate + that can create a generic instance without calling MakeGenericType every time. + + + The internal set to wrap, or null if a new internal set should be created. + The set. + + + + See comments in . + + + + + See comments in . + + + + + See comments in . + + + + + See comments in . + + + + + See comments in . + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the underlying internal query object. + + The internal query. + + + + Gets the underlying internal set. + + The internal set. + + + + See comments in . + + + + + An InternalQuery underlies every instance of DbSet and DbQuery. It acts to lazily initialize a InternalContext as well + as an ObjectQuery and EntitySet the first time that it is used. The InternalQuery also acts to expose necessary + information to other parts of the design in a controlled manner without adding a lot of internal methods and + properties to the DbSet and DbQuery classes themselves. + + The type of entity to query for. + + + + Creates a new query that will be backed by the given InternalContext. + + The backing context. + + + + Creates a new internal query based on the information in an existing query together with + a new underlying ObjectQuery. + + + + + Resets the query to its uninitialized state so that it will be re-lazy initialized the next + time it is used. This allows the ObjectContext backing a DbContext to be switched out. + + + + + Updates the underlying ObjectQuery with the given include path. + + The include path. + A new query containing the defined include path. + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects + so that the query can be used. + + + + + Returns a representation of the underlying query, equivalent + to ToTraceString on ObjectQuery. + + + The query string. + + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + The underlying InternalContext. + + + + + The underlying ObjectQuery. + + + + + The underlying ObjectQuery. + + + + + The LINQ query expression. + + + + + The LINQ query provider for the underlying . + + + + + The IQueryable element type. + + + + + Creates a new query that will be backed by the given InternalContext. + + The backing context. + + + + Resets the set to its uninitialized state so that it will be re-lazy initialized the next + time it is used. This allows the ObjectContext backing a DbContext to be switched out. + + + + + Finds an entity with the given primary key values. + If an entity with the given primary key values exists in the context, then it is + returned immediately without making a request to the store. Otherwise, a request + is made to the store for an entity with the given primary key values and this entity, + if found, is attached to the context and returned. If no entity is found in the + context or the store, then null is returned. + + + The ordering of composite key values is as defined in the EDM, which is in turn as defined in + the designer, by the Code First fluent API, or by the DataMember attribute. + + The values of the primary key for the entity to be found. + The entity found, or null. + Thrown if multiple entities exist in the context with the primary key values given. + Thrown if the type of entity is not part of the data model for this context. + Thrown if the types of the key values do not match the types of the key values for the entity type to be found. + Thrown if the context has been disposed. + + + + Finds an entity in the state manager with the given primary key values, or returns null + if no such entity can be found. This includes looking for Added entities with the given + key values. + + + + + Finds an entity in the store with the given primary key values, or returns null + if no such entity can be found. This code is adapted from TryGetObjectByKey to + include type checking in the query. + + + + + Attaches the given entity to the context underlying the set. That is, the entity is placed + into the context in the Unchanged state, just as if it had been read from the database. + + + Attach is used to repopulate a context with an entity that is known to already exist in the database. + SaveChanges will therefore not attempt to insert an attached entity into the database because + it is assumed to already be there. + Note that entities that are already in the context in some other state will have their state set + to Unchanged. Attach is a no-op if the entity is already in the context in the Unchanged state. + This method is virtual so that it can be mocked. + + The entity to attach. + + + + Adds the given entity to the context underlying the set in the Added state such that it will + be inserted into the database when SaveChanges is called. + + + Note that entities that are already in the context in some other state will have their state set + to Added. Add is a no-op if the entity is already in the context in the Added state. + This method is virtual so that it can be mocked. + + The entity to add. + + + + Marks the given entity as Deleted such that it will be deleted from the database when SaveChanges + is called. Note that the entity must exist in the context in some other state before this method + is called. + + + Note that if the entity exists in the context in the Added state, then this method + will cause it to be detached from the context. This is because an Added entity is assumed not to + exist in the database such that trying to delete it does not make sense. + This method is virtual so that it can be mocked. + + The entity to remove. + + + + This method checks whether an entity is already in the context. If it is, then the state + is changed to the new state given. If it isn't, then the action delegate is executed to + either Add or Attach the entity. + + A delegate to Add or Attach the entity. + The new state to give the entity if it is already in the context. + The entity. + Name of the method. + + + + Creates a new instance of an entity for the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The entity instance, which may be a proxy. + + + + Creates a new instance of an entity for the type of this set or for a type derived + from the type of this set. + Note that this instance is NOT added or attached to the set. + The instance returned will be a proxy if the underlying context is configured to create + proxies and the entity type meets the requirements for creating a proxy. + + The type of entity to create. + The entity instance, which may be a proxy. + + + + Performs lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects + so that the query can be used. + This method is virtual so that it can be mocked. + + + + + Attempts to perform lazy initialization of the underlying ObjectContext, ObjectQuery, and EntitySet objects + so that o-space loading has happened and the query can be used. This method doesn't throw if the type + for the set is not mapped. + + + + + Creates an underlying for this set. + + if set to true then the query is set to be no-tracking. + The query. + + + + Returns a representation of the underlying query, equivalent + to ToTraceString on ObjectQuery. + + + The query string. + + + + + Updates the underlying ObjectQuery with the given include path. + + The include path. + A new query containing the defined include path. + + + + Returns a new query where the entities returned will not be cached in the . + + A new query with NoTracking applied. + + + + Executes the given SQL query against the database materializing entities into the entity set that + backs this set. + + The SQL quey. + if true then the entities are not tracked, otherwise they are. + The parameters. + The query results. + + + + Gets the enumeration of this query causing it to be executed against the store. + + An enumerator for the query + + + + Gets the ObservableCollection representing the local view for the set based on this query. + + + + + The underlying ObjectQuery. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying EntitySet name. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying EntitySet name, quoted for ESQL. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying EntitySet. Accessing this property will trigger lazy initialization of the query. + + + + + The base type for the underlying entity set. Accessing this property will trigger lazy initialization of the query. + + + + + The underlying InternalContext. Accessing this property will trigger lazy initialization of the query. + + + + + The LINQ query expression. + + + + + The LINQ query provider for the underlying . + + + + + A wrapping query provider that performs expression transformation and then delegates + to the provider. The objects returned + are always instances of when the generic CreateQuery method is + used and are instances of when the non-generic CreateQuery method + is used. This provider is associated with non-generic objects. + + + + + Creates a provider that wraps the given provider. + + The provider to wrap. + + + + Performs expression replacement and then delegates to the wrapped provider before wrapping + the returned as a . + + + + + Delegates to the wrapped provider except returns instances of . + + + + + Creates an appropriate generic IQueryable using Reflection and the underlying ElementType of + the given ObjectQuery. + + + + + Extends to create a sortable binding list that stays in + sync with an underlying . That is, when items are added + or removed from the binding list, they are added or removed from the ObservableCollecion, and + vice-versa. + + The list element type. + + + + An extended BindingList implementation that implements sorting. + This class was adapted from the LINQ to SQL class of the same name. + + The element type. + + + + Initializes a new instance of the class with the + the given underlying list. Note that sorting is dependent on having an actual + rather than some other ICollection implementation. + + The list. + + + + Applies sorting to the list. + + The property to sort by. + The sort direction. + + + + Stops sorting. + + + + + Gets a value indicating whether this list is sorted. + + + true if this instance is sorted; otherwise, false. + + + + + Gets the sort direction. + + The sort direction. + + + + Gets the sort property being used to sort. + + The sort property. + + + + Returns true indicating that this list supports sorting. + + true. + + + + Implements comparing for the implementation. + + + + + Initializes a new instance of the class + for sorting the list. + + The property to sort by. + The sort direction. + + + + Compares two instances of items in the list. + + The left item to compare. + The right item to compare. + + + + + Determines whether this instance can sort for the specified type. + + The type. + + true if this instance can sort for the specified type; otherwise, false. + + + + + Determines whether this instance can sort for the specified type using IComparable. + + The type. + + true if this instance can sort for the specified type; otherwise, false. + + + + + Determines whether this instance can sort for the specified type using ToString. + + The type. + + true if this instance can sort for the specified type; otherwise, false. + + + + + Initializes a new instance of a binding list backed by the given + + The obervable collection. + + + + Creates a new item to be added to the binding list. + + The new item. + + + + Cancels adding of a new item that was started with AddNew. + + Index of the item. + + + + Removes all items from the binding list and underlying ObservableCollection. + + + + + Ends the process of adding a new item that was started with AddNew. + + Index of the item. + + + + Inserts the item into the binding list at the given index. + + The index. + The item. + + + + Removes the item at the specified index. + + The index. + + + + Sets the item into the list at the given position. + + The index to insert at. + The item. + + + + Event handler to update the binding list when the underlying observable collection changes. + + The sender. + Data indicating how the collection has changed. + + + + Adds the item to the underlying observable collection. + + The item. + + + + Removes the item from the underlying from observable collection. + + The item. + + + + Adapted from to allow the initializer to take an input object and + to do one-time initialization that only has side-effects and doesn't return a value. + + The type of the input. + + + + Initializes a new instance of the class. + + The action. + + + + Performs the action unless it has already been successfully performed before. + + The input to the action; ignored if the action has already succeeded. + + + + Adapted from to allow the initializer to take an input object and + to retry initialization if it has previously failed. + + + This class can only be used to initialize reference types that will not be null when + initialized. + + The type of the input. + The type of the result. + + + + Initializes a new instance of the class. + + The value factory. + + + + Gets the value, possibly by running the initializer if it has not been run before or + if all previous times it ran resulted in exceptions. + + The input to the initializer; ignored if initialization has already succeeded. + The initialized object. + + + + Validates a property of a given EDM complex type. + + + This is a composite validator for a complex property of an entity. + + + + + Validates a property of a given EDM property type. + + + This is a composite validator for a property of an entity or a complex type. + + + + + Simple validators for the corresponding property. + + + + + Name of the property the validator was created for. + + + + + Creates an instance of for a given EDM property. + + The EDM property name. + Validators used to validate the given property. + + + + Validates a property. + + Validation context. Never null. + Property to validate. Never null. + Validation errors as . Empty if no errors. Never null. + + + + + Simple validators for the corresponding property. + + + + + Gets the name of the property the validator was created for. + + + + + The complex type validator. + + + + + Creates an instance of for a given complex property. + + The complex property name. + Validators used to validate the given property. + Complex type validator. + + + + Validates a complex property. + + Validation context. Never null. + Property to validate. Never null. + Validation errors as . Empty if no errors. Never null. + + + + + Validator used to validate a property of a given EDM ComplexType. + + + This is a composite validator. + + + + + Validator used to validate an entity of a given EDM Type. + + + This is a composite validator for an EDM Type. + + + + + Creates an instance for a given EDM type. + + Property validators. + Type level validators. + + + + Validates an instance. + + Entity validation context. Must not be null. + The entry for the complex property. Null if validating an entity. + instance. Never null. + + Protected so it doesn't appear on EntityValidator. + + + + + Validates type properties. Any validation errors will be added to + collection. + + + Validation context. Must not be null. + + + Collection of validation errors. Any validation errors will be added to it. + + The entry for the complex property. Null if validating an entity. + + Note that will be modified by this method. Errors should be only added, + never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations + and a merge of validation error lists per entity. + + + + + Returns a validator for a child property. + + Name of the child property for which to return a validator. + + Validator for a child property. Possibly null if there are no validators for requested property. + + + + + Creates an instance for a given EDM complex type. + + Property validators. + Type level validators. + + + + Validates an instance. + + Entity validation context. Must not be null. + The entry for the complex property. Null if validating an entity. + instance. Never null. + + + + Validates type properties. Any validation errors will be added to + collection. + + + Validation context. Must not be null. + + + Collection of validation errors. Any validation errors will be added to it. + + The entry for the complex property. Null if validating an entity. + + Note that will be modified by this method. Errors should be only added, + never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations + and a merge of validation error lists per entity. + + + + + Contains information needed to validate an entity or its properties. + + + + + The entity being validated or the entity that owns the property being validated. + + + + + Initializes a new instance of EntityValidationContext class. + + + The entity being validated or the entity that owns the property being validated. + + + External contexts needed for validation. + + + + + External context needed for validation. + + + + + Gets the entity being validated or the entity that owns the property being validated. + + + + + Validator used to validate an entity of a given EDM EntityType. + + + This is a top level, composite validator. This is also an entry point to getting an entity + validated as validation of an entity is always started by calling Validate method on this type. + + + + + Creates an instance for a given EDM entity type. + + Property validators. + Entity type level validators. + + + + Validates an entity. + + Entity validation context. Must not be null. + instance. Never null. + + + + Validates type properties. Any validation errors will be added to + collection. + + + Validation context. Must not be null. + + + Collection of validation errors. Any validation errors will be added to it. + + The entry for the complex property. Null if validating an entity. + + Note that will be modified by this method. Errors should be only added, + never removed or changed. Taking a collection as a modifiable parameter saves a couple of memory allocations + and a merge of validation error lists per entity. + + + + + Builds validators based on s specified on entity CLR types and properties + as well as based on presence of implementation on entity and complex + type CLR types. It's not sealed and not static for mocking purposes. + + + + + Builds an for the given . + + The entity entry to build the validator for. + Whether the currently processed type is the target type or one of the ancestor types. + + + for the given . Possibly null + if no validation has been specified for this entity type. + + + + + Builds the validator for a given and the corresponding + . + + The CLR type that corresponds to the EDM complex type. + The EDM complex type that type level validation is built for. + A for the given complex type. May be null if no validation specified. + + + + Extracted method from BuildEntityValidator and BuildComplexTypeValidator + + + + + Build validators for the and the corresponding + or . + + Properties to build validators for. + Non-navigation EDM properties. + Navigation EDM properties. + A list of validators. Possibly empty, never null. + + + + Builds a for the given and the corresponding + . If the property is a complex type, type level validators will be built here as + well. + + The CLR property to build the validator for. + The EDM property to build the validator for. + + for the given . Possibly null + if no validation has been specified for this property. + + + + + Builds a for the given transient . + + The CLR property to build the validator for. + + for the given . Possibly null + if no validation has been specified for this property. + + + + + Builds s for given that derive from + . + + Attributes used to build validators. + + A list of s built from . + Possibly empty, never null. + + + + + Returns all non-static non-indexed CLR properties from the . + + The CLR to get the properties from. + + A collection of CLR properties. Possibly empty, never null. + + + + + Builds validators based on the facets of : + * If .Nullable facet set to false adds a validator equivalent to the RequiredAttribute + * If the .MaxLength facet is specified adds a validator equivalent to the MaxLengthAttribute. + However the validator isn't added if .IsMaxLength has been set to true. + + The CLR property to build the facet validators for. + The property for which facet validators will be created + A collection of validators. + + + + Abstracts simple validators used to validate entities and properties. + + + + + Validates an entity or a property. + + Validation context. Never null. + Property to validate. Can be null for type level validation. + Validation error as. Empty if no errors. Never null. + + + + + Contract for IValidator.Validate method. + + Validation context. + Property. + Nothing - always throws. + + + + Validates entities or complex types implementing IValidatableObject interface. + + + + + Display attribute used to specify the display name for an entity or complex property. + + + + + Validates an entity or a complex type implementing IValidatableObject interface. + This method is virtual to allow mocking. + + Validation context. Never null. + + Property to validate. Null if this is the entity that will be validated. Never null if this + is the complex type that will be validated. + + Validation error as . Empty if no errors. Never null. + + + Note that is used to figure out what needs to be validated. If it not null the complex + type will be validated otherwise the entity will be validated. + Also if this is an IValidatableObject complex type but the instance (.CurrentValue) is null we won't validate + anything and will not return any errors. The reason for this is that Validation is supposed to validate using + information the user provided and not some additional implicit rules. (ObjectContext will throw for operations + that involve null complex properties). + + + + + Validates a property, complex property or an entity using validation attributes the property + or the complex/entity type is decorated with. + + + Note that this class is used for validating primitive properties using attributes declared on the property + (property level validation) and complex properties and entities using attributes declared on the type + (type level validation). + + + + + Display attribute used to specify the display name for a property or entity. + + + + + Validation attribute used to validate a property or an entity. + + + + + Creates an instance of class. + + + Validation attribute used to validate a property or an entity. + + + + + Validates a property or an entity. + + Validation context. Never null. + Property to validate. Null for entity validation. Not null for property validation. + + + Validation errors as . Empty if no errors, never null. + + + + + Used to cache and retrieve generated validators and to create context for validating entities or properties. + + + + + Collection of validators keyed by the entity CLR type. Note that if there's no validation for a given type + it will be associated with a null validator. + + + + + Initializes a new instance of class. + + + + + Returns a validator to validate . + + Entity the validator is requested for. + + to validate . Possibly null if no validation + has been specified for the entity. + + + + + Returns a validator to validate . + + Navigation property the validator is requested for. + + Validator to validate . Possibly null if no validation + has been specified for the requested property. + + + + + Gets a validator for the . + + Entity validator. + Property to get a validator for. + + Validator to validate . Possibly null if there is no validation for the + . + + + For complex properties this method walks up the type hierarchy to get to the entity level and then goes down + and gets a validator for the child property that is an ancestor of the property to validate. If a validator + returned for an ancestor is null it means that there is no validation defined beneath and the method just + propagates (and eventually returns) null. + + + + + Creates for . + + Entity entry for which a validation context needs to be created. + User defined dictionary containing additional info for custom validation. This parameter is optional and can be null. + An instance of class. + + + + + A wrapper around EntityKey that allows key/values pairs that have null values to + be used. This allows Added entities with null key values to be searched for in + the ObjectStateManager. + + + + The key name/key value pairs, where some key values may be null + + + + Creates a new WrappedEntityKey instance. + + The entity set that the key belongs to. + The fully qualified name of the given entity set. + The key values, which may be null or contain null values. + The name of the parameter passed for keyValue by the user, which is used when throwing exceptions. + + + + True if any of the key values are null, which means that the EntityKey will also be null. + + + + + An actual EntityKey, or null if any of the key values are null. + + + + + The key name/key value pairs of the key, in which some of the key values may be null. + + + + + Allows configuration to be performed for an complex type in a model. + + A ComplexTypeConfiguration can be obtained via the ComplexType method on + or a custom type derived from ComplexTypeConfiguration + can be registered via the Configurations property on . + + The complex type to be configured. + + + + Allows configuration to be performed for a type in a model. + + The type to be configured. + + + + Configures a property that is defined on this type. + + The type of the property being configured. + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + The type of the property being configured. + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Configures a property that is defined on this type. + + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to configure the property. + + + + Excludes a property from the model so that it will not be mapped to the database. + + The type of the property to be ignored. + + A lambda expression representing the property to be configured. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + + + + Initializes a new instance of ComplexTypeConfiguration + + + + + Allows derived configuration classes for entities and complex types to be registered with a . + + + Derived configuration classes are created by deriving from + or and using a type to be included in the model as the generic + parameter. + + Configuration can be performed without creating derived configuration classes via the Entity and ComplexType + methods on . + + + + + Adds an to the . + Only one can be added for each type in a model. + + The entity type being configured. + The entity type configuration to be added. + The same ConfigurationRegistrar instance so that multiple calls can be chained. + + + + Adds an to the . + Only one can be added for each type in a model. + + The complex type being configured. + The complex type configuration to be added + The same ConfigurationRegistrar instance so that multiple calls can be chained. + + + + Allows the conventions used by a instance to be customized. + Currently removal of one or more default conventions is the only supported operation. + The default conventions can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. + + + + + Disables a convention for the . + The default conventions that are available for removal can be found in the System.Data.Entity.ModelConfiguration.Conventions namespace. + + The type of the convention to be disabled. + + + + Configures the table and column mapping for an entity type or a sub-set of properties from an entity type. + This configuration functionality is available via the Code First Fluent API, see . + + The entity type to be mapped. + + + + Configures the properties that will be included in this mapping fragment. + If this method is not called then all properties that have not yet been + included in a mapping fragment will be configured. + + An anonymous type including the properties to be mapped. + + A lambda expression to an anonymous type that contains the properties to be mapped. + C#: t => new { t.Id, t.Property1, t.Property2 } + VB.Net: Function(t) New With { p.Id, t.Property1, t.Property2 } + + + + + Re-maps all properties inherited from base types. + + When configuring a derived type to be mapped to a separate table this will cause all properties to + be included in the table rather than just the non-inherited properties. This is known as + Table per Concrete Type (TPC) mapping. + + + + + Configures the table name to be mapped to. + + Name of the table. + + + + Configures the table name and schema to be mapped to. + + Name of the table. + Schema of the table. + + + + Configures the discriminator column used to differentiate between types in an inheritance hierarchy. + + The name of the discriminator column. + A configuration object to further configure the discriminator column and values. + + + + Configures the discriminator condition used to differentiate between types in an inheritance hierarchy. + + The type of the property being used to discriminate between types. + + A lambda expression representing the property being used to discriminate between types. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object to further configure the discriminator condition. + + + + Moves a foreign key constraint from oldTable to newTable and updates column references + + + + + Move any FK constraints that are now completely in newTable and used to refer to oldColumn + + + + + Configures a condition used to discriminate between types in an inheritance hierarchy based on the values assigned to a property. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the condition to require a value in the property. + + Rows that do not have a value assigned to column that this property is stored in are + assumed to be of the base type of this entity type. + + + + + Populate the table mapping structure + + + + + Sets nullability for association set mappings' foreign keys for 1:* and 1:0..1 associations + when no base types share the the association set mapping's table + + + + + Makes sure only the required property mappings are present + + + + + Determines if the table and entity type need mapping, and if not, removes the existing entity type mapping + + + + + Configures a database column used to store a string values. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the column to allow the maximum length supported by the database provider. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + + Configures the column to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to be variable length. + Columns are variable length by default. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to be optional. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to be required. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column. + + Name of the database provider specific data type. + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column. + + The order that this column should appear in the database table. + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures the column to support Unicode string content. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the column supports Unicode string content. + + + Value indicating if the column supports Unicode string content or not. + Specifying 'null' will remove the Unicode facet from the column. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same StringColumnConfiguration instance so that multiple calls can be chained. + + + + Configures a discriminator column used to differentiate between types in an inheritance hierarchy. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the discriminator value used to identify the entity type being + configured from other types in the inheritance hierarchy. + + Type of the discriminator value. + The value to be used to identify the entity type. + A configuration object to configure the column used to store discriminator values. + + + + Configures the discriminator value used to identify the entity type being + configured from other types in the inheritance hierarchy. + + Type of the discriminator value. + The value to be used to identify the entity type. + A configuration object to configure the column used to store discriminator values. + + + + Configures the discriminator value used to identify the entity type being + configured from other types in the inheritance hierarchy. + + The value to be used to identify the entity type. + A configuration object to configure the column used to store discriminator values. + + + + Initializes configurations in the ModelConfiguration so that configuration data + is in a single place + + + + + Configures a many relationship from an entity type. + + The entity type that the relationship originates from. + The entity type that the relationship targets. + + + + Configures the relationship to be many:many with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:many without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:required with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:required without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:optional with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be many:optional without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures an optional relationship from an entity type. + + The entity type that the relationship originates from. + The entity type that the relationship targets. + + + + Configures the relationship to be optional:many with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:many without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:required with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:required without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional with a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + + A lambda expression representing the navigation property on the other end of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be optional:optional without a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + A configuration object that can be used to further configure the relationship. + + + + Configures an required relationship from an entity type. + + The entity type that the relationship originates from. + The entity type that the relationship targets. + + + + Configures the relationship to be required:many with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:many without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:optional with a navigation property on the other side of the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:optional without a navigation property on the other side of the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required with a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required without a navigation property on the other side of the relationship. + The entity type being configured will be the dependent and contain a foreign key to the principal. + The entity type that the relationship targets will be the principal in the relationship. + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required with a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + + An lambda expression representing the navigation property on the other end of the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures the relationship to be required:required without a navigation property on the other side of the relationship. + The entity type being configured will be the principal in the relationship. + The entity type that the relationship targets will be the dependent and contain a foreign key to the principal. + + A configuration object that can be used to further configure the relationship. + + + + Base class for configuring a property on an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + True if the NavigationProperty's declaring type is the principal end, false if it is not, null if it is not known + + + + + Base class for performing configuration of a relationship. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures a relationship that can support cascade on delete functionality. + + + + + Configures cascade delete to be on for the relationship. + + + + + Configures whether or not cascade delete is on for the relationship. + + Value indicating if cascade delete is on or not. + + + + Configures a relationship that can support foreign key properties that are exposed in the object model. + This configuration functionality is available via the Code First Fluent API, see . + + The dependent entity type. + + + + Configures a relationship that can only support foreign key properties that are not exposed in the object model. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the relationship to use foreign key property(s) that are not exposed in the object model. + The column(s) and table can be customized by specifying a configuration action. + If an empty configuration action is specified then column name(s) will be generated by convention. + If foreign key properties are exposed in the object model then use the HasForeignKey method. + Not all relationships support exposing foreign key properties in the object model. + + Action that configures the foreign key column(s) and table. + + A configuration object that can be used to further configure the relationship. + + + + + Configures the relationship to use foreign key property(s) that are exposed in the object model. + If the foreign key property(s) are not exposed in the object model then use the Map method. + + The type of the key. + + A lambda expression representing the property to be used as the foreign key. + If the foreign key is made up of multiple properties then specify an anonymous type including the properties. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the principal entity type. + + A configuration object that can be used to further configure the relationship. + + + + Configures the table and column mapping of a relationship that does not expose foreign key properties in the object model. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the name of the column(s) for the foreign key. + + + The foreign key column names. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the target entity type. + + The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the table name that the foreign key column(s) reside in. + The table that is specified must already be mapped for the entity type. + + If you want the foreign key(s) to reside in their own table then use the Map method + on to perform + entity splitting to create the table with just the primary key property. Foreign keys can + then be added to the table via this method. + + Name of the table. + The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the table name and schema that the foreign key column(s) reside in. + The table that is specified must already be mapped for the entity type. + + If you want the foreign key(s) to reside in their own table then use the Map method + on to perform + entity splitting to create the table with just the primary key property. Foreign keys can + then be added to the table via this method. + + Name of the table. + Schema of the table. + The same ForeignKeyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the table and column mapping of a many:many relationship. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the join table name for the relationship. + + Name of the table. + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the join table name and schema for the relationship. + + Name of the table. + Schema of the table. + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the column(s) for the left foreign key. + The left foreign key represents the navigation property specified in the HasMany call. + + + The foreign key column names. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the target entity type. + + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the column(s) for the right foreign key. + The right foreign key represents the navigation property specified in the WithMany call. + + + The foreign key column names. + When using multiple foreign key properties, the properties must be specified in the same order that the + the primary key properties were configured for the target entity type. + + The same ManyToManyAssociationMappingConfiguration instance so that multiple calls can be chained. + + + + Configures a many:many relationship. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the foreign key column(s) and table used to store the relationship. + + Action that configures the foreign key column(s) and table. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Used to configure a property with length facets for an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Used to configure a primitive property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same PrimitivePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to allow the maximum length supported by the database provider. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to have the specified maximum length. + + + The maximum length for the property. + Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be variable length. + Properties are variable length by default. + + The same LengthPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to allow the maximum length supported by the database provider. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to have the specified maximum length. + + + The maximum length for the property. + Setting 'null' will remove any maximum length restriction from the property. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be variable length. + properties are variable length by default. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + properties are optional by default. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be a row version in the database. + The actual data type will vary depending on the database provider being used. + Setting the property to be a row version will automatically configure it to be an + optimistic concurrency token. + + The same BinaryPropertyConfiguration instance so that multiple calls can be chained. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + properties are required by default. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the precision of the property. + If the database provider does not support precision for the data type of the column then the value is ignored. + + Precision of the property. + The same DateTimePropertyConfiguration instance so that multiple calls can be chained. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + properties are required by default. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the precision and scale of the property. + + The precision of the property. + The scale of the property. + The same DecimalPropertyConfiguration instance so that multiple calls can be chained. + + + + Used to configure a property of an entity type or complex type. + This configuration functionality is available via the Code First Fluent API, see . + + + + + Configures the property to allow the maximum length supported by the database provider. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to have the specified maximum length. + + + The maximum length for the property. + Setting 'null' will remove any maximum length restriction from the property and a default length will be used for the database column.. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be fixed length. + Use HasMaxLength to set the length that the property is fixed to. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be variable length. + properties are variable length by default. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be optional. + The database column used to store this property will be nullable. + properties are optional by default. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be required. + The database column used to store this property will be non-nullable. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures how values for the property are generated by the database. + + + The pattern used to generate values for the property in the database. + Setting 'null' will remove the database generated pattern facet from the property. + Setting 'null' will cause the same runtime behavior as specifying 'None'. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to be used as an optimistic concurrency token. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property is to be used as an optimistic concurrency token. + + + Value indicating if the property is a concurrency token or not. + Specifying 'null' will remove the concurrency token facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the name of the database column used to store the property. + + The name of the column. + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the data type of the database column used to store the property. + + Name of the database provider specific data type. + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the order of the database column used to store the property. + This method is also used to specify key ordering when an entity type has a composite key. + + The order that this column should appear in the database table. + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures the property to support Unicode string content. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Configures whether or not the property supports Unicode string content. + + + Value indicating if the property supports Unicode string content or not. + Specifying 'null' will remove the Unicode facet from the property. + Specifying 'null' will cause the same runtime behavior as specifying 'false'. + + The same StringPropertyConfiguration instance so that multiple calls can be chained. + + + + Indicates what parts of a configuration are overridable. + + + + + Nothing in the configuration is overridable. + + + + + The configuration values related to C-Space are overridable. + + + + + The configuration values only related to S-Space are overridable. + + + + + True if this configuration can be replaced in the model configuration, false otherwise + This is only set to true for configurations that are registered automatically via the DbContext + + + + + Base class for conventions that process CLR attributes found in the model. + + The type of member to look for. + The type of the configuration to look for. + The type of the attribute to look for. + + + + Convention to process instances of found on properties in the model + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on foreign key properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on navigation properties in the model. + + + + + Convention to process instances of found on primitive properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on properties in the model. + + + + + Convention to process instances of found on types in the model. + + + + + Convention to process instances of found on types in the model. + + + + + Convention to process instances of found on types in the model. + + + + + Convention to detect navigation properties to be inverses of each other when only one pair + of navigation properties exists between the related types. + + + + + Convention to configure a type as a complex type if it has no primary key, no mapped base type and no navigation properties. + + + + + Convention to convert any data types that were explicitly specified, via data annotations or API, + to be lower case. The default SqlClient provider is case sensitive and requires data types to be lower case. This convention + allows the and API to be case insensitive. + + + + + Convention to add a cascade delete to the join table from both tables involved in a many to many relationship. + + + + + Convention to ensure an invalid/unsupported mapping is not created when mapping inherited properties + + + + + Convention to set the table name to be a pluralized version of the entity type name. + + + + + Convention to set precision to 18 and scale to 2 for decimal properties. + + + + + Convention to move primary key properties to appear first. + + + + + Convention to distinguish between optional and required relationships based on CLR nullability of the foreign key property. + + + + + Convention to process instances of found on navigation properties in the model. + + + + + Convention to detect primary key properties. + Recognized naming patterns in order of precedence are: + 1. 'Id' + 2. [type name]Id + Primary key detection is case insensitive. + + + + + Convention to discover foreign key properties whose names are a combination + of the dependent navigation property name and the principal type primary key property name(s). + + + + + Convention to enable cascade delete for any required relationships. + + + + + Convention to configure the primary key(s) of the dependent entity type as foreign key(s) in a one:one relationship. + + + + + Convention to set the entity set name to be a pluralized version of the entity type name. + + + + + Convention to discover foreign key properties whose names match the principal type primary key property name(s). + + + + + Convention to set a default maximum length of 128 for properties whose type supports length facets. + + + + + Convention to set a default maximum length of 4000 for properties whose type supports length facets when SqlCe is the provider. + + + + + Convention to configure integer primary keys to be identity. + + + + + Checks for the PK property being an FK in a different table. A PK which is also an FK but + in the same table is used for table splitting and can still be an identity column because + the update pipeline is only inserting into one column of one table. + + + + + Convention to discover foreign key properties whose names are a combination + of the principal type name and the principal type primary key property name(s). + + + + + This class provide service for both the singularization and pluralization, it takes the word pairs + in the ctor following the rules that the first one is singular and the second one is plural. + + + + + Factory method for PluralizationService. Only support english pluralization. + Please set the PluralizationService on the System.Data.Entity.Design.EntityModelSchemaGenerator + to extend the service to other locales. + + CultureInfo + PluralizationService + + + + captalize the return word if the parameter is capitalized + if word is "Table", then return "Tables" + + + + + + + + separate one combine word in to two parts, prefix word and the last word(suffix word) + + + + + + + + return true when the word is "[\s]*" or leading or tailing with spaces + or contains non alphabetical characters + + + + + + + This method allow you to add word to internal PluralizationService of English. + If the singluar or the plural value was already added by this method, then an ArgumentException will be thrown. + + + + + + + Attempt to determine the principal and dependent ends of this association. + + The following table illustrates the solution space. + + Source | Target || Prin | Dep | + -------|--------||-------|-------| + 1 | 1 || - | - | + 1 | 0..1 || Sr | Ta | + 1 | * || Sr | Ta | + 0..1 | 1 || Ta | Sr | + 0..1 | 0..1 || - | - | + 0..1 | * || Sr | Ta | + * | 1 || Ta | Sr | + * | 0..1 || Ta | Sr | + * | * || - | - | + + + + + Allows configuration to be performed for an entity type in a model. + + An EntityTypeConfiguration can be obtained via the Entity method on + or a custom type derived from EntityTypeConfiguration + can be registered via the Configurations property on . + + + + + Initializes a new instance of EntityTypeConfiguration + + + + + Configures the primary key property(s) for this entity type. + + The type of the key. + + A lambda expression representing the property to be used as the primary key. + C#: t => t.Id + VB.Net: Function(t) t.Id + + If the primary key is made up of multiple properties then specify an anonymous type including the properties. + C#: t => new { t.Id1, t.Id2 } + VB.Net: Function(t) New With { t.Id1, t.Id2 } + + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Configures the entity set name to be used for this entity type. + The entity set name can only be configured for the base type in each set. + + The name of the entity set. + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Configures the table name that this entity type is mapped to. + + The name of the table. + + + + Configures the table name that this entity type is mapped to. + + The name of the table. + The database schema of the table. + + + + Allows advanced configuration related to how this entity type is mapped to the database schema. + By default, any configuration will also apply to any type derived from this entity type. + + Derived types can be configured via the overload of Map that configures a derived type or + by using an EntityTypeConfiguration for the derived type. + + The properties of an entity can be split between multiple tables using multiple Map calls. + + Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. + + An action that performs configuration against an . + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Allows advanced configuration related to how a derived entity type is mapped to the database schema. + Calls to Map are additive, subsequent calls will not override configuration already preformed via Map. + + The derived entity type to be configured. + An action that performs configuration against an . + The same EntityTypeConfiguration instance so that multiple calls can be chained. + + + + Configures an optional relationship from this entity type. + Instances of the entity type will be able to be saved to the database without this relationship being specified. + The foreign key in the database will be nullable. + + The type of the entity at the other end of the relationship. + + A lambda expression representing the navigation property for the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures a required relationship from this entity type. + Instances of the entity type will not be able to be saved to the database unless this relationship is specified. + The foreign key in the database will be non-nullable. + + The type of the entity at the other end of the relationship. + + A lambda expression representing the navigation property for the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Configures a many relationship from this entity type. + + The type of the entity at the other end of the relationship. + + A lambda expression representing the navigation property for the relationship. + C#: t => t.MyProperty + VB.Net: Function(t) t.MyProperty + + A configuration object that can be used to further configure the relationship. + + + + Handles mapping from a CLR property to an EDM assocation and nav. prop. + + + + + Exception thrown by during model creation when an invalid model is generated. + + + + + Initializes a new instance of ModelValidationException + + + + + Initializes a new instance of ModelValidationException + + The exception message. + + + + Initializes a new instance of ModelValidationException + + The exception message. + The inner exception. + + + + Code Contracts hook methods - Called when contracts fail. Here we detect the most common preconditions + so we can throw the correct exceptions. It also means that we can write preconditions using the + simplest Contract.Requires() form. + + + + + Returns true if a variable of this type can be assigned a null value + + + + True if a reference type or a nullable value type, + false otherwise + + + + + Exception thrown from when validating entities fails. + + + + + Initializes a new instance of DbEntityValidationException + + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + Validation results. + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + The inner exception. + + + + Initializes a new instance of DbEntityValidationException + + The exception message. + Validation results. + The inner exception. + + + + Subscribes the SerializeObjectState event. + + + + + Validation results. + + + + + Holds exception state that will be serialized when the exception is serialized. + + + + + Validation results. + + + + + Completes the deserialization. + + The deserialized object. + + + + Validation results. + + + + + Represents validation results for single entity. + + + + + Entity entry the results applies to. Never null. + + + + + List of instances. Never null. Can be empty meaning the entity is valid. + + + + + Creates an instance of class. + + + Entity entry the results applies to. Never null. + + + List of instances. Never null. Can be empty meaning the entity is valid. + + + + + Creates an instance of class. + + + Entity entry the results applies to. Never null. + + + List of instances. Never null. Can be empty meaning the entity is valid. + + + + + Gets an instance of the results applies to. + + + + + Gets validation errors. Never null. + + + + + Gets an indicator if the entity is valid. + + + + + Exception thrown from when an exception is thrown from the validation + code. + + + + + Initializes a new instance of DbUnexpectedValidationException + + The exception message. + + + + Initializes a new instance of DbUnexpectedValidationException + + The exception message. + + + + Initializes a new instance of DbUnexpectedValidationException + + The exception message. + The inner exception. + + + + Initializes a new instance of DbUnexpectedValidationException with the specified serialization info and + context. + + The serialization info. + The streaming context. + + + + Validation error. Can be either entity or property level validation error. + + + + + Name of the invalid property. Can be null (e.g. for entity level validations) + + + + + Validation error message. + + + + + Creates an instance of . + + Name of the invalid property. Can be null. + Validation error message. Can be null. + + + + Gets name of the invalid property. + + + + + Gets validation error message. + + + + diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.PS3.psd1 b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.PS3.psd1 new file mode 100644 index 0000000..d789376 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.PS3.psd1 differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.PowerShell.Utility.dll b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.PowerShell.Utility.dll new file mode 100644 index 0000000..f0d6b7c Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.PowerShell.Utility.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.PowerShell.dll b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.PowerShell.dll new file mode 100644 index 0000000..dd76c08 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.PowerShell.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.psd1 b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.psd1 new file mode 100644 index 0000000..c93a0d5 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.psd1 differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.psm1 b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.psm1 new file mode 100644 index 0000000..57b4122 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/EntityFramework.psm1 @@ -0,0 +1,777 @@ +# Copyright (c) Microsoft Corporation. All rights reserved. + +$InitialDatabase = '0' + +$knownExceptions = @( + 'System.Data.Entity.Migrations.Infrastructure.MigrationsException', + 'System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException', + 'System.Data.Entity.Migrations.Infrastructure.AutomaticDataLossException', + 'System.Data.Entity.Migrations.MigrationsPendingException', + 'System.Data.Entity.Migrations.ProjectTypeNotSupportedException' +) + +<# +.SYNOPSIS + Enables Code First Migrations in a project. + +.DESCRIPTION + Enables Migrations by scaffolding a migrations configuration class in the project. If the + target database was created by an initializer, an initial migration will be created (unless + automatic migrations are enabled via the EnableAutomaticMigrations parameter). + +.PARAMETER ContextTypeName + Specifies the context to use. If omitted, migrations will attempt to locate a + single context type in the target project. + +.PARAMETER EnableAutomaticMigrations + Specifies whether automatic migrations will be enabled in the scaffolded migrations configuration. + If ommitted, automatic migrations will be disabled. + +.PARAMETER ProjectName + Specifies the project that the scaffolded migrations configuration class will + be added to. If omitted, the default project selected in package manager + console is used. + +.PARAMETER StartUpProjectName + Specifies the configuration file to use for named connection strings. If + omitted, the specified project's configuration file is used. + +.PARAMETER ConnectionStringName + Specifies the name of a connection string to use from the application's + configuration file. + +.PARAMETER ConnectionString + Specifies the the connection string to use. If omitted, the context's + default connection will be used. + +.PARAMETER ConnectionProviderName + Specifies the provider invariant name of the connection string. + +.PARAMETER Force + Specifies that the migrations configuration be overwritten when running more + than once for a given project. +#> +function Enable-Migrations +{ + [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] + param ( + [string] $ContextTypeName, + [alias('Auto')] + [switch] $EnableAutomaticMigrations, + [string] $ProjectName, + [string] $StartUpProjectName, + [parameter(ParameterSetName = 'ConnectionStringName')] + [string] $ConnectionStringName, + [parameter(ParameterSetName = 'ConnectionStringAndProviderName', + Mandatory = $true)] + [string] $ConnectionString, + [parameter(ParameterSetName = 'ConnectionStringAndProviderName', + Mandatory = $true)] + [string] $ConnectionProviderName, + [switch] $Force + ) + + $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConnectionStringName $ConnectionString $ConnectionProviderName + + try + { + Invoke-RunnerCommand $runner System.Data.Entity.Migrations.EnableMigrationsCommand @( $EnableAutomaticMigrations.IsPresent, $Force.IsPresent ) @{ 'ContextTypeName' = $ContextTypeName } + $error = Get-RunnerError $runner + + if ($error) + { + if ($knownExceptions -notcontains $error.TypeName) + { + Write-Host $error.StackTrace + } + + throw $error.Message + } + } + finally + { + Remove-Runner $runner + } +} + +<# +.SYNOPSIS + Scaffolds a migration script for any pending model changes. + +.DESCRIPTION + Scaffolds a new migration script and adds it to the project. + +.PARAMETER Name + Specifies the name of the custom script. + +.PARAMETER Force + Specifies that the migration user code be overwritten when re-scaffolding an + existing migration. + +.PARAMETER ProjectName + Specifies the project that contains the migration configuration type to be + used. If ommitted, the default project selected in package manager console + is used. + +.PARAMETER StartUpProjectName + Specifies the configuration file to use for named connection strings. If + omitted, the specified project's configuration file is used. + +.PARAMETER ConfigurationTypeName + Specifies the migrations configuration to use. If omitted, migrations will + attempt to locate a single migrations configuration type in the target + project. + +.PARAMETER ConnectionStringName + Specifies the name of a connection string to use from the application's + configuration file. + +.PARAMETER ConnectionString + Specifies the the connection string to use. If omitted, the context's + default connection will be used. + +.PARAMETER ConnectionProviderName + Specifies the provider invariant name of the connection string. + +.PARAMETER IgnoreChanges + Scaffolds an empty migration ignoring any pending changes detected in the current model. + This can be used to create an initial, empty migration to enable Migrations for an existing + database. N.B. Doing this assumes that the target database schema is compatible with the + current model. + +#> +function Add-Migration +{ + [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] + param ( + [parameter(Position = 0, + Mandatory = $true)] + [string] $Name, + [switch] $Force, + [string] $ProjectName, + [string] $StartUpProjectName, + [string] $ConfigurationTypeName, + [parameter(ParameterSetName = 'ConnectionStringName')] + [string] $ConnectionStringName, + [parameter(ParameterSetName = 'ConnectionStringAndProviderName', + Mandatory = $true)] + [string] $ConnectionString, + [parameter(ParameterSetName = 'ConnectionStringAndProviderName', + Mandatory = $true)] + [string] $ConnectionProviderName, + [switch] $IgnoreChanges) + + $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName + + try + { + Invoke-RunnerCommand $runner System.Data.Entity.Migrations.AddMigrationCommand @( $Name, $Force.IsPresent, $IgnoreChanges.IsPresent ) + $error = Get-RunnerError $runner + + if ($error) + { + if ($knownExceptions -notcontains $error.TypeName) + { + Write-Host $error.StackTrace + } + + throw $error.Message + } + } + finally + { + Remove-Runner $runner + } +} + +<# +.SYNOPSIS + Applies any pending migrations to the database. + +.DESCRIPTION + Updates the database to the current model by applying pending migrations. + +.PARAMETER SourceMigration + Only valid with -Script. Specifies the name of a particular migration to use + as the update's starting point. If ommitted, the last applied migration in + the database will be used. + +.PARAMETER TargetMigration + Specifies the name of a particular migration to update the database to. If + ommitted, the current model will be used. + +.PARAMETER Script + Generate a SQL script rather than executing the pending changes directly. + +.PARAMETER Force + Specifies that data loss is acceptable during automatic migration of the + database. + +.PARAMETER ProjectName + Specifies the project that contains the migration configuration type to be + used. If ommitted, the default project selected in package manager console + is used. + +.PARAMETER StartUpProjectName + Specifies the configuration file to use for named connection strings. If + omitted, the specified project's configuration file is used. + +.PARAMETER ConfigurationTypeName + Specifies the migrations configuration to use. If omitted, migrations will + attempt to locate a single migrations configuration type in the target + project. + +.PARAMETER ConnectionStringName + Specifies the name of a connection string to use from the application's + configuration file. + +.PARAMETER ConnectionString + Specifies the the connection string to use. If omitted, the context's + default connection will be used. + +.PARAMETER ConnectionProviderName + Specifies the provider invariant name of the connection string. +#> +function Update-Database +{ + [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] + param ( + [string] $SourceMigration, + [string] $TargetMigration, + [switch] $Script, + [switch] $Force, + [string] $ProjectName, + [string] $StartUpProjectName, + [string] $ConfigurationTypeName, + [parameter(ParameterSetName = 'ConnectionStringName')] + [string] $ConnectionStringName, + [parameter(ParameterSetName = 'ConnectionStringAndProviderName', + Mandatory = $true)] + [string] $ConnectionString, + [parameter(ParameterSetName = 'ConnectionStringAndProviderName', + Mandatory = $true)] + [string] $ConnectionProviderName) + + $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName + + try + { + Invoke-RunnerCommand $runner System.Data.Entity.Migrations.UpdateDatabaseCommand @( $SourceMigration, $TargetMigration, $Script.IsPresent, $Force.IsPresent, $Verbose.IsPresent ) + $error = Get-RunnerError $runner + + if ($error) + { + if ($knownExceptions -notcontains $error.TypeName) + { + Write-Host $error.StackTrace + } + + throw $error.Message + } + } + finally + { + Remove-Runner $runner + } +} + +<# +.SYNOPSIS + Displays the migrations that have been applied to the target database. + +.DESCRIPTION + Displays the migrations that have been applied to the target database. + +.PARAMETER ProjectName + Specifies the project that contains the migration configuration type to be + used. If ommitted, the default project selected in package manager console + is used. + +.PARAMETER StartUpProjectName + Specifies the configuration file to use for named connection strings. If + omitted, the specified project's configuration file is used. + +.PARAMETER ConfigurationTypeName + Specifies the migrations configuration to use. If omitted, migrations will + attempt to locate a single migrations configuration type in the target + project. + +.PARAMETER ConnectionStringName + Specifies the name of a connection string to use from the application's + configuration file. + +.PARAMETER ConnectionString + Specifies the the connection string to use. If omitted, the context's + default connection will be used. + +.PARAMETER ConnectionProviderName + Specifies the provider invariant name of the connection string. +#> +function Get-Migrations +{ + [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] + param ( + [string] $ProjectName, + [string] $StartUpProjectName, + [string] $ConfigurationTypeName, + [parameter(ParameterSetName = 'ConnectionStringName')] + [string] $ConnectionStringName, + [parameter(ParameterSetName = 'ConnectionStringAndProviderName', + Mandatory = $true)] + [string] $ConnectionString, + [parameter(ParameterSetName = 'ConnectionStringAndProviderName', + Mandatory = $true)] + [string] $ConnectionProviderName) + + $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName + + try + { + Invoke-RunnerCommand $runner System.Data.Entity.Migrations.GetMigrationsCommand + $error = Get-RunnerError $runner + + if ($error) + { + if ($knownExceptions -notcontains $error.TypeName) + { + Write-Host $error.StackTrace + } + + throw $error.Message + } + } + finally + { + Remove-Runner $runner + } +} + +function New-MigrationsRunner($ProjectName, $StartUpProjectName, $ConfigurationTypeName, $ConnectionStringName, $ConnectionString, $ConnectionProviderName) +{ + $startUpProject = Get-MigrationsStartUpProject $StartUpProjectName $ProjectName + Build-Project $startUpProject + + $project = Get-MigrationsProject $ProjectName + Build-Project $project + + $installPath = Get-EntityFrameworkInstallPath $project + $toolsPath = Join-Path $installPath tools + + $info = New-Object System.AppDomainSetup -Property @{ + ShadowCopyFiles = 'true'; + ApplicationBase = $installPath; + PrivateBinPath = 'tools' + } + + $targetFrameworkVersion = (New-Object System.Runtime.Versioning.FrameworkName ($project.Properties.Item('TargetFrameworkMoniker').Value)).Version + + if ($targetFrameworkVersion -lt (New-Object Version @( 4, 5 ))) + { + $info.PrivateBinPath += ';lib\net40' + + $dteVersion = [System.Text.RegularExpressions.Regex]::Match($DTE.Version, '^(?\d{1,2}(\.\d{1,2})?)( \(.+\))?$').Groups['version'].Value + + if ((New-Object Version $dteVersion) -lt (New-Object Version @( 11, 0 ))) + { + $info.ConfigurationFile = Join-Path $toolsPath 'Redirect.config' + } + else + { + $info.ConfigurationFile = Join-Path $toolsPath 'Redirect.VS11.config' + } + } + else + { + $info.PrivateBinPath += ';lib\net45' + $info.ConfigurationFile = [AppDomain]::CurrentDomain.SetupInformation.ConfigurationFile + } + + $domain = [AppDomain]::CreateDomain('Migrations', $null, $info) + $domain.SetData('project', $project) + $domain.SetData('startUpProject', $startUpProject) + $domain.SetData('configurationTypeName', $ConfigurationTypeName) + $domain.SetData('connectionStringName', $ConnectionStringName) + $domain.SetData('connectionString', $ConnectionString) + $domain.SetData('connectionProviderName', $ConnectionProviderName) + + [AppDomain]::CurrentDomain.SetShadowCopyFiles() + $utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path $toolsPath EntityFramework.PowerShell.Utility.dll)) + $dispatcher = $utilityAssembly.CreateInstance( + 'System.Data.Entity.Migrations.Utilities.DomainDispatcher', + $false, + [System.Reflection.BindingFlags]::Instance -bor [System.Reflection.BindingFlags]::Public, + $null, + $PSCmdlet, + $null, + $null) + $domain.SetData('efDispatcher', $dispatcher) + + return @{ + Domain = $domain; + ToolsPath = $toolsPath + } +} + +function Remove-Runner($runner) +{ + [AppDomain]::Unload($runner.Domain) +} + +function Invoke-RunnerCommand($runner, $command, $parameters, $anonymousArguments) +{ + $domain = $runner.Domain + + if ($anonymousArguments) + { + $anonymousArguments.GetEnumerator() | %{ + $domain.SetData($_.Name, $_.Value) + } + } + + $domain.CreateInstanceFrom( + (Join-Path $runner.ToolsPath EntityFramework.PowerShell.dll), + $command, + $false, + 0, + $null, + $parameters, + $null, + $null) | Out-Null +} + +function Get-RunnerError($runner) +{ + $domain = $runner.Domain + + if (!$domain.GetData('wasError')) + { + return $null + } + + return @{ + Message = $domain.GetData('error.Message'); + TypeName = $domain.GetData('error.TypeName'); + StackTrace = $domain.GetData('error.StackTrace') + } +} + +function Get-MigrationsProject($name, $hideMessage) +{ + if ($name) + { + return Get-SingleProject $name + } + + $project = Get-Project + $projectName = $project.Name + + if (!$hideMessage) + { + Write-Verbose "Using NuGet project '$projectName'." + } + + return $project +} + +function Get-MigrationsStartUpProject($name, $fallbackName) +{ + $startUpProject = $null + + if ($name) + { + $startUpProject = Get-SingleProject $name + } + else + { + $startupProjectPaths = $DTE.Solution.SolutionBuild.StartupProjects + + if ($startupProjectPaths) + { + if ($startupProjectPaths.Length -eq 1) + { + $startupProjectPath = $startupProjectPaths[0] + + if (!(Split-Path -IsAbsolute $startupProjectPath)) + { + $solutionPath = Split-Path $DTE.Solution.Properties.Item('Path').Value + $startupProjectPath = Join-Path $solutionPath $startupProjectPath -Resolve + } + + $startupProject = Get-SolutionProjects | ?{ + try + { + $fullName = $_.FullName + } + catch [NotImplementedException] + { + return false; + } + + if ($fullName -and $fullName.EndsWith('\')) + { + $fullName = $fullName.Substring(0, $fullName.Length - 1) + } + + return $fullName -eq $startupProjectPath + } + } + else + { + Write-Verbose 'More than one start-up project found.' + } + } + else + { + Write-Verbose 'No start-up project found.' + } + } + + if (!($startUpProject -and (Test-StartUpProject $startUpProject))) + { + $startUpProject = Get-MigrationsProject $fallbackName $true + $startUpProjectName = $startUpProject.Name + + Write-Warning "Cannot determine a valid start-up project. Using project '$startUpProjectName' instead. Your configuration file and working directory may not be set as expected. Use the -StartUpProjectName parameter to set one explicitly. Use the -Verbose switch for more information." + } + else + { + $startUpProjectName = $startUpProject.Name + + Write-Verbose "Using StartUp project '$startUpProjectName'." + } + + return $startUpProject +} + +function Get-SolutionProjects() +{ + $projects = New-Object System.Collections.Stack + + $DTE.Solution.Projects | %{ + $projects.Push($_) + } + + while ($projects.Count -ne 0) + { + $project = $projects.Pop(); + + # NOTE: This line is similar to doing a "yield return" in C# + $project + + if ($project.ProjectItems) + { + $project.ProjectItems | ?{ $_.SubProject } | %{ + $projects.Push($_.SubProject) + } + } + } +} + +function Get-SingleProject($name) +{ + $project = Get-Project $name + + if ($project -is [array]) + { + throw "More than one project '$name' was found. Specify the full name of the one to use." + } + + return $project +} + +function Test-StartUpProject($project) +{ + if ($project.Kind -eq '{cc5fd16d-436d-48ad-a40c-5a424c6e3e79}') + { + $projectName = $project.Name + Write-Verbose "Cannot use start-up project '$projectName'. The Windows Azure Project type isn't supported." + + return $false + } + + return $true +} + +function Build-Project($project) +{ + $configuration = $DTE.Solution.SolutionBuild.ActiveConfiguration.Name + + $DTE.Solution.SolutionBuild.BuildProject($configuration, $project.UniqueName, $true) + + if ($DTE.Solution.SolutionBuild.LastBuildInfo) + { + $projectName = $project.Name + + throw "The project '$projectName' failed to build." + } +} + +function Get-EntityFrameworkInstallPath($project) +{ + $package = Get-Package -ProjectName $project.FullName | ?{ $_.Id -eq 'EntityFramework' } + + if (!$package) + { + $projectName = $project.Name + + throw "The EntityFramework package is not installed on project '$projectName'." + } + + return Get-PackageInstallPath $package +} + +function Get-PackageInstallPath($package) + { + $componentModel = Get-VsComponentModel + $packageInstallerServices = $componentModel.GetService([NuGet.VisualStudio.IVsPackageInstallerServices]) + + $vsPackage = $packageInstallerServices.GetInstalledPackages() | ?{ $_.Id -eq $package.Id -and $_.Version -eq $package.Version } + + return $vsPackage.InstallPath +} + +Export-ModuleMember @( 'Enable-Migrations', 'Add-Migration', 'Update-Database', 'Get-Migrations' ) -Variable InitialDatabase + +# SIG # Begin signature block +# MIIaRgYJKoZIhvcNAQcCoIIaNzCCGjMCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB +# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR +# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUc46O5H/xCa1Zd+kKsDgAx0de +# pNmgghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5 +# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk +# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN +# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx +# MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ +# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w +# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9 +# AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O +# ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o +# vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT +# W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n +# 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD +# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO +# 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR +# 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu +# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z +# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw +# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI +# 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv +# /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL +# m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy +# wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+ +# BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC +# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL +# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v +# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q +# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD +# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B +# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R +# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS +# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK +# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ +# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl +# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw +# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS +# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj +# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD +# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw +# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v +# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622 +# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5 +# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi +# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG +# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR +# ARYRYopBdqAwggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA +# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv +# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +# eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl +# IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ +# XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA +# 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc +# r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+ +# knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc +# TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX +# no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV +# HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB +# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt +# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX +# 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z +# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU +# BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0 +# LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB +# BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM +# fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j +# StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO +# +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY +# Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K +# u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO +# PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC +# +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH +# YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB +# J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc +# 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv +# oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk +# ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj +# cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw +# OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw +# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN +# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj +# UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY +# 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co +# 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt +# UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23 +# 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB +# o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2 +# +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME +# gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB +# GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy +# b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT +# LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br +# aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB +# BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j +# ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw +# DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO +# vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K +# BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d +# jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK +# YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY +# sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP +# Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo +# QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh +# v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v +# WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E +# yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ +# E6P9MYIEgzCCBH8CAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw +# b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ +# zJMAAQAAAGYwCQYFKw4DAhoFAKCBsDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB +# BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU +# SDInMyiqV3LEzPhzf6mjYJvp5qAwUAYKKwYBBAGCNwIBDDFCMECgIoAgAEUAbgB0 +# AGkAdAB5ACAARgByAGEAbQBlAHcAbwByAGuhGoAYaHR0cDovL21zZG4uY29tL2Rh +# dGEvZWYgMA0GCSqGSIb3DQEBAQUABIIBAMTy2exDNM/cRmGrhj6rawr6XoQp77kh +# +WOMUmSG5U4qSlP8g3fVFH030Xsxz5d8TunxEzRUyDhYHh3mQ56x4RCVJU/fdl8Q +# dhXwn4VfV84G3+mIHVRCo8+8hm/o1l1K0sHhLCaPSoZht1bcKH09gK1VxoNhBt78 +# BFUHLTWw0sRwrEJRW1xZPwOoh2rv1cnYi7GPKFHiYrCV3NSHRkSJZmA42UYA1iZv +# 3fF9QCQNlTDY4jiC2vsa/eWt0qhups1gQXdqg8y/Zvc5cEYxF+ByataJ6fI4w5HP +# 5WNzsVl1O+6VFlj1qjMzOyVlsHWCOIfFfc8iLoWWy+A4W00yEeHIMT2hggIdMIIC +# GQYJKoZIhvcNAQkGMYICCjCCAgYCAQEwgYUwdzELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# UENBAgphBRmWAAAAAAAbMAcGBSsOAwIaoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3 +# DQEHATAcBgkqhkiG9w0BCQUxDxcNMTIwNjI4MjA0MzM5WjAjBgkqhkiG9w0BCQQx +# FgQU2luimdNA+66F/z6ooEia0K5OZC8wDQYJKoZIhvcNAQEFBQAEggEAPUTPALhi +# x8qJIn6WmeZTiazQRH4/TVQHCJPDxhlaMgDUDsPwwmjrAfL/UnMz+TVi5ltSM0Hb +# jGLfhTbaw/YcLUqztgxNq/vm0cFqU3n+rIGUBXFUwDoS6Ol6UTSoXkJVHyiOxHuU +# Fdh33QDv9EVBbr1CQJLTs02d31Uwjg8vUt9+LDSYQWFlZH0+xsy1wStReGX4DSRz +# QneatHmqk+Vej4/3iFKBlCJO1SPlXQLaFAUFsZr6yl6oTrpfatG6sA16/e8jjW4u +# Kz0GzJYJ4DMVdSVGpsvVWMADsbEsjlr6yesOrN4ZDEBdv7Y3P518wK/iJ1/WdgRc +# SA474q5bExc5pA== +# SIG # End signature block diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/Redirect.VS11.config b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/Redirect.VS11.config new file mode 100644 index 0000000..9334b31 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/Redirect.VS11.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/Redirect.config b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/Redirect.config new file mode 100644 index 0000000..223189e --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/Redirect.config @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/about_EntityFramework.help.txt b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/about_EntityFramework.help.txt new file mode 100644 index 0000000..68cfaa2 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/about_EntityFramework.help.txt @@ -0,0 +1,30 @@ +TOPIC + about_EntityFramework + +SHORT DESCRIPTION + Provides information about Entity Framework commands. + +LONG DESCRIPTION + This topic describes the Entity Framework commands. Entity Framework is + Microsoft's recommended data access technology for new applications. + + + The following Entity Framework cmdlets are included. + + Cmdlet Description + ----------------- --------------------------------------------------- + Enable-Migrations Enables Code First Migrations in a project. + + Add-Migration Scaffolds a migration script for any pending model + changes. + + Update-Database Applies any pending migrations to the database. + + Get-Migrations Displays the migrations that have been applied to + the target database. + +SEE ALSO + Enable-Migrations + Add-Migration + Update-Database + Get-Migrations diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/init.ps1 b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/init.ps1 new file mode 100644 index 0000000..212836c --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/init.ps1 @@ -0,0 +1,176 @@ +param($installPath, $toolsPath, $package, $project) + +$importedModule = Get-Module | ?{ $_.Name -eq 'EntityFramework' } + +if ($PSVersionTable.PSVersion -ge (New-Object Version @( 3, 0 ))) +{ + $thisModuleManifest = 'EntityFramework.PS3.psd1' +} +else +{ + $thisModuleManifest = 'EntityFramework.psd1' +} + +$thisModule = Test-ModuleManifest (Join-Path $toolsPath $thisModuleManifest) +$shouldImport = $true + +if ($importedModule) +{ + if ($importedModule.Version -le $thisModule.Version) + { + Remove-Module EntityFramework + } + else + { + $shouldImport = $false + } +} + +if ($shouldImport) +{ + Import-Module $thisModule +} + +# SIG # Begin signature block +# MIIaSAYJKoZIhvcNAQcCoIIaOTCCGjUCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB +# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR +# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU4JbMotbKQrAO4s/cceCMbJQG +# 482gghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5 +# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk +# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN +# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx +# MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ +# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w +# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9 +# AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O +# ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o +# vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT +# W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n +# 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD +# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO +# 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR +# 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu +# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z +# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw +# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI +# 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv +# /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL +# m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy +# wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+ +# BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC +# A6KgAwIBAgIKYQKSSgAAAAAAIDANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBQQ0EwHhcNMTIwMTA5MjIyNTU5WhcNMTMwNDA5MjIyNTU5WjCBszEL +# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v +# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q +# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOkI4RUMtMzBBNC03MTQ0MSUwIwYD +# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B +# AQEFAAOCAQ8AMIIBCgKCAQEAzWPD96K1R9n5OZRTrGuPpnk4IfTRbj0VOBbBcyyZ +# j/vgPFvhokyLsquLtPJKx7mTUNEm9YdTsHp180cPFytnLGTrYOdKjOCLXsRWaTc6 +# KgRdFwHIv6m308mro5GogeM/LbfY5MR4AHk5z/3HZOIjEnieDHYnSY+arA504wZV +# VUnI7aF8cEVhfrJxFh7hwUG50tIy6VIk8zZQBNfdbzxJ1QvUdkD8ZWUTfpVROtX/ +# uJqnV2tLFeU3WB/cAA3FrurfgUf58FKu5s9arOAUSqZxlID6/bAjMGDpg2CsDiQe +# /xHy56VVYpXun3+eKdbNSwp2g/BDBN8GSSDyU1pEsFF6OQIDAQABo4IBCTCCAQUw +# HQYDVR0OBBYEFM0ZrGFNlGcr9q+UdVnb8FgAg6E6MB8GA1UdIwQYMBaAFCM0+NlS +# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj +# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD +# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw +# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAFEc1t82HdyA +# vAKnxpnfFsiQBmkVmjK582QQ0orzYikbeY/KYKmzXcTkFi01jESb8fRcYaRBrpqL +# ulDRanlqs2KMnU1RUAupjtS/ohDAR9VOdVKJHj+Wao8uQBQGcu4/cFmSXYXtg5n6 +# goSe5AMBIROrJ9bMcUnl2h3/bzwJTtWNZugMyX/uMRQCN197aeyJPkV/JUTnHxrW +# xRrDSuTh8YSY50/5qZinGEbshGzsqQMK/Xx6Uh2ca6SoD5iSpJJ4XCt4432yx9m2 +# cH3fW3NTv6rUZlBL8Mk7lYXlwUplnSVYULsgVJF5OhsHXGpXKK8xx5/nwx3uR/0n +# 13/PdNxlxT8wggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA +# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv +# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +# eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl +# IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ +# XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA +# 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc +# r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+ +# knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc +# TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX +# no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV +# HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB +# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt +# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX +# 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z +# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU +# BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0 +# LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB +# BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM +# fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j +# StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO +# +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY +# Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K +# u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO +# PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC +# +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH +# YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB +# J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc +# 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv +# oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk +# ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj +# cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw +# OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw +# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN +# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj +# UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY +# 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co +# 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt +# UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23 +# 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB +# o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2 +# +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME +# gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB +# GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy +# b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT +# LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br +# aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB +# BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j +# ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw +# DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO +# vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K +# BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d +# jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK +# YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY +# sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP +# Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo +# QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh +# v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v +# WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E +# yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ +# E6P9MYIEhTCCBIECAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw +# b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ +# zJMAAQAAAGYwCQYFKw4DAhoFAKCBsDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB +# BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU +# WQ2AdtM5zwQcEcFbsSevYrmN6UQwUAYKKwYBBAGCNwIBDDFCMECgIoAgAEUAbgB0 +# AGkAdAB5ACAARgByAGEAbQBlAHcAbwByAGuhGoAYaHR0cDovL21zZG4uY29tL2Rh +# dGEvZWYgMA0GCSqGSIb3DQEBAQUABIIBAAp6IKF/Uj/9lpK3SAcA7JJxjVoqi+yI +# n0i9qNP5b4+zTSrtpnPDibOaQvhdUlEsAlEjnJTRCwYR9zobPyxJfGoh9j/qkgcU +# wWBIdmNhzMEzVDJwlE9puRipHQNP6ftcbaz9SOD40aOQ8skR9ecYuHW9SGG0levm +# m2Q/UWxmxVvtv6HnYzWUn6vHrJmiRk+t1ckG9Dxq2GPnBA+hGrRdYaijPBSwSWcg +# FnBsl4s88UVL7N8hpKYOQGnqGda6V1LJIgNPKoGNoPllFeJWXKgClvJ6majpd6dz +# o8S6A9a19D2Dh1l0cbwpI2ZFZjfY9UOVSH33i6fk7CM0aCVe9z3dcB+hggIfMIIC +# GwYJKoZIhvcNAQkGMYICDDCCAggCAQEwgYUwdzELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# UENBAgphApJKAAAAAAAgMAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZI +# hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMjA2MjgyMDQzMzlaMCMGCSqGSIb3DQEJ +# BDEWBBTcH0Qic4YQ6MzFbjR1RWKCxjK8pzANBgkqhkiG9w0BAQUFAASCAQAdMhoS +# z2zXLJyB1RIjdnGlDxLKzXF+rxImjMI7VfId2vIg4FaGIPqnN0BBTp8o+HZCv3cM +# ZV/okS8w9k/82jWjJ183l9fn3moQe4qbVlV6yUJvPFpW47LFrEAXgdmL8bgA/VOW +# HtJRP52lPDsb7J1WjqNOh7KkyD5x0Y8Pwrb+Xc63ibtTjOeAttPxKk+1gZh95wUA +# ykjw7RKZLHfyJ9Ph5lCkzDQrXXwGGPuzaZVO+pkowgy2yCPRecShGBCKbCyOZlhT +# BS1WVJDHS95N732o0lPzWE5rTQe/awv8xkgCe9e8ci4S7/lSnj3aVOLbM3S8jG4x +# Oi4rxrjYTjts1n2P +# SIG # End signature block diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/install.ps1 b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/install.ps1 new file mode 100644 index 0000000..591c6fd --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/install.ps1 @@ -0,0 +1,170 @@ +param($installPath, $toolsPath, $package, $project) + +function Invoke-ConnectionFactoryConfigurator($assemblyPath, $project) +{ + $appDomain = [AppDomain]::CreateDomain( + 'EntityFramework.PowerShell', + $null, + (New-Object System.AppDomainSetup -Property @{ ShadowCopyFiles = 'true' })) + + $appDomain.CreateInstanceFrom( + $assemblyPath, + 'System.Data.Entity.ConnectionFactoryConfig.ConnectionFactoryConfigurator', + $false, + 0, + $null, + $project, + $null, + $null) | Out-Null + + [AppDomain]::Unload($appDomain) +} + +Invoke-ConnectionFactoryConfigurator (Join-Path $toolsPath EntityFramework.PowerShell.dll) $project + +Write-Host +Write-Host "Type 'get-help EntityFramework' to see all available Entity Framework commands." + +# SIG # Begin signature block +# MIIaRgYJKoZIhvcNAQcCoIIaNzCCGjMCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB +# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR +# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU4nG54zEClXzFX9aYwYpo8BH3 +# YWygghUtMIIEoDCCA4igAwIBAgIKYRnMkwABAAAAZjANBgkqhkiG9w0BAQUFADB5 +# MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk +# bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSMwIQYDVQQDExpN +# aWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQTAeFw0xMTEwMTAyMDMyMjVaFw0xMzAx +# MTAyMDMyMjVaMIGDMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ +# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u +# MQ0wCwYDVQQLEwRNT1BSMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w +# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDuW759ESTjhgbgZv9ItRe9 +# AuS0DDLwcj59LofXTqGxp0Mv92WeMeEyMUWu18EkhCHXLrWEfvo101Mc17ZRHk/O +# ZrnrtwwC/SlcraiH9soitNW/CHX1inCPY9fvih7pj0MkZFrTh32QbTusds1XNn3o +# vBBWrJjwiV0uZMavJgleHmMV8T2/Fo+ZiALDMLfBC2AfD3LM1reoNRKGm6ELCuaT +# W476VJzB8xlfQo0Snx0/kLcnE4MZMoId89mH1CGyPKK2B0/XJKrujfWz2fr5OU+n +# 6fKvWVL03EGbLxFwY93q3qrxbSEEEFMzu7JPxeFTskFlR2439rzpmxZBkWsuWzDD +# AgMBAAGjggEdMIIBGTATBgNVHSUEDDAKBggrBgEFBQcDAzAdBgNVHQ4EFgQUG1IO +# 8xEqt8CJwxGBPdSWWLmjU24wDgYDVR0PAQH/BAQDAgeAMB8GA1UdIwQYMBaAFMsR +# 6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwu +# bWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8wOC0z +# MS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMxLTIw +# MTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQClWzZsrU6baRLjb4oCm2l3w2xkciiI +# 2T1FbSwYe9QoLxPiWWobwgs0t4r96rmU7Acx5mr0dQTTp9peOgaeEP2pDb2cUUNv +# /2eUnOHPfPAksDXMg13u2sBvNknAWgpX9nPhnvPjCEw7Pi/M0s3uTyJw9wQfAqZL +# m7iPXIgONpRsMwe4qa1RoNDC3I4iEr3D34LXVqH33fClIFcQEJ3urIZ0bHGbwfDy +# wnBep9ttTTdYmU15QNA0XVolrmfrG05GBrCMKR+jEI+lM58j1fi1Rn3g7mOYkEs+ +# BagvsBizWaSvQVOOCAUQLSrJOgZMHC6pMVFWZKyazKyXmCmKl5CH6p22MIIEujCC +# A6KgAwIBAgIKYQUZlgAAAAAAGzANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJV +# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE +# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3NvZnQgVGlt +# ZS1TdGFtcCBQQ0EwHhcNMTEwNzI1MjA0MjE5WhcNMTIxMDI1MjA0MjE5WjCBszEL +# MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v +# bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjENMAsGA1UECxMETU9Q +# UjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjlFNzgtODY0Qi0wMzlEMSUwIwYD +# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B +# AQEFAAOCAQ8AMIIBCgKCAQEA08s7U6KfRKN6q01WcVOKd6o3k34BPv2rAqNTqf/R +# sSLFAJDndW7uGOiBDhPF2GEAvh+gdjsEDQTFBKCo/ENTBqEEBLkLkpgCYjjv1DMS +# 9ys9e++tRVeFlSCf12M0nGJGjr6u4NmeOfapVf3P53fmNRPvXOi/SJNPGkMHWDiK +# f4UUbOrJ0Et6gm7L0xVgCBSJlKhbPzrJPyB9bS9YGn3Kiji8w8I5aNgtWBoj7SoQ +# CFogjIKl7dGXRZKFzMM3g98NmHzF07bgmVPYeAj15SMhB2KGWmppGf1w+VM0gfcl +# MRmGh4vAVZr9qkw1Ff1b6ZXJq1OYKV8speElD2TF8rAndQIDAQABo4IBCTCCAQUw +# HQYDVR0OBBYEFHkj56ENvlUsaBgpYoJn1vPhNjhaMB8GA1UdIwQYMBaAFCM0+NlS +# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj +# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD +# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw +# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAEfCdoFbMd1v +# 0zyZ8npsfpcTUCwFFxsQuEShtYz0Vs+9sCG0ZG1hHNju6Ov1ku5DohhEw/r67622 +# XH+XbUu1Q/snYXgIVHyx+a+YCrR0xKroLVDEff59TqGZ1icot67Y37GPgyKOzvN5 +# /GEUbb/rzISw36O7WwW36lT1Yh1sJ6ZjS/rjofq734WWZWlTsLZxmGQmZr3F8Vxi +# vJH0PZxLQgANzzgFFCZa3CoFS39qmTjY3XOZos6MUCSepOv1P4p4zFSZXSVmpEEG +# KK9JxLRSlOzeAoNk/k3U/0ui/CmA2+4/qzztM4jKvyJg0Fw7BLAKtJhtPKc6T5rR +# ARYRYopBdqAwggW8MIIDpKADAgECAgphMyYaAAAAAAAxMA0GCSqGSIb3DQEBBQUA +# MF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3Nv +# ZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +# eTAeFw0xMDA4MzEyMjE5MzJaFw0yMDA4MzEyMjI5MzJaMHkxCzAJBgNVBAYTAlVT +# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK +# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2Rl +# IFNpZ25pbmcgUENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsnJZ +# XBkwZL8dmmAgIEKZdlNsPhvWb8zL8epr/pcWEODfOnSDGrcvoDLs/97CQk4j1XIA +# 2zVXConKriBJ9PBorE1LjaW9eUtxm0cH2v0l3511iM+qc0R/14Hb873yNqTJXEXc +# r6094CholxqnpXJzVvEXlOT9NZRyoNZ2Xx53RYOFOBbQc1sFumdSjaWyaS/aGQv+ +# knQp4nYvVN0UMFn40o1i/cvJX0YxULknE+RAMM9yKRAoIsc3Tj2gMj2QzaE4BoVc +# TlaCKCoFMrdL109j59ItYvFFPeesCAD2RqGe0VuMJlPoeqpK8kbPNzw4nrR3XKUX +# no3LEY9WPMGsCV8D0wIDAQABo4IBXjCCAVowDwYDVR0TAQH/BAUwAwEB/zAdBgNV +# HQ4EFgQUyxHoytK0FlgByTcuMxYWuUyaCh8wCwYDVR0PBAQDAgGGMBIGCSsGAQQB +# gjcVAQQFAgMBAAEwIwYJKwYBBAGCNxUCBBYEFP3RMU7TJoqV4ZhgO6gxb6Y8vNgt +# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMB8GA1UdIwQYMBaAFA6sgmBAVieX +# 5SUT/CrhClOVWeSkMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9z +# b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBU +# BggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0 +# LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MA0GCSqGSIb3DQEB +# BQUAA4ICAQBZOT5/Jkav629AsTK1ausOL26oSffrX3XtTDst10OtC/7L6S0xoyPM +# fFCYgCFdrD0vTLqiqFac43C7uLT4ebVJcvc+6kF/yuEMF2nLpZwgLfoLUMRWzS3j +# StK8cOeoDaIDpVbguIpLV/KVQpzx8+/u44YfNDy4VprwUyOFKqSCHJPilAcd8uJO +# +IyhyugTpZFOyBvSj3KVKnFtmxr4HPBT1mfMIv9cHc2ijL0nsnljVkSiUc356aNY +# Vt2bAkVEL1/02q7UgjJu/KSVE+Traeepoiy+yCsQDmWOmdv1ovoSJgllOJTxeh9K +# u9HhVujQeJYYXMk1Fl/dkx1Jji2+rTREHO4QFRoAXd01WyHOmMcJ7oUOjE9tDhNO +# PXwpSJxy0fNsysHscKNXkld9lI2gG0gDWvfPo2cKdKU27S0vF8jmcjcS9G+xPGeC +# +VKyjTMWZR4Oit0Q3mT0b85G1NMX6XnEBLTT+yzfH4qerAr7EydAreT54al/RrsH +# YEdlYEBOsELsTu2zdnnYCjQJbRyAMR/iDlTd5aH75UcQrWSY/1AWLny/BSF64pVB +# J2nDk4+VyY3YmyGuDVyc8KKuhmiDDGotu3ZrAB2WrfIWe/YWgyS5iM9qqEcxL5rc +# 43E91wB+YkfRzojJuBj6DnKNwaM9rwJAav9pm5biEKgQtDdQCNbDPTCCBgcwggPv +# oAMCAQICCmEWaDQAAAAAABwwDQYJKoZIhvcNAQEFBQAwXzETMBEGCgmSJomT8ixk +# ARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWlj +# cm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTA3MDQwMzEyNTMw +# OVoXDTIxMDQwMzEzMDMwOVowdzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw +# b3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBMIIBIjAN +# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn6Fssd/bSJIqfGsuGeG94uPFmVEj +# UK3O3RhOJA/u0afRTK10MCAR6wfVVJUVSZQbQpKumFwwJtoAa+h7veyJBw/3DgSY +# 8InMH8szJIed8vRnHCz8e+eIHernTqOhwSNTyo36Rc8J0F6v0LBCBKL5pmyTZ9co +# 3EZTsIbQ5ShGLieshk9VUgzkAyz7apCQMG6H81kwnfp+1pez6CGXfvjSE/MIt1Nt +# UrRFkJ9IAEpHZhEnKWaol+TTBoFKovmEpxFHFAmCn4TtVXj+AZodUAiFABAwRu23 +# 3iNGu8QtVJ+vHnhBMXfMm987g5OhYQK1HQ2x/PebsgHOIktU//kFw8IgCwIDAQAB +# o4IBqzCCAacwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUIzT42VJGcArtQPt2 +# +7MrsMM1sw8wCwYDVR0PBAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMIGYBgNVHSME +# gZAwgY2AFA6sgmBAVieX5SUT/CrhClOVWeSkoWOkYTBfMRMwEQYKCZImiZPyLGQB +# GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy +# b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHmCEHmtFqFKoKWtTHNY9AcT +# LmUwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br +# aS9jcmwvcHJvZHVjdHMvbWljcm9zb2Z0cm9vdGNlcnQuY3JsMFQGCCsGAQUFBwEB +# BEgwRjBEBggrBgEFBQcwAoY4aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9j +# ZXJ0cy9NaWNyb3NvZnRSb290Q2VydC5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgw +# DQYJKoZIhvcNAQEFBQADggIBABCXisNcA0Q23em0rXfbznlRTQGxLnRxW20ME6vO +# vnuPuC7UEqKMbWK4VwLLTiATUJndekDiV7uvWJoc4R0Bhqy7ePKL0Ow7Ae7ivo8K +# BciNSOLwUxXdT6uS5OeNatWAweaU8gYvhQPpkSokInD79vzkeJkuDfcH4nC8GE6d +# jmsKcpW4oTmcZy3FUQ7qYlw/FpiLID/iBxoy+cwxSnYxPStyC8jqcD3/hQoT38IK +# YY7w17gX606Lf8U1K16jv+u8fQtCe9RTciHuMMq7eGVcWwEXChQO0toUmPU8uWZY +# sy0v5/mFhsxRVuidcJRsrDlM1PZ5v6oYemIp76KbKTQGdxpiyT0ebR+C8AvHLLvP +# Q7Pl+ex9teOkqHQ1uE7FcSMSJnYLPFKMcVpGQxS8s7OwTWfIn0L/gHkhgJ4VMGbo +# QhJeGsieIiHQQ+kr6bv0SMws1NgygEwmKkgkX1rqVu+m3pmdyjpvvYEndAYR7nYh +# v5uCwSdUtrFqPYmhdmG0bqETpr+qR/ASb/2KMmyy/t9RyIwjyWa9nR2HEmQCPS2v +# WY+45CHltbDKY7R4VAXUQS5QrJSwpXirs6CWdRrZkocTdSIvMqgIbqBbjCW/oO+E +# yiHW6x5PyZruSeD3AWVviQt9yGnI5m7qp5fOMSn/DsVbXNhNG6HY+i+ePy5VFmvJ +# E6P9MYIEgzCCBH8CAQEwgYcweTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp +# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw +# b3JhdGlvbjEjMCEGA1UEAxMaTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0ECCmEZ +# zJMAAQAAAGYwCQYFKw4DAhoFAKCBsDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIB +# BDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQU +# aRQ2a/UgAzqOb3Wvyd0Y2tRWtIEwUAYKKwYBBAGCNwIBDDFCMECgIoAgAEUAbgB0 +# AGkAdAB5ACAARgByAGEAbQBlAHcAbwByAGuhGoAYaHR0cDovL21zZG4uY29tL2Rh +# dGEvZWYgMA0GCSqGSIb3DQEBAQUABIIBAMQdz1xbjYGj57Z6LNm3laDw2S6QJFye +# QUSbvlY7kcxqlHQrERkp3wwR34emJSnTayLTcTPaCCvzUaGsZi86i+IW6HdA/3A/ +# IwEZgAkai/qXZCYEEBvV9ja+iMRowFPAySU+ROh4LFbCTLzm4vez6qaLyui/JQNr +# 46DZptV5XM0idAbgOfmtCMMipqRkrNqt7Zj8cuxu3cJBKOvhUOdLfEIxq1UW9pNy +# 8c/aOStE0kLFInw3G1GL9IJnS43eTcgeIDMkrwX70o+rLS7lN1U3txL25IrBTUcY +# Q6dxj4zSDxIjn3Tq2jqa8B6lR1OMEahj4INmR6vC+mFNspHODHWgt7GhggIdMIIC +# GQYJKoZIhvcNAQkGMYICCjCCAgYCAQEwgYUwdzELMAkGA1UEBhMCVVMxEzARBgNV +# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv +# c29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3RhbXAg +# UENBAgphBRmWAAAAAAAbMAcGBSsOAwIaoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3 +# DQEHATAcBgkqhkiG9w0BCQUxDxcNMTIwNjI4MjA0MzU0WjAjBgkqhkiG9w0BCQQx +# FgQUlE+8FmmwI9Hd6gz+luAdOPsKxHgwDQYJKoZIhvcNAQEFBQAEggEAiJCupwRm +# YW3NHK2EdgaQ+VCIjXwVrEj6ElX4c30nAYXxnCOIesErL/N/jMYnM3Fo+GNsOikL +# x9Mzo4sZv/c6bchLtnagS6MzQyDFiBPF+pngSMg2PpIDHsIBg2vPzClWx6+hCDxE +# Yf9f7/s/vQEpEbHLjzQZJqoji2LV5HRxnHbT3J13atUF2yqgzyTRlOF2MPp3vLX1 +# 7q5KnOBrWsfyxoYskJEddsbH7zilomWyVZ2zcpG8Ui/h2xoN50AXtMQntx9VYxwT +# D5U5ECSdKzXeUIwktYBPtxor5yGBda63PNxjUHYXSRvFrdnLtXTiMiIQzEzJUdk9 +# 6p75IHbjyjvZfg== +# SIG # End signature block diff --git a/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/migrate.exe b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/migrate.exe new file mode 100644 index 0000000..319a61c Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/EntityFramework.5.0.0/tools/migrate.exe differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/Microsoft.Data.Edm.5.0.0.nupkg b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/Microsoft.Data.Edm.5.0.0.nupkg new file mode 100644 index 0000000..89ed2b5 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/Microsoft.Data.Edm.5.0.0.nupkg differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/Microsoft.Data.Edm.5.0.0.nuspec b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/Microsoft.Data.Edm.5.0.0.nuspec new file mode 100644 index 0000000..dbcb1ad --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/Microsoft.Data.Edm.5.0.0.nuspec @@ -0,0 +1,20 @@ + + + + Microsoft.Data.Edm + 5.0.0 + EdmLib + Microsoft Corporation + Microsoft Corporation + http://www.microsoft.com/download/en/details.aspx?id=29306 + http://go.microsoft.com/fwlink/?LinkId=220868 + http://static.tumblr.com/hgchgxz/9ualgdf98/icon.png + true + Classes to represent, construct, parse, serialize and validate entity data models. Targets .NET 4.0 or Silverlight 4.0. Localized for CHS, CHT, DEU, ESN, FRA, ITA, JPN, KOR and RUS. + wcf data services odata odatalib edmlib spatial ado.net ef entity framework open protocol wcfds wcfdataservices dataservices + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/CHS/Microsoft.Data.Edm.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/CHS/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..30cf827 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/CHS/Microsoft.Data.Edm.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/CHT/Microsoft.Data.Edm.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/CHT/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..5310ba4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/CHT/Microsoft.Data.Edm.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/DEU/Microsoft.Data.Edm.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/DEU/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..c7a2406 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/DEU/Microsoft.Data.Edm.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/ESN/Microsoft.Data.Edm.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/ESN/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..11e9daa Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/ESN/Microsoft.Data.Edm.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/FRA/Microsoft.Data.Edm.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/FRA/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..0180b8d Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/FRA/Microsoft.Data.Edm.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/ITA/Microsoft.Data.Edm.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/ITA/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..4ec892a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/ITA/Microsoft.Data.Edm.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/JPN/Microsoft.Data.Edm.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/JPN/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..cf9fd6c Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/JPN/Microsoft.Data.Edm.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/KOR/Microsoft.Data.Edm.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/KOR/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..b4b4531 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/KOR/Microsoft.Data.Edm.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/Microsoft.Data.Edm.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/Microsoft.Data.Edm.dll new file mode 100644 index 0000000..4b116d4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/Microsoft.Data.Edm.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/Microsoft.Data.Edm.xml b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/Microsoft.Data.Edm.xml new file mode 100644 index 0000000..e7bfb75 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/Microsoft.Data.Edm.xml @@ -0,0 +1,5221 @@ + + + + Microsoft.Data.Edm + + + + Enumerates the EDM property concurrency modes. + + + Denotes a property that should be used for optimistic concurrency checks. + + + Denotes a property that should not be used for optimistic concurrency checks. + + + Defines EDM container element types. + + + Represents an element where the container kind is unknown or in error. + + + Represents an element implementing . + + + Represents an element implementing . + + + Contains IsEquivalentTo() extension methods. + + + Returns true if the compared expression is semantically equivalent to this expression. + Equivalence of the two expressions. + Reference to the calling object. + Expression being compared to. + + + Returns true if the compared entity set is semantically equivalent to this entity set. + The equivalence of the entity sets. + Reference to the calling object. + Entity set being compared to. + + + Returns true if the compared function is semantically equivalent to this function. + Equivalence of the two functions. + Reference to the calling object. + Function being compared to. + + + Returns true if the compared function import is semantically equivalent to this function import. + Equivalence of the two function imports. + Reference to the calling object. + Function import being compared to. + + + Returns true if the compared function parameter is semantically equivalent to this function parameter. + Equivalence of the two function parameters. + Reference to the calling object. + Function parameter being compared to. + + + Returns true if the compared property is semantically equivalent to this property. + Equivalence of the two properties. + Reference to the calling object. + Property being compared to. + + + Returns true if the compared type is semantically equivalent to this type. + Equivalence of the two types. + Reference to the calling object. + Type being compared to. + + + Returns true if the compared type is semantically equivalent to this type. + Equivalence of the two types. + Reference to the calling object. + Type being compared to. + + + Enumerates the modes of parameters of EDM functions. + + + Denotes that a parameter with an unknown or error directionality. + + + Denotes that a parameter is used for input. + + + Denotes that a parameter is used for output. + + + Denotes that a parameter is used for input and output. + + + Represents the location of an EDM item. + + + Creates a new instance of the class. + + + Gets a string representation of the location. + A string representation of the location. + + + Enumerates the multiplicities of EDM navigation properties. + + + The Multiplicity of the association end is unknown. + + + The Multiplicity of the association end is zero or one. + + + The Multiplicity of the association end is one. + + + The Multiplicity of the association end is many. + + + Represents a mapping from an EDM navigation property to an entity set. + + + Creates a new navigation target mapping. + The navigation property. + The entity set that the navigation propertion targets. + + + Gets the navigation property. + + + Gets the target entity set. + + + Enumerates the actions EDM can apply on deletes. + + + Takes no action on delete. + + + On delete also delete items on the other end of the association. + + + Enumerates the kinds of EDM primitives. + + + Represents a primitive type of unknown kind. + + + Represents a Binary type. + + + Represents a Boolean type. + + + Represents a Byte type. + + + Represents a DateTime type. + + + Represents a DateTimeOffset type. + + + Represents a Decimal type. + + + Represents a Double type. + + + Represents a Guid type. + + + Represents an Int16 type. + + + Represents an Int32 type. + + + Represents an Int64 type. + + + Represents a SByte type. + + + Represents a Single type. + + + Represents a String type. + + + Represents a Stream type. + + + Represents a Time type. + + + Represents an arbitrary Geography type. + + + Represents a geography Point type. + + + Represents a geography LineString type. + + + Represents a geography Polygon type. + + + Represents a geography GeographyCollection type. + + + Represents a geography MultiPolygon type. + + + Represents a geography MultiLineString type. + + + Represents a geography MultiPoint type. + + + Represents an arbitrary Geometry type. + + + Represents a geometry Point type. + + + Represents a geometry LineString type. + + + Represents a geometry Polygon type. + + + Represents a geometry GeometryCollection type. + + + Represents a geometry MultiPolygon type. + + + Represents a geometry MultiLineString type. + + + Represents a geometry MultiPoint type. + + + Returns true if this type kind represents a temporal type. + + + Returns true if this primitive type kind represents an integer type. + + + Returns true if this type kind represents a spatial type. + + + Defines EDM property types. + + + Represents a property implementing . + + + Represents a property implementing . + + + Represents a property with an unknown or error kind. + + + Defines EDM schema element types. + + + Represents a schema element with unknown or error kind. + + + Represents a schema element implementing . + + + Represents a schema element implementing . + + + Represents a schema element implementing . + + + Represents a schema element implementing + + + Defines EDM term kinds. + + + Represents a term with unknown or error kind. + + + Represents a term implementing . + + + Represents a term implementing . + + + Defines EDM metatypes. + + + Represents a type with an unknown or error kind. + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Returns true if this type kind represents a structured type. + + + Provides semantics of the predefined EDM types. + + + Returns a reference to this row type definition. + A reference to this row type definition. + Reference to the calling object. + Flag specifying if the referenced type should be nullable. + + + If this reference is of a binary type, this will return a valid binary type reference to the type definition. Otherwise, it will return a bad binary type reference. + A valid binary type reference if the definition of the reference is of a binary type. Otherwise a bad binary type reference. + Reference to the calling object. + + + If this reference is of a collection type, this will return a valid collection type reference to the type definition. Otherwise, it will return a bad collection type reference. + A valid collection type reference if the definition of the reference is of a collection type. Otherwise a bad collection type reference. + Reference to the calling object. + + + If this reference is of a complex type, this will return a valid complex type reference to the type definition. Otherwise, it will return a bad complex type reference. + A valid complex type reference if the definition of the reference is of a complex type. Otherwise a bad complex type reference. + Reference to the calling object. + + + If this reference is of a decimal type, this will return a valid decimal type reference to the type definition. Otherwise, it will return a bad decimal type reference. + A valid decimal type reference if the definition of the reference is of a decimal type. Otherwise a bad decimal type reference. + Reference to the calling object. + + + If this reference is of an entity type, this will return a valid entity type reference to the type definition. Otherwise, it will return a bad entity type reference. + A valid entity type reference if the definition of the reference is of an entity type. Otherwise a bad entity type reference. + Reference to the calling object. + + + If this reference is of an entity reference type, this will return a valid entity reference type reference to the type definition. Otherwise, it will return a bad entity reference type reference. + A valid entity reference type reference if the definition of the reference is of an entity reference type. Otherwise a bad entity reference type reference. + Reference to the calling object. + + + If this reference is of an enumeration type, this will return a valid enumeration type reference to the type definition. Otherwise, it will return a bad enumeration type reference. + A valid enumeration type reference if the definition of the reference is of an enumeration type. Otherwise a bad enumeration type reference. + Reference to the calling object. + + + If this reference is of a primitive type, this will return a valid primitive type reference to the type definition. Otherwise, it will return a bad primitive type reference. + A valid primitive type reference if the definition of the reference is of a primitive type. Otherwise a bad primitive type reference. + Reference to the calling object. + + + If this reference is of a row type, this will return a valid row type reference to the type definition. Otherwise, it will return a bad row type reference. + A valid row type reference if the definition of the reference is of a row type. Otherwise a bad row type reference. + Reference to the calling object. + + + If this reference is of a spatial type, this will return a valid spatial type reference to the type definition. Otherwise, it will return a bad spatial type reference. + A valid spatial type reference if the definition of the reference is of a spatial type. Otherwise a bad spatial type reference. + Reference to the calling object. + + + If this reference is of a string type, this will return a valid string type reference to the type definition. Otherwise, it will return a bad string type reference. + A valid string type reference if the definition of the reference is of a string type. Otherwise a bad string type reference. + Reference to the calling object. + + + If this reference is of a structured type, this will return a valid structured type reference to the type definition. Otherwise, it will return a bad structured type reference. + A valid structured type reference if the definition of the reference is of a structured type. Otherwise a bad structured type reference. + Reference to the calling object. + + + If this reference is of a temporal type, this will return a valid temporal type reference to the type definition. Otherwise, it will return a bad temporal type reference. + A valid temporal type reference if the definition of the reference is of a temporal type. Otherwise a bad temporal type reference. + Reference to the calling object. + + + Determines if the potential base type is in the inheritance hierarchy of the type being tested. + True if and only if the type inherits from the potential base type. + Type to be tested for derivation from the other type. + The potential base type of the type being tested. + + + Returns true if this reference refers to a binary type. + This reference refers to a binary type. + Reference to the calling object. + + + Returns true if this reference refers to a boolean type. + This reference refers to a boolean type. + Reference to the calling object. + + + Returns true if this reference refers to a byte type. + This reference refers to a byte type. + Reference to the calling object. + + + Returns true if this reference refers to a collection. + This reference refers to a collection. + Reference to the calling object. + + + Returns true if this reference refers to a complex type. + This reference refers to a complex type. + Reference to the calling object. + + + Returns true if this reference refers to a DateTime type. + This reference refers to a DateTime type. + Reference to the calling object. + + + Returns true if this reference refers to a DateTimeOffset type. + This reference refers to a DateTimeOffset type. + Reference to the calling object. + + + Returns true if this reference refers to a decimal type. + This reference refers to a decimal type. + Reference to the calling object. + + + Returns true if this reference refers to a double type. + This reference refers to a double type. + Reference to the calling object. + + + Returns true if this reference refers to an entity type. + This reference refers to an entity type. + Reference to the calling object. + + + Returns true if this reference refers to an entity type. + This reference refers to an entity type. + Reference to the calling object. + + + Returns true if this reference refers to an enumeration type. + This reference refers to an enumeration type. + Reference to the calling object. + + + Returns true if this reference refers to a floating point type. + This reference refers to a floating point type. + Reference to the calling object. + + + Returns true if this reference refers to a GUID type. + This reference refers to a GUID type. + Reference to the calling object. + + + Returns true if this reference refers to an Int16 type. + This reference refers to an Int16 type. + Reference to the calling object. + + + Returns true if this reference refers to an Int32 type. + This reference refers to an Int32 type. + Reference to the calling object. + + + Returns true if this reference refers to an Int64 type. + This reference refers to an Int64 type. + Reference to the calling object. + + + Returns true if this primitive type kind represents an integer type. + This kind refers to an integer type. + Reference to the calling object. + + + Returns true if this reference refers to an integer type. + This reference refers to an integer type. + Reference to the calling object. + + + Determines if a type is equivalent to or derived from another type. + True if and only if the thisType is equivalent to or inherits from otherType. + Type to be tested for equivalence to or derivation from the other type. + Type that is the other type. + + + Returns true if this reference refers to a primitive type. + This reference refers to a primitive type. + Reference to the calling object. + + + Returns true if this reference refers to a row type. + This reference refers to a row type. + Reference to the calling object. + + + Returns true if this reference refers to an SByte type. + This reference refers to an SByte type. + Reference to the calling object. + + + Returns true if this reference refers to a signed integral type. + This reference refers to a signed integral type. + Reference to the calling object. + + + Returns true if this reference refers to a single type. + This reference refers to a single type. + Reference to the calling object. + + + Returns true if this type kind represents a spatial type. + This kind refers to a spatial type. + Reference to the calling object. + + + Returns true if this definition refers to a spatial type. + This definition refers to a spatial type. + Definition to the calling object. + + + Returns true if this reference refers to a spatial type. + This reference refers to a spatial type. + Reference to the calling object. + + + Returns true if this reference refers to a stream type. + This reference refers to a stream type. + Reference to the calling object. + + + Returns true if this reference refers to a string type. + This reference refers to a string type. + Reference to the calling object. + + + Returns true if this type kind represents a structured type. + This kind refers to a structured type. + Reference to the calling object. + + + Returns true if this reference refers to a structured type. + This reference refers to a structured type. + Reference to the calling object. + + + Returns true if this type kind represents a temporal type. + This kind refers to a temporal type. + Reference to the calling object. + + + Returns true if this reference refers to a temporal type. + This reference refers to a temporal type. + Reference to the calling object. + + + Returns true if this reference refers to a time type. + This reference refers to a time type. + Reference to the calling object. + + + Returns the primitive kind of the definition of this reference. + The primitive kind of the definition of this reference. + Reference to the calling object. + + + Contains extension methods for interfaces. + + + + + + + + + + + + + + Gets the entity type declaring this navigation property. + The entity type that declares this navigation property. + Reference to the calling object. + + + Gets the direct value annotations for an element. + The immediate value annotations of the element. + The model containing the annotations. + The annotated element. + + + + Gets the entity containers belonging to this model. + Entity containers belonging to this model. + Model to search for entity containers. + + + + + + + + Searches for an entity container with the given name in this model and all referenced models and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The model to search. + The qualified name of the entity container being found. + + + Searches for functions with the given name in this model and all referenced models and returns an empty enumerable if no such functions exist. + The requested functions. + The model to search. + The qualified name of the functions being found. + + + + Finds a property of a record expression. + The property, if found, otherwise null. + The record expression. + Name of the property to find. + + + + Gets the binding of a property of the type term of a type annotation. + The binding of the property in the type annotation, or null if no binding exists. + Annotation to search. + Property to search for. + + + Gets the binding of a property of the type term of a type annotation. + The binding of the property in the type annotation, or null if no binding exists. + Annotation to search. + Name of the property to search for. + + + Searches for a type with the given name in this model and all referenced models and returns null if no such type exists. + The requested type, or null if no such type exists. + The model to search. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and all referenced models and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The model to search. + The qualified name of the value term being found. + + + Gets an annotatable element's vocabulary annotations defined in a specific model and models referenced by that model. + Annotations attached to the element by this model or by models referenced by this model. + The model to search. + Element to check for annotations. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term. + Model to search. + Element to check for annotations. + Term to search for. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term with the given qualifier. + Model to search. + Element to check for annotations. + Term to search for. + Qualifier to apply. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term. + Model to search. + Element to check for annotations. + Name of the term to search for. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term with the given qualifier. + Model to search. + Element to check for annotations. + Name of the term to search for. + Qualifier to apply. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations defined in a specific model and models referenced by that model. + Annotations attached to the element (or, if the element is a type, to its base types) by this model or by models referenced by this model. + The model to search. + Element to check for annotations. + + + + + + Gets an annotation value from an annotatable element. + The model containing the annotation. + The annotated element. + Type of the annotation being returned. + + + Gets an annotation value corresponding to the given namespace and name provided. + The model containing the annotation. + The annotated element. + Namespace of the annotation. + Name of the annotation inside the namespace. + Type of the annotation being returned. + + + Gets an annotation value corresponding to the given namespace and name provided. + The requested annotation value, if it exists. Otherwise, null. + The model containing the annotation. + The annotated element. + Namespace of the annotation. + Name of the annotation inside the namespace. + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + The model in which to find the annotations. + The set of requested annotations. + + + Gets documentation for a specified element. + Documentation that exists on the element. Otherwise, null. + The model containing the documentation. + The element. + + + + Gets the of a property of a term type that has been applied to the type of a value. + Value of the property evaluated against the supplied value, or null if no relevant type annotation exists. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a property of a term type that has been applied to the type of a value. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a property of a term type that has been applied to the type of a value. + Value of the property evaluated against the supplied value, or null if no relevant type annotation exists. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a property of a term type that has been applied to the type of a value. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + + + + + + Gets the multiplicity of this end of a bidirectional relationship between this navigation property and its partner. + The multiplicity of this end of the relationship. + Reference to the calling object. + + + + + + + + + Gets all schema elements from the model, and models referenced by it. + Schema elements from the model, and models referenced by it. + Model to search for elements + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + The model containing the annotation. + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + Value of the new annotation. + + + Sets an annotation value on an annotatable element. + The model containing the annotation. + The annotated element. + Value of the new annotation. + Type of the annotation being set. + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + The model in which to set the annotations. + The annotations to set. + + + Sets documentation for a specified element. + The model containing the documentation. + The element. + Documentation to set. + + + + + + + Gets the entity type targeted by this navigation property. + The entity type targeted by this navigation property. + Reference to the calling object. + + + Analyzes .EntitySet expression and returns a relative path to an if available. The path starts with the parameter and may have optional sequence of and type casts segments. + True if the entity set expression of the functionImport contains a relative path an , otherwise false. + The function import containing the entity set expression. + The model containing the function import. + The function import parameter from which the relative entity set path starts. + The optional sequence of navigation properties. + + + Analyzes .EntitySet expression and returns a static reference if available. + True if the entity set expression of the functionImport contains a static reference to an , otherwise false. + The function import containing the entity set expression. + The static entity set of the function import. + + + + + + Gets an annotatable element's vocabulary annotations as seen from a particular model. + Annotations attached to the element by the model or by models referenced by the model. + Reference to the calling object. + Model to check for annotations. + + + Represents a reference to an EDM binary type. + + + Gets a value indicating whether this type specifies fixed length. + True if the type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this type specifies the maximum allowed max length. + True if the type specifies the maximum allowed max length; otherwise, false. + + + Gets the maximum length of this type. + The maximum length of this type. + + + Defines an EDM component who is invalid or whose validity is unknown at construction. + + + Gets an error if one exists with the current object. + An error. + + + Represents a definition of an EDM collection type. + + + Gets the element type of this collection. + The element type of this collection. + + + Represents a reference to an EDM collection type. + + + Represents a definition of an EDM complex type. + + + Represents a reference to an EDM complex type. + + + Represents a reference to an EDM decimal type. + + + Gets the precision of this type. + The precision of this type. + + + Gets the scale of this type. + The scale of this type. + + + Represents an EDM documentation. + + + Gets a long description of this documentation. + A long description of this documentation. + + + Gets a summary of this documentation. + A summary of this documentation. + + + Represents an EDM element. + + + Represents an EDM entity container. + + + Gets a collection of the elements of this entity container. + A collection of the elements of this entity container. + + + Searches for an entity set with the given name in this entity container and returns null if no such set exists. + The requested element, or null if the element does not exist. + The name of the element being found. + + + Searches for function imports with the given name in this entity container and returns null if no such function import exists. + A group of the requested function imports, or null if no such function import exists. + The name of the function import being found. + + + Represents the common elements of all EDM entity container elements. + + + Gets the container that contains this element. + + + + Represents a definition of an EDM entity reference type. + + + Gets the entity type pointed to by this entity reference. + The entity type pointed to by this entity reference. + + + Represents a reference to an EDM entity reference type. + + + Represents an EDM entity set. + + + Gets the entity type contained in this entity set. + The entity type contained in this entity set. + + + Finds the entity set that a navigation property targets. + The entity set that the navigation propertion targets, or null if no such entity set exists. + The navigation property. + + + Gets the navigation targets of this entity set. + + + Represents a definition of an EDM entity type. + + + Gets the structural properties of the entity type that make up the entity key. + The structural properties of the entity type. + + + Represents a reference for the definition of an EDM entity type. + + + Represents a definition of an EDM enumeration type member. + + + Gets the type that this member belongs to. + The type that this member belongs to. + + + Gets the value of this enumeration type member. + The value of this enumeration type member. + + + Represents a definition of an EDM enumeration type. + + + Gets the members of this enumeration type. + The members of this enumeration type. + + + Gets a value indicating whether the enumeration type can be treated as a bit field. + True if the value indicating whether the enumeration type can be treated as a bit field; otherwise, false. + + + Gets the underlying type of this enumeration type. + The underlying type of this enumeration type. + + + Represents a reference for a definition of an EDM enumeration type. + + + Represents an EDM function. + + + Gets the defining expression of this function. + The defining expression of this function. + + + Represents the common base type of EDM functions and function imports. + + + Searches for a parameter with the given name, and returns null if no such parameter exists. + The requested parameter or null if no such parameter exists. + The name of the parameter being found. + + + Gets the collection of parameters for this function. + The collection of parameters for this function. + + + Gets the return type of this function. + The return type of this function. + + + Represents an EDM function import. + + + Gets a value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + True if the function import can be used as an extension method for the type of the first parameter of this function import; otherwise, false. + + + Gets a value indicating whether this function import can be composed inside expressions. cannot be set to true if is set to true. + True if the function import can be composed inside expressions; otherwise, false. + + + Gets the entity set where the result of this function import will be contained in. + The entity set where the result of this function import will be contained in. + + + Gets a value indicating whether this function import has side-effects. cannot be set to true if is set to true. + True if the function import has side-effects; otherwise, false. + + + Represents a parameter of an EDM function. + + + Gets the function or function import that declared this parameter. + + + Gets the mode of this function parameter. + The mode of this function parameter. + + + Gets the type of this function parameter. + The type of this function parameter. + + + Represents the interface for all EDM elements that can be located. + + + Gets the location of this element. + The location of this element. + + + Semantic representation of an EDM model. + + + Gets the model's annotations manager. + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The name of the entity container being found. + + + Searches for functions with the given name in this model and returns an empty enumerable if no such function exists. + A set of functions sharing the specified qualified name, or an empty enumerable if no such function exists. + The qualified name of the function being found. + + + Searches for a type with the given name in this model and returns null if no such type exists. + The requested type, or null if no such type exists. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The qualified name of the value term being found. + + + Searches for vocabulary annotations specified by this model. + The vocabulary annotations for the element. + The annotated element. + + + Gets the collection of models referred to by this model. + The collection of models referred to by this model. + + + Gets the collection of schema elements that are contained in this model. + The collection of schema elements that are contained in this model. + + + Gets the collection of vocabulary annotations that are contained in this model. + The collection of vocabulary annotations. + + + Common base interface for all named EDM elements. + + + Gets the name of this element. + The name of this element. + + + Represents an EDM navigation property. + + + Gets a value indicating whether the navigation target is contained inside the navigation source. + + + Gets the dependent properties of this navigation property, returning null if this is the principal end or if there is no referential constraint. + + + Gets whether this navigation property originates at the principal end of an association. + + + Gets the action to execute on the deletion of this end of a bidirectional association. + + + Gets the partner of this navigation property. + + + Represents a definition of an EDM primitive type. + + + Gets the primitive kind of this type. + The primitive kind of this type. + + + Represents a reference to definition of an EDM primitive type. + + + Represents an EDM property. + + + Gets the type that this property belongs to. + The type that this property belongs to. + + + Gets the kind of this property. + The kind of this property. + + + Gets the type of this property. + The type of this property. + + + Represents an EDM row type. + + + Represents a reference to an EDM row type. + + + Common base interface for all named children of EDM schemata. + + + Gets the namespace this schema element belongs to. + The namespace this schema element belongs to. + + + Gets the kind of this schema element. + The kind of this schema element. + + + Represents an EDM schema type. + + + Represents a reference to an EDM spatial type. + + + Gets the spatial reference identifier of this spatial type. + The spatial reference identifier of this spatial type. + + + Represents a reference to an EDM string type. + + + Gets a string representing the collation of this string type. + A string representing the collation of this string type. + + + Gets a value indicating whether this string type specifies fixed length. + True if this string type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this string type specifies the maximum allowed maximum length. + True if this string type specifies the maximum allowed maximum length; otherwise, false. + + + Gets a value indicating whether this string type supports Unicode encoding. + True if this string type supports Unicode encoding; otherwise, false. + + + Gets the maximum length of this string type. + The maximum length of this string type. + + + Represents an EDM structural (that is, non-navigation) property. + + + Gets the concurrency mode of this property. + The concurrency mode of this property. + + + Gets the default value of this property. + The default value of this property. + + + Represents the common base interface for definitions of EDM structured types. + + + Gets the base type of this type. + The base type of this type. + + + Gets the properties declared immediately within this type. + The properties declared immediately within this type. + + + Searches for a structural or navigation property with the given name in this type and all base types and returns null if no such property exists. + The requested property, or null if no such property exists. + The name of the property being found. + + + Gets a value indicating whether this type is abstract. + True if this type is abstract; otherwise, false. + + + Gets a value indicating whether this type is open. + True if this type is open; otherwise, false. + + + Represents a reference to an EDM structured type. + + + Represents a reference to an EDM temporal (Time, DateTime, DateTimeOffset) type. + + + Gets the precision of this temporal type. + The precision of this temporal type. + + + Represents the term to which an annotation can bind. + + + Gets the kind of a term. + The kind of a term. + + + Represents the definition of an EDM type. + + + Gets the kind of this type. + The kind of this type. + + + Represents a reference to an EDM type. + + + Gets the definition to which this type refers. + The definition to which this type refers. + + + Gets a value indicating whether this type is nullable. + true of the type is nullable; otherwise, false. + + + Represents an EDM value term. + + + Gets the type of the term. + The type of the term. + + + + Contains ToTraceString() extension methods. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Represents an EDM annotation with an immediate value. + + + Gets the namespace Uri of the annotation. + + + Gets the value of this annotation. + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + + + Gets the element to which the annotation is attached + + + Gets the local name of this element. + + + Gets the namespace of the annotation. + + + Gets the value of this annotation. + + + Manages getting and setting direct value annotations on EDM elements. + + + Retrieves an annotation value for an EDM element. Returns null if no annotation with the given name exists for the given element. + Returns the annotation value that corresponds to the provided name. Returns null if no annotation with the given name exists for the given element. + The annotated element. + Namespace that the annotation belongs to. + Local name of the annotation. + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + The set of requested annotations + + + Gets annotations associated with an element. + The direct value annotations for the element. + The annotated element. + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + The value of the annotation. + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + The annotations to set + + + Represents a property binding specified as part of an EDM Type Annotation. + + + Gets the property given a value by the annotation. + The property given a value by the annotation. + + + Gets the expression producing the value of the annotation. + The expression producing the value of the annotation. + + + Represents an EDM Type Annotation. + + + Gets the value annotations for the properties of the type. + The value annotations for the properties of the type. + + + Represents an EDM Value Annotation. + + + Gets the expression producing the value of the annotation. + The expression producing the value of the annotation. + + + Represents an EDM Vocabulary Annotation. + + + Gets the qualifier used to discriminate between multiple bindings of the same property or type. + The qualifier. + + + Gets the element the annotation applies to. + The element the annotation applies to. + + + Gets the term bound by the annotation. + + + Represents the constants for CSDL XML. + + + Version 1.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2007/06/edmx". + + + Version 2.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2008/10/edmx". + + + Version 3.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2009/11/edmx". + + + The current latest version of EDMX. + + + Defines a location in a XML file. + + + Gets the line number in the file. + The line number in the file. + + + Gets the position in the line. + The position in the line. + + + Gets a string representation of the location. + A string representation of the location. + + + Provides CSDL parsing services for EDM models. + + + Returns an IEdmModel for the given CSDL artifacts. + Success of the parse operation. + Collection of XmlReaders containing the CSDL artifacts. + Model to be references by the created model. + The model generated by parsing. + Errors reported while parsing. + + + Returns an IEdmModel for the given CSDL artifacts. + Success of the parse operation. + Collection of XmlReaders containing the CSDL artifacts. + The model generated by parsing. + Errors reported while parsing. + + + Returns an IEdmModel for the given CSDL artifacts. + Success of the parse operation. + Collection of XmlReaders containing the CSDL artifacts. + Models to be references by the created model. + The model generated by parsing. + Errors reported while parsing. + + + Provides CSDL serialization services for EDM models. + + + + Outputs a CSDL artifact to the provided writer. + A value indicating whether serialization was successful. + Model to be written. + XmlWriter the generated CSDL will be written to. + Errors that prevented successful serialization, or no errors if serialization was successful. + + + Represents whether a vocabulary annotation should be serialized within the element it applies to or in a separate section of the CSDL. + + + The annotation should be serialized within the element being annotated. + + + The annotation should be serialized in a separate section. + + + Provides EDMX parsing services for EDM models. + + + Returns an IEdmModel for the given EDMX artifact. + Success of the parse operation. + XmlReader containing the EDMX artifact. + Model to be referenced by the created model. + The model generated by parsing + Errors reported while parsing. + + + Returns an IEdmModel for the given EDMX artifact. + Success of the parse operation. + XmlReader containing the EDMX artifact. + The model generated by parsing + Errors reported while parsing. + + + Returns an IEdmModel for the given EDMX artifact. + Success of the parse operation. + XmlReader containing the EDMX artifact. + Models to be references by the created model. + The model generated by parsing + Errors reported while parsing. + + + Specifies what target of an EDMX file. + + + The target is Entity Framework. + + + The target is OData. + + + Provides EDMX serialization services for EDM models. + + + Outputs an EDMX artifact to the provided XmlWriter. + A value indicating whether serialization was successful. + Model to be written. + XmlWriter the generated EDMX will be written to. + Target implementation of the EDMX being generated. + Errors that prevented successful serialization, or no errors if serialization was successfull. + + + Contains extension methods for interfaces that are useful to serialization. + + + Gets the annotations associated with the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association annotations. + The annotations for association end 1. + The annotations for association end 2. + The annotations for the referential constraint. + + + Gets the name used for the association end serialized for a navigation property. + The association end name. + Model containing the navigation property. + The navigation property. + + + Gets the fully-qualified name used for the association serialized for a navigation property. + The fully-qualified association name. + Model containing the navigation property. + The navigation property. + + + Gets the name used for the association serialized for a navigation property. + The association name. + Model containing the navigation property. + The navigation property. + + + Gets the namespace used for the association serialized for a navigation property. + The association namespace. + Model containing the navigation property. + The navigation property. + + + Gets the annotations associated with the association serialized for a navigation target of an entity set. + Model containing the entity set. + The entity set. + The navigation property. + The association set annotations. + The annotations for association set end 1. + The annotations for association set end 2. + + + Gets the name used for the association set serialized for a navigation property of an entity set. + The association set name. + Model containing the entity set. + The entity set. + The navigation property. + + + + + Gets an annotation indicating if the value should be serialized as an element. + Value indicating if the string should be serialized as an element. + Value the annotation is on. + Model containing the value. + + + Gets an annotation indicating whether the value of an enum member should be explicitly serialized. + Whether the member should have its value serialized. + The member the annotation is on. + Model containing the member. + + + + + Gets the primary end of a pair of partnered navigation properties, selecting the principal end if there is one and making a stable, arbitrary choice otherwise. + The primary end between the navigation property and its partner. + The navigation property. + + + Gets the schema an annotation should be serialized in. + Name of the schema the annotation belongs to. + Reference to the calling annotation. + Model containing the annotation. + + + Gets the location an annotation should be serialized in. + The location the annotation should be serialized at. + Reference to the calling annotation. + Model containing the annotation. + + + Sets the annotations for the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association annotations. + The annotations for association end 1. + The annotations for association end 2. + The annotations for the referential constraint. + + + Sets the name used for the association end serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association end name. + + + Sets the name used for the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association name. + + + Sets the namespace used for the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association namespace. + + + Sets the annotations for the association set serialized for a navigation target of an entity set. + Model containing the entity set. + The entity set. + The navigation property. + The association set annotations. + The annotations for association set end 1. + The annotations for association set end 2. + + + Sets the name used for the association set serialized for a navigation property of an entity set. + Model containing the entity set. + The entity set + The navigation property. + The association set name. + + + + + Sets an annotation indicating if the value should be serialized as an element. + Value to set the annotation on. + Model containing the value. + Value indicating if the value should be serialized as an element. + + + Sets an annotation indicating whether the value of an enum member should be explicitly serialized. + Member to set the annotation on. + Model containing the member. + If the value of the enum member should be explicitly serialized + + + + + Sets the schema an annotation should appear in. + The annotation the schema should be set for. + Model containing the annotation. + The schema the annotation belongs in. + + + Sets the location an annotation should be serialized in. + The annotation the location is being specified for. + Model containing the annotation. + The location the annotation should appear. + + + + to CLR value converter. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The delegate customizing conversion of structured values. + + + Converts edmValue to a value. + Converted boolean. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted byte. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a CLR byte array value. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted char. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted DateTime. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted DateTimeOffset. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted decimal. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted double. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted single. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted string. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted Time. + The EDM value to be converted. + edmValue + + + Converts edmValue to a CLR value of the specified type. Supported values for <typeparamref name="T" /> are: CLR primitive types such as and , CLR enum types, <see cref="T:System.Collections.Generic.IEnumerable`1" />, <see cref="T:System.Collections.Generic.ICollection`1" />, <see cref="T:System.Collections.Generic.IList`1" />, CLR classes with default constructors and public properties with setters and collection properties of the following shapes: <see cref="T:System.Collections.Generic.IEnumerable`1" /> EnumerableProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get; set; }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get { return this.nonNullCollection; } }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get { return this.nonNullList; } }. + The EDM value to be converted. + The CLR type. + + + Converts edmValue to a CLR value of the specified type. Supported values for clrType are: CLR primitive types such as and , CLR enum types, <see cref="T:System.Collections.Generic.IEnumerable`1" />, <see cref="T:System.Collections.Generic.ICollection`1" />, <see cref="T:System.Collections.Generic.IList`1" />, CLR classes with default constructors and public properties with setters and collection properties of the following shapes: <see cref="T:System.Collections.Generic.IEnumerable`1" /> EnumerableProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get; set; }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get { return this.nonNullCollection; } }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get { return this.nonNullList; } }. + A CLR value converted from edmValue. + The EDM value to be converted. + The CLR type. + + + Converts edmValue to a nullable value. + Converted boolean. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted byte. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted char. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a nullable value. + Converted DateTime. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted DateTimeOffset. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted decimal. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted double. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a nullable value. + Converted integer. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted single. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted Tim. + The EDM value to be converted. + edmValue + + + Registers the clrObject corresponding to the edmValue. All subsequent conversions from this edmValue performed by this instance of will return the specified clrObject. Registration is required to support graph consistency and loops during conversion process. This method should be called inside the delegate if the delegate is calling back into in order to populate properties of the clrObject. + The EDM value. + The CLR object. + + + + Expression evaluator. + + + + + Evaluates an expression with no value context. + The value that results from evaluating the expression in the context of the supplied value. + Expression to evaluate. The expression must not contain paths, because no context for evaluating a path is supplied. + + + Evaluates an expression in the context of a value. + The value that results from evaluating the expression in the context of the supplied value. + Expression to evaluate. + Value to use as context in evaluating the expression. + + + Evaluates an expression in the context of a value and a target type. + The value that results from evaluating the expression in the context of the supplied value, asserted to be of the target type. + Expression to evaluate. + Value to use as context in evaluating the expression. Cannot be null if the expression contains paths. + Type to which the result value is expected to conform. + + + Expression evaluator capable of producing CLR values. + + + + + Gets or sets an instance of that is used to produce CLR values during evaluation. + + + Evaluates an expression with no value context. + Expression to evaluate. The expression must not contain paths, because no context for evaluating a path is supplied. + The CLR type of the value to be returned. + + + Evaluates an expression in the context of a value. + Expression to evaluate. + Value to use as context in evaluating the expression. + The CLR type of the value to be returned. + + + Evaluates an expression in the context of a value and a target type. + Expression to evaluate. + Value to use as context in evaluating the expression. + Type to which the result value is expected to conform. + The CLR type of the value to be returned. + + + Defines EDM expression kinds. + + + + + + Represents an expression implementing . + + + + + + + + + Represents an expression implementing . + + + + + + + + + Represents an expression implementing . + + + + + + + + + Represents an expression implementing . + + + Represents an expression implementing . + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents an expression implementing . + + + + + + + + + + + + + + + Represents an expression implementing . + + + Represents an expression implementing + + + Represents an EDM type assertion expression. + + + Gets the expression for which the type is asserted. + The expression for which the type is asserted. + + + Gets the asserted type. + The asserted type. + + + + Represents an EDM boolean constant expression. + + + Represents an EDM multi-value construction expression. + + + Gets the declared type of the collection, or null if there is no declared type. + + + Gets the constructed element values. + The constructed element values. + + + Represents an EDM DateTime constant expression. + + + + Represents an EDM decimal constant expression. + + + Represents an EDM entity set reference expression. + + + Gets the referenced entity set. + The referenced entity set. + + + Represents an EDM enumeration member reference expression. + + + Gets the referenced enum member. + + + Represents an EDM expression. + + + Gets the kind of this expression. + The kind of this expression. + + + Represents an EDM floating constant expression. + + + Represents an EDM function application expression. + + + Gets the applied function. + The applied function. + + + Gets the arguments to the function. + The arguments to the function. + + + Represents an EDM function reference expression. + + + Gets the referenced function. + + + + Represents an EDM if expression. + + + Gets the expression to evaluate if Test evaluates to False. + The expression to evaluate if Test evaluates to False. + + + Gets the expression to evaluate if Test evaluates to True. + The expression to evaluate if Test evaluates to True. + + + Gets the test expression. + The test expression. + + + Represents an EDM integer constant expression. + + + Represents an EDM type test expression. + + + Gets the expression whose type is to be tested. + The expression whose type is to be tested. + + + Gets the type to be tested against. + The type to be tested against. + + + Represents an EDM labeled expression element. + + + Gets the underlying expression. + + + Represents a reference to an EDM labeled expression. + + + Gets the referenced expression. + + + + Represents an EDM parameter reference expression. + + + Gets the referenced parameter. + + + Represents an EDM path expression. + + + Gets the path as a decomposed qualified name. "A.B.C" is { "A", "B", "C" }. + The path as a decomposed qualified name. + + + Represents an EDM property constructor specified as part of a CSDL Record expression. + + + Gets the name of the property + The name of the property. + + + Gets the expression for the value of the property. + The expression for the value of the property. + + + Represents an EDM property reference expression. + + + + Gets the referenced property. + + + Represents an EDM record construction expression. + + + Gets the declared type of the record, or null if there is no declared type. + The declared type of the record, or null if there is no declared type. + + + Gets the constructed property values. + The constructed property values. + + + Represents an EDM string constant expression. + + + + Represents an EDM value term reference expression. + + + Gets the expression for the structured value containing the referenced term property. + The expression for the structured value containing the referenced term property. + + + Gets the optional qualifier. + The optional qualifier. + + + Gets the referenced value term. + The referenced value term. + + + Represents a reference to an EDM binary type. + + + Initializes a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Initializes a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Denotes whether the maximum length is the maximum allowed value. + The maximum length of a value of this type. + Denotes whether the length can vary. + + + Gets a value indicating whether this type specifies fixed length. + true if this type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this type specifies the maximum allowed max length. + true if this type specifies the maximum allowed maximum length; otherwise, false. + + + Gets the maximum length of this type. + The maximum length of this type. + + + Represents a definition of an EDM collection type. + + + Initializes a new instance of the EdmCollectionType class. + The type of the elements in this collection. + + + + Gets the kind of this type. + + + Represents a reference to an EDM collection type. + + + Initializes a new instance of the class. + The type definition this reference refers to. + Denotes whether the type can be nullable. + + + Gets the collection type to which this type refers. + The collection type to which this type refers. + + + Represents a definition of an EDM complex type. + + + Initializes a new instance of the EdmComplexType class. + The namespace this type belongs to. + The name of this type within its namespace. + + + Initializes a new instance of the EdmComplexType class. Note: Complex type inheritance is not supported in EDM version 3.0 and above. + The namespace this type belongs to. + The name of this type within its namespace. + The base type of this complex type. + Denotes whether this complex type is abstract. + Denotes whether this type is open. + + + Initializes a new instance of the EdmComplexType class. + The namespace this type belongs to. + The name of this type within its namespace. + Denotes whether this type is open. + + + + + + Gets the kind of this type. + + + Represents a reference to an EDM complex type. + + + Initializes a new instance of the class. + The type definition this reference refers to. + Denotes whether the type can be nullable. + + + Contains constant values that apply to the EDM model, regardless of source (for CSDL/EDMX specific constants see ). + + + Version 1.0 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2006/04/edm". + + + Version 1.1 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2007/05/edm". + + + Version 1.2 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2008/01/edm". + + + Version 2.0 of EDM. Corresponds to CSDL namespaces "http://schemas.microsoft.com/ado/2008/09/edm" and "http://schemas.microsoft.com/ado/2009/08/edm". + + + Version 3.0 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2009/11/edm". + + + The current latest version of EDM. + + + Provides predefined declarations relevant to EDM semantics. + + + Gets the model's annotations manager. + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The name of the entity container being found. + + + Searches for functions with the given name in this model and returns an empty enumerable if no such function exists. + A set functions sharing the specified qualified name, or an empty enumerable if no such function exists. + The qualified name of the function being found. + + + Searches for a type with the given name in this model and returns null if no such type exists. + The requested type, or null if no such type exists. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The qualified name of the value term being found. + + + Searches for vocabulary annotations specified by this model or a referenced model for a given element. + The vocabulary annotations for the element. + The annotated element. + + + + + + + + Gets a reference to a datetime primitive type definition. + A new datetime type reference. + Flag specifying if the referenced type should be nullable. + + + Gets a reference to a datetime with offset primitive type definition. + A new datetime with offset type reference. + Flag specifying if the referenced type should be nullable. + + + + + + + + + + + + + + + + + + + + + + Gets a reference to a time primitive type definition. + A new time type reference. + Flag specifying if the referenced type should be nullable. + + + + + + + + Represents a reference to an EDM decimal type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + The precision of values with this type. + The scale of values with this type. + + + Gets the precision of this type. + The precision of this type. + + + Gets the scale of this type. + The scale of this type. + + + Represents an EDM documentation. + + + Creates a new instance of the class. + + + Creates a new instance of the class. + A summary of the documentation. + A long description of the documentation. + + + Gets or sets a long description of this documentation. + A long description of this documentation. + + + Gets or sets a summary of this documentation. + A summary of this documentation. + + + Represents the common base class for all EDM elements. + + + Creates a new instance of the class. + + + Represents an EDM entity container. + + + Initializes a new instance of the EdmEntityContainer class. + Namespace of the entity container. + Name of the entity container. + + + Adds an entity container element to this entity container. + The element to add. + + + Creates and adds an entity set to this entity container. + Created entity set. + Name of the entity set. + The entity type of the elements in this entity set. + + + Creates and adds a function import to this entity container. + Created function import. + Name of the function import. + Return type of the function import. + + + Creates and adds a function import to this entity container. + Created function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + + + Creates and adds a function import to this entity container. + Created function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + A value indicating whether this function import has side-effects. + A value indicating whether this functon import can be composed inside expressions. + A value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + + + Gets a collection of the elements of this entity container. + A collection of the elements of this entity container. + + + Searches for an entity set with the given name in this entity container and returns null if no such set exists. + The requested element, or null if the element does not exist. + The name of the element being found. + + + Searches for function imports with the given name in this entity container and returns null if no such function import exists. + A group of the requested function imports, or null if no such function import exists. + The name of the function import being found. + + + Gets or sets the name of this entity container. + The name of this entity container. + + + Gets the namespace of this entity container. + + + Gets the kind of this schema element. + + + Represents a definition of an EDM entity reference type. + + + + + Gets the kind of this type. + + + Represents a reference to an EDM entity reference type. + + + Creates a new instance of the class. + The definition referred to by this reference. + Denotes whether the type can be nullable. + + + Gets the entity reference definition to which this type refers. + The entity reference definition to which this type refers. + + + Represents an EDM entity set. + + + Initializes a new instance of the EdmEntitySet class. + An containing this entity set. + Name of the entity set. + The entity type of the elements in this entity set. + + + Adds a navigation target, specifying the destination entity set of a navigation property of an entity in this entity set. + The navigation property the target is being set for. + The destination entity set of the specified navigation property. + + + Gets or sets the container of this entity set. + + + + + Finds the entity set that a navigation property targets. + The entity set that the navigation propertion targets, or null if no such entity set exists. + The navigation property. + + + + Gets the navigation targets of this entity set. + + + Represents a definition of an EDM entity type. + + + Initializes a new instance of the EdmEntityType class. + Namespace the entity belongs to. + Name of the entity. + + + Initializes a new instance of the EdmEntityType class. + Namespace the entity belongs to. + Name of the entity. + The base type of this entity type. + + + Initializes a new instance of the EdmEntityType class. + Namespace the entity belongs to. + Name of the entity. + The base type of this entity type. + Denotes an entity that cannot be instantiated. + Denotes if the type is open. + + + Adds the keyProperties to the key of this entity type. + The key properties. + + + Adds the keyProperties to the key of this entity type. + The key properties. + + + Creates and adds a one-side navigation property to this type. Navigation property partner is created, but not added to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + + + Creates and adds a one-side navigation property to this type. Navigation property partner is created, but not added to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + Multiplicity of the navigation source. + + + Creates and adds a navigation property to this type and adds its navigation partner to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + A value indicating whether the the navigation target is contained inside the navigation source. + An action to take when an instance of the navigation source type is deleted. + Name of the partner property. + Multiplicity of the navigation source. + A value indicating whether the the navigation source is contained inside the navigation target. + An action to take when an instance of the navigation target type is deleted. + + + Creates and adds a navigation property to this type and adds its navigation partner to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + Name of the partner property. + Multiplicity of the navigation source. + + + + + + + + Gets the kind of this type. + + + Represents a reference to an EDM entity type. + + + Creates a new instance of the class. + The definition refered to by this reference. + Denotes whether the type can be nullable. + + + Represents a member of an EDM enumeration type. + + + Initializes a new instance of the EdmEnumMember class. + The type that declares this member. + Name of this enumeration member. + Value of this enumeration member. + + + Gets the type that this member belongs to. + + + Gets the value of this enumeration type member. + + + Represents the definition of an Edm enumeration type. + + + Initializes a new instance of the EdmEnumType class. + The underlying type of this enumeration type. + + + Initializes a new instance of the EdmEnumType class. + The underlying type of this enumeration type. + Namespace this enumeration type belongs to. + Name of this enumeration type. + A value indicating whether the enumeration type can be treated as a bit field. + + + Gets the members of this enumeration type. + + + Gets or sets the name of this enumeration type. + + + Gets or sets the namespace this schema element belongs to. + + + Removes an existing member from this enum type + The member to add. + + + Gets the kind of this schema element. + + + Gets or sets a value indicating whether the enumeration type can be treated as a bit field. + + + Gets the kind of this type. + + + Gets the underlying type of this enumeration type. + + + Represents a reference to an EDM enumeration type. + + + Creates a new instance of the class. + The definition refered to by this reference. + Denotes whether the type can be nullable. + + + Represents an EDM function. + + + Creates a new instance of the class. + Namespace of the function. + Name of the function. + Return type of the function. + + + Initializes a new instance of the EdmFunction class. + Namespace of the function. + Name of the function. + Return type of the function. + Defining expression of the function (for example an eSQL expression). + + + Gets or sets the defining expression of this function. + The defining expression of this function. + + + Gets or sets the namespace of this function. + The namespace of this function. + + + Gets the element kind of this function, which is always Function. + The element kind of this function. + + + Represents an EDM function or function import. + + + Creates a new instance of the class. + The name of the function. + The return type of the function. + + + Adds a parameter to this function (as the last parameter). + The parameter being added. + + + Adds a parameter to this function (as the last parameter). + The name of the parameter being added. + The type of the parameter being added. + + + Creates and adds a parameter to this function (as the last parameter). + Created parameter. + The name of the parameter being added. + The type of the parameter being added. + Mode of the parameter. + + + Searches for a parameter with the given name in this function and returns null if no such parameter exists. + The requested parameter, or null if no such parameter exists. + The name of the parameter to be found. + + + Gets or sets the name of this function. + The name of this function. + + + Gets the parameters of this function. + The parameters of this function. + + + Gets or sets the return type of this function. + The return type of this function. + + + Represents an EDM function import. + + + Initializes a new instance of class (side-effecting, non-composable, non-bindable). + An containing this function import. + Name of the function import. + Return type of the function import. + + + Initializes a new instance of class (side-effecting, non-composable, non-bindable). + An containing this function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + + + Initializes a new instance of class. + An containing this function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + A value indicating whether this function import has side-effects. + A value indicating whether this functon import can be composed inside expressions. + A value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + + + + + Gets or sets the container of this function. + + + + + + Represents an EDM function parameter. + + + Initializes a new instance of the EdmFunctionParameter class. + Declaring function of the parameter. + Name of the parameter. + Type of the parameter. + + + Initializes a new instance of the EdmFunctionParameter class. + Declaring function of the parameter. + Name of the parameter. + Type of the parameter. + Mode of the parameter. + + + Gets the function or function import that declared this parameter. + + + Gets the mode of this parameter. + The mode of this parameter. + + + Gets the type of this parameter. + The type of this parameter. + + + Represents an EDM model. + + + + + + Adds a model reference to this model. + The model to reference. + + + Adds a vocabulary annotation to this model. + The annotation to be added. + + + Searches for vocabulary annotations specified by this model. + The vocabulary annotations for the element. + The annotated element. + + + + Removes an model reference from this model. + The model reference to be removed + + + Removes a vocabulary annotation from this model. + The annotation to be removed. + + + + Gets the collection of vocabulary annotations that are contained in this model. + + + Represents an EDM model. + + + Initializes a new instance of the EdmModelBase class. + Models to which this model refers. + Annotations manager for the model to use. + + + Adds a model reference to this model. + The model to reference. + + + Gets the model's annotations manager. + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The name of the entity container being found. + + + Searches for a function with the given name in this model and returns null if no such function exists. + A group of functions sharing the specified qualified name, or an empty enumerable if no such function exists. + The qualified name of the function being found. + + + Searches for a type with the given name in this model and returns null if no such type exists. + The requested type, or null if no such type exists. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The qualified name of the value term being found. + + + Searches for vocabulary annotations specified by this model or a referenced model for a given element. + The vocabulary annotations for the element. + The annotated element. + + + + + Removes an model reference from this model. + The model reference to be removed + + + + + + Represents a common base class for all named EDM elements. + + + Creates a new instance of the class. + + + Creates a new instance of the class. + The name of the element. + + + The name of the element. + + + Gets the name of this element. + The name of this element. + + + Represents an EDM navigation property. + + + Adds the properties to the list of dependent properties. + The dependent properties. + + + Adds the properties to the list of dependent properties. + The dependent properties. + + + Gets a value indicating whether the navigation target is contained inside the navigation source. + + + Creates two navigation properties representing an association between two entity types. + Navigation property pointing from sourceEntityType to targetEntityType. + Navigation property name. + Navigation target type. + Navigation target multiplicity. + A value indicating whether the navigation source logically contains the navigation target. + Action to take upon deletion of an instance of the navigation source. + Navigation partner property name. + Navigation source type. + Navigation source multiplicity + A value indicating whether the navigation target logically contains the navigation source. + Action to take upon deletion of an instance of the navigation target. + + + Creates two navigation properties representing an association between two entity types. + Navigation property pointing from sourceEntityType to targetEntityType. + Navigation property name. + Navigation target type. + Navigation target multiplicity. + Navigation partner property name. + Navigation source type. + Navigation source multiplicity + + + Creates two navigation properties representing an association between two entity types. + Navigation property. + Navigation property name. + Type of the navigation property. + A value indicating whether the navigation source logically contains the navigation target. + Action to take upon deletion of an instance of the navigation source. + Navigation partner property name. + Type of the navigation partner property. + A value indicating whether the navigation target logically contains the navigation source. + Action to take upon deletion of an instance of the navigation target. + + + Gets the entity type that this navigation property belongs to. + The entity type that this navigation property belongs to. + + + Gets or sets the dependent properties of the association this navigation property expresses. + The dependent properties of the association this navigation property expresses. + + + Gets a value indicating whether this navigation property is from the principal end of the association. + + + Gets the partner of this navigation property. + + + Gets or sets the action to take when an element of the defining type is deleted. + The action to take when an element of the defining type is deleted. + + + Gets or sets the navigation property from this properties destination back to the declaring type of this property. + The navigation property from this properties destination back to the declaring type of this property. + + + Gets the kind of this property. + The kind of this property. + + + Represents a reference to an EDM primitive type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Represents an EDM property. + + + Creates a new instance of the class. + The type that declares this property. + Name of the property. + Type of the property. + + + Gets the type that this property belongs to. + The type that this property belongs to. + + + Gets or sets the name of this property. + The name of this property. + + + Gets the kind of this property. + The kind of this property. + + + Gets or sets the type of this property. + The type of this property. + + + Represents a definition of an EDM row type. + + + + Gets the kind of this type. + + + Represents a reference to an EDM row type. + + + Creates a new instance of the class. + Type that describes this value. + Denotes whether the type can be nullable. + + + Represents a reference to an EDM spatial type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Spatial Reference Identifier for the spatial type being created. + + + Gets the precision of this temporal type. + The precision of this temporal type. + + + Represents a reference to an EDM string type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Denotes whether the max length is the maximum allowed value. + Maximum length of a value of this type. + Denotes whether the length can vary. + Denotes if string is encoded using Unicode. + Indicates the collation string to be used by the underlying store. + + + Gets a string representing the collation of this string type. + The collation of this string type. + + + Gets a value indicating whether this string type specifies fixed length. + True if this string type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this string type specifies the maximum allowed max length. + True if this string type specifies the maximum allowed max length; otherwise, false. + + + Gets a value indicating whether this string type supports unicode encoding. + True if this string type supports Unicode encoding; otherwise, false. + + + Gets the maximum length of this string type. + The maximum length of this string type. + + + Represents an EDM structural (i.e. non-navigation) property. + + + Initializes a new instance of the EdmStructuralProperty class. + The type that declares this property. + Name of the property. + Type of the property. + + + Creates a new instance of the class. + The type that declares this property. + The name of the property. + The type of the property. + The default value of this property. + The concurrency mode of this property. + + + Gets the concurrency mode of this property. + The concurrency mode of this property. + + + Gets the default value of this property. + The default value of this property. + + + Gets the kind of this property. + The kind of this property. + + + Common base class for definitions of EDM structured types. + + + Initializes a new instance of the EdmStructuredType class. + + + Initializes a new instance of the EdmStructuredType class. + Denotes a structured type that cannot be instantiated. + Denotes if the type is open. + Base type of the type + + + + Creates and adds a structural property to this type. + Created structural property. + Name of the property. + Type of the property. + + + Creates and adds a structural property to this type. + Created structural property. + Name of the property. + Type of the property. + The default value of this property. + The concurrency mode of this property. + + + + + + + + + + Represents a reference to an EDM temporal (Time, DateTime, DateTimeOffset) type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Precision of values with this type. + + + Gets the precision of this temporal type. + The precision of this temporal type. + + + Represents the definition of an EDM type. + + + Initializes a new instance of the class. + + + + + Represents a reference to an EDM type. + + + Creates a new instance of the class. + The type that describes this value. + Denotes whether the type can be nullable. + + + Gets the definition to which this type refers. + The definition to which this type refers. + + + Gets a value indicating whether this type is nullable. + True if this type is nullable; otherwise, false. + + + Returns the text representation of the current object. + The text representation of the current object. + + + Represents an EDM value term. + + + Initializes a new instance of the EdmValueTerm class. + Namespace of the term. + Name of the term within the namespace. + + + Initializes a new instance of the EdmValueTerm class. + Namespace of the term. + Name of the term within the namespace. + Type of the term. + + + Gets the local name of this term. + The local name of this term. + + + Gets the namespace of this term. + The namespace of this term. + + + Gets the schema element kind of this term. + The schema element kind of this term. + + + Gets the kind of this term. + The kind of this term. + + + Gets the type of this term. + The type of this term. + + + Represents an EDM annotation with an immediate native value. + + + Initializes a new instance of the class. + Namespace of the annotation. + Name of the annotation within the namespace. + Value of the annotation + + + The name of the annotation + + + The namespace Uri of the annotation. + + + Gets the value of this annotation. + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + Element to which the annotation is attached. + Namespace of the annotation. + Name of the annotation within the namespace. + + + Initializes a new instance of the class. + Element to which the annotation is attached. + Namespace of the annotation. + Name of the annotation within the namespace. + Value of the annotation + + + Gets or sets the element to which the annotation is attached. + + + Gets or sets the local name of the annotation + + + Gets or sets the namespace Uri of the annotation. + + + Gets the value of this annotation. + + + EdmDirectValueAnnotationsManager provides services for setting and getting transient annotations on elements. + + + Initializes a new instance of the EdmDirectValueAnnotationsManager class. + + + Retrieves an annotation value for an EDM element. Returns null if no annotation with the given name exists for the given element. + Returns the annotation that corresponds to the provided name. Returns null if no annotation with the given name exists for the given element. + The annotated element. + Namespace that the annotation belongs to. + Local name of the annotation. + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + The set of requested annotations + + + Retrieves the annotations that are directly attached to an element. + The annotations that are directly attached to an element (outside the control of the manager). + The element in question. + + + Gets annotations associated with an element. + The immediate value annotations for the element. + The annotated element. + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + New annotation to set. + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + The annotations to set + + + Represents a property binding specified as part of an EDM type annotation. + + + Initializes a new instance of the class. + + + Gets or sets the property that is given a value by the annotation. + + + Gets or sets the expression producing the value of the annotation. + + + Represents an EDM type annotation. + + + Initializes a new instance of the class. + + + Adds the property to this type annotation. + The property value binding being added. + + + Gets the value annotations for the properties of the type. + + + Removes the property from this type annotation. + The property value binding being removed. + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + Type of the annotation value. + + + Initializes a new instance of the EdmTypedDirectValueAnnotationBinding class. + + + Initializes a new instance of the EdmTypedDirectValueAnnotationBinding class. + Element to which the annotation is attached. + + + Initializes a new instance of the EdmTypedDirectValueAnnotationBinding class. + Element to which the annotation is attached. + Value of the annotation + + + Gets or sets the element to which the annotation is attached. + + + Gets the local name of the annotation + + + Gets the namespace Uri of the annotation. + + + Gets or sets the value of this annotation. + + + Represents an EDM value annotation. + + + Initializes a new instance of the class. + + + Gets or sets the expression producing the value of the annotation. + + + Represents an EDM annotation with an immediate value. + + + Initializes a new instance of the class. + + + Gets or sets the qualifier used to discriminate between multiple bindings of the same property or type. + + + Gets or sets the element the annotation applies to. + + + Gets or sets the term bound by the annotation. + + + Represents an EDM type assertion expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the expression for which the type is asserted. + + + Gets or sets the asserted type. + + + Represents an EDM multi-value construction expression. + + + Initializes a new instance of the class. + The constructed element values. + + + Adds the element to this expression. + The element being added. + + + Gets or sets the declared type of the collection. + + + Gets the constructed element values. + + + Gets the kind of this expression. + + + Removes the element from this expression. + The element being removed. + + + Represents an EDM entity set reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced entity set. + + + Represents an EDM enumeration member reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced enum member. + + + Represents an EDM function application expression. + + + Initializes a new instance of the class. + + + Adds the argument to this function. + The argument being added. + + + Gets or sets the applied function. + + + Gets the arguments to the function. + + + Gets the kind of this expression. + + + Removes the argument from this function. + The argument being removed. + + + Represents an EDM function reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced function. + + + Represents an EDM if expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the expression to evaluate if evaluates to false. + + + Gets or sets the expression to evaluate if evaluates to true. + + + Gets or sets the test expression. + + + Represents an EDM type test expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the expression whose type is to be tested. + + + Gets or sets the type to be tested against. + + + Represents an EDM labeled expression. + + + Initializes a new instance of the class. + + + Gets or sets the underlying element expression. + + + Gets the expression kind. + + + Gets or sets the label. + + + Represents an EDM labeled expression reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced labeled element. + + + Represents an EDM parameter reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced parameter. + + + Represents an EDM path expression. + + + Initializes a new instance of the class. + + + Adds the segment to this path. + The path segment being added. + + + Gets the kind of this expression. + + + Gets the path as a decomposed qualified name. "A.B.C" is { "A", "B", "C" }. + + + Removes the segment from this path. + The path segment being removed. + + + Represents an EDM property constructor specified as part of a EDM record construction expression. + + + Initializes a new instance of the class. + + + Gets or sets the name of the property. + + + Gets or sets the expression for the value of the property. + + + Represents an EDM property reference expression. + + + Initializes a new instance of the class. + + + Gets or sets the expression for the structured value containing the referenced property. + + + Gets the kind of this expression. + + + Gets or sets the referenced property. + + + Represents an EDM record construction expression. + + + Initializes a new instance of the class. + + + Adds the property to this record. + The property being added. + + + Gets or sets the declared type of the record, or null if there is no declared type. + + + Gets the kind of this expression. + + + Gets the constructed property values. + + + Removes the property from this record. + The property being removed. + + + Represents an EDM value term reference expression. + + + Initializes a new instance of the class. + + + Gets or sets the expression for the structured value containing the referenced term property. + + + Gets the kind of this expression. + + + Gets or sets the optional qualifier. + + + Gets or sets the referenced value term. + + + Represents an EDM binary constant. + + + Initializes a new instance of the class. + Type of the integer. + Integer value represented by this value. + + + Initializes a new instance of the class. + Integer value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM boolean constant. + + + Initializes a new instance of the class. + Type of the boolean. + Boolean value represented by this value. + + + Initializes a new instance of the class. + Boolean value represented by this value. + + + Gets the kind of this expression. + + + Gets a value indicating whether the value of this boolean value is true or false. + + + Gets the kind of this value. + + + Represents an EDM collection value. + + + Initializes a new instance of the class. + A reference to a collection type that describes this collection value + The collection of values stored in this collection value + + + Gets the values stored in this collection. + + + Gets the kind of this value. + + + Represents an EDM datetime constant. + + + Initializes a new instance of the class. + Type of the DateTime. + DateTime value represented by this value. + + + Initializes a new instance of the class. + DateTime value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM datetime with offset constant. + + + Initializes a new instance of the class. + Type of the DateTimeOffset. + DateTimeOffset value represented by this value. + + + Initializes a new instance of the class. + DateTimeOffset value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM decimal constant. + + + Initializes a new instance of the class. + Type of the decimal. + Decimal value represented by this value. + + + Initializes a new instance of the class. + Decimal value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM enumeration type value. + + + Initializes a new instance of the class. + A reference to the enumeration type that describes this value. + The enumeration type value. + + + Initializes a new instance of the class. + A reference to the enumeration type that describes this value. + The underlying type value. + + + Gets or sets the underlying type value of the enumeration type. + + + Gets the kind of this value. + + + Represents an EDM floating point constant. + + + Initializes a new instance of the class. + Type of the floating point. + Floating point value represented by this value. + + + Initializes a new instance of the class. + Floating point value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM guid constant. + + + Initializes a new instance of the class. + Type of the integer. + Integer value represented by this value. + + + Initializes a new instance of the class. + Integer value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM integer constant. + + + Initializes a new instance of the class. + Type of the integer. + Integer value represented by this value. + + + Initializes a new instance of the class. + Integer value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM null. + + + Gets the kind of this expression. + + + Singleton null expression instance. + + + Gets the kind of this value. + + + Represents a value of an EDM property. + + + Initializes a new instance of the EdmPropertyValue class. + Name of the property for which this provides a value. + Value of the property. + + + Gets the name of the property for which this provides a value. + + + Gets the property's value. + + + Represents an EDM string constant. + + + Initializes a new instance of the class. + Type of the string. + String value represented by this value. + + + Initializes a new instance of the class. + String value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM structured value. + + + Initializes a new instance of the EdmStructuredValue class. + Type that describes this value. + Child values of this value. + + + Retrieves the value corresponding to the given property name. Returns null if no such value exists. + The requested value, or null if no such value exists. + The property that describes the value being found. + + + Gets the property values of this structured value. + + + Gets the kind of this value. + + + Represents an EDM time constant. + + + Initializes a new instance of the class. + Type of the Time. + Time value represented by this value. + + + Initializes a new instance of the class. + Time value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM value. + + + Initializes a new instance of the EdmValue class. + Type of the value. + + + Gets {insert text here}. + + + Gets the type of this value. + + + Gets the kind of this value. + + + Represents a reportable error in EDM. + + + Creates a new instance of the class. + The location where the error occurred. + An integer code representing the error. + A human readable message describing the error. + + + Gets an integer code representing the error. + The code representing the error. + + + Gets the location of the error in the file in which it occurred. + The location of the error in the file in which it occurred. + + + Gets a human readable string describing the error. + A human readable string describing the error. + + + Gets a string representation of the error. + A string representation of the error. + + + EdmLib validation error codes + + + + + + References to EDM stream type are not supported before version 3.0. + + + References to EDM spatial types are not supported before version 3.0. + + + An exception was thrown by the underlying xml reader. + + + + + + + + + + + + + + + + + + + + + + + + An XML attribute or element representing EDM type is missing. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The value of the property must not be null. + + + An object with an interface kind property does not implement the interface corresponding to the value of that property. For example this error will be reported for an object that implements interface with kind property reporting .Entity, but does not implement interface. + + + The value of an interface kind property is not semantically valid. A semantically valid model must not contain elements of kind 'None'. + + + An enumeration property must not contain null elements. + + + The value of the enum type property is out of range. + + + If property P1 is a navigation property and P2 is its parnter, then partner property of P2 must be P1. + + + A chain of base types is cyclic. + + + + + + + + + An error occured processing the OnDelete element + + + No complex type with that name exists. + + + + + + Function import specifies an entity set expression which is not supported in this context. Function import entity set expression can be either an entity set reference or a path starting with a function import parameter and traversing navigation properties. + + + + + + + + + + + + Invalid multiplicty of the principal end of a navigation. + + + + + + Invalid multiplicty of the dependent end of a navigation. + + + Open types are supported only in version 1.2 and after version 2.0 + + + Vocabulary annotations are not supported before EDM 3.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A composable function import must have return type. + + + + + + + + + Nullable complex Type not supported in version 1.0 and 2.0. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Could not find a function with this name. + + + + + + + + + + + + The principal end of a referential constraint must be one of the ends of the association that defined the referential constraint. + + + + + + + + + + + + Value terms are not supported before EDM 3.0 + + + + + + + + + + + + + + + + + + Unsupported function import parameter type. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Binary value is invalid. + + + Floating point value is invalid. + + + DateTime value is invalid. + + + DateTimeOffset value is invalid. + + + Decimal value is invalid. + + + Guid value is invalid. + + + The type kind None is not semantically valid. A semantically valid model must not contain elements of type kind None. + + + + + + + + + + + + The IsType expression is invalid because it does not have 1 element. + + + The type name is not fully qualified and not a primitive. + + + The term name is not fully qualified. + + + No model was parsed because no XmlReaders were provided. + + + Model could not be parsed because one of the XmlReaders was null. + + + IsMaxMaxLength cannot be true if MaxLength is non-null. + + + ImmediateValueAnnotation is invalid as an element annotation. + + + The LabeledElement expression is invalid because it does not have 1 element. + + + Could not find a LabeledElement with that name + + + Could not find a enum member with that name + + + The AssertType expression is invalid because it does not have 1 element. + + + Could not find a Parameter with that name + + + A navigation property with = true must point to an optional target. + + + If a navigation property has = true and the target entity type is the same as the declaring type of the property, then the multiplicity of the source of navigation is Zero-Or-One. + + + If a navigation property has = true and the target entity type is defferent than the declaring type of the property, then the multiplicity of the source of navigation is One. + + + Navigation properties with setting are not supported before version 3.0. + + + The annotation target path cannot possibly refer to an annotable element. + + + A nullable type is not valid if a non-nullable type is required. + + + The expression is a primitive constant, and cannot be valid for an non-primitive type. + + + The primitive type is not valid for the requested type. + + + Null is not valid in a non nullable expression. + + + The expression is not valid for the asserted type. + + + A collection expression is not valid for a non-collection type. + + + A record expression is not valid for a non-structured type. + + + The record expression does not have all of the properties required for the specified type. + + + The record expression's type is not open, but the record expression has extra properties. + + + Target has multiple annotations with the same term and same qualifier. + + + Function application has wrong number of arguments for the function being applied. + + + Is it invalid to have multiple using statements with the same alias in a single schema element. + + + A model cannot be serialized to CSDL if it has references to types without fully qualified names. + + + The model could not be serialized because multiple schemas were produced and only a single output stream was found. + + + The Edmx version is not valid. + + + The EdmVersion is not valid. + + + Nothing was written because no schemas were produced. + + + Model has multiple entity containers with the same name. + + + The container name of a container element must be the full name of the container entity container. + + + A primitive constant expression is not valid for a non-primitive type. + + + The value of the integer constant is out of range for the asserted type. + + + The length of the string constant is too large for the asserted type. + + + The length of the binary constant is too large for the asserted type. + + + None is not a valid mode for a function import parameter. + + + A type without other errors must not have kind of none. + + + A primitive type without other errors must not have kind of none. + + + A property without other errors must not have kind of none. + + + A term without other errors must not have kind of none. + + + A schema element without other errors must not have kind of none. + + + An entity container element without other errors must not have kind of none. + + + A binary value must have content. + + + There can only be a single navigation property mapping with containment that targets a particular entity set. + + + The navigation properties partner does not point back to the correct type. + + + An entity set can only have one navigation property with containment. + + + If a navigation property is traversed from an entity set, and then it's partner is traversed from the target of the first mapping, the destination should be the originating entity set. + + + There can only be a single mapping from a given EntitySet with a particular navigation property. + + + An entity set must have a mapping for all of the navigation properties in its element type. + + + Type annotation does not have a property binding for all required properties. + + + Type annotation has a property binding for a non-existant property and its type is not open. + + + Time value is invalid. + + + The primitive type is invalid. + + + An Enum type must have an underlying type of integer. + + + Could not find a term with this name. + + + The principal properties of a referential constraint must match the key of the referential constraint. + + + A direct value annotation with the same name and namespace already exists. + + + AssociationSetEnd cannot infer an entity set because no set exists of the given type. + + + AssociationSetEnd cannot infer an entity set because more than one set exists of the given type. + + + Invalid entity set path. + + + Invalid enum member path. + + + An annotation qualifier must be a simple name. + + + Enum type could not be resolved. + + + Could not find a target with this name. + + + Represents a collection of validation methods. + + + Validates the and all of its properties given certain version. + True if model is valid, otherwise false. + The root of the model to be validated. + The custom rule set to validate against. + The errors encountered while validating the model. + + + Validates the and all of its properties using the current version of the model. If the model has no version, is used. + True if model is valid, otherwise false. + The root of the model to be validated. + The errors encountered while validating the model. + + + Validates the and all of its properties given certain version. + True if model is valid, otherwise false. + The root of the model to be validated. + The version of EDM to validate against. + The errors encountered while validating the model. + + + Collection of extension methods to assert that an expression is of the required type. + + + Determines if the type of an expression is compatible with the provided type + A value indicating whether the expression is valid for the given type or not. + The expression to assert the type of. + The type to assert the expression as. + Errors produced if the expression does not match the specified type. + + + Defines an object as a location of itself. + + + Gets the object. + + + Gets a string representation of the location. + A string representation of the location. + + + Specifies a context that records errors reported by validation rules. + + + Adds an error with the validation context. + The location of the error. + The value representing the error. + The message text describing the error. + + + Adds an error with the validation context. + The error to register. + + + Method returns true if the element is known to have structural errors associated with it. + True if the element has structural errors associated with it. + The element to test. + + + Gets the model being validated. + The model being validated. + + + Contains IsBad() and Errors() extension methods. + + + Gets the errors, if any, that belong to this element or elements that this element contains. For example errors for a structural type include the errors of the type itself and errors of its declared properties. The method does not analyze elements referenced by this element. For example errors of a property do not include errors from its type. + Any errors that belong to this element or elements that element contains. + Reference to the calling object. + + + Returns true if this element contains errors returned by the <see cref="M:Microsoft.Data.Edm.Validation.ValidationExtensionMethods.Errors(Microsoft.Data.Edm.IEdmElement)" /> method. + This element is an invalid element. + Reference to the calling object. + + + Gets the errors, if any, that belong to this type reference or its definition. + Any errors that belong to this type reference or its definition. + The type reference. + + + Represents a semantic validation rule. + + + Creates a new instance of the class. + + + Represents a validation rule that is valid for a specific type. + The type that the rule is valid for. + + + + Built in Edm validation rules + + + Validates that the max length of a binary type is not negative. + + + Validates that IsMaxMaxLength cannot be true if MaxLength is non-null. + + + Validates that all properties of a collection expression are of the correct type. + + + Validates that a complex type is not abstract. + + + Validates that a complex type does not inherit. + + + Validates that if a function import is composable, it must have a return type. + + + Validates that the precision is between 0 and the max precision of the decimal type. + + + Validates that the scale is between 0 and the precision of the decimal type. + + + Validates that no direct value annotations share the same name and namespace. + + + The container name of an entity container element must match the full name of the containing entity container. + + + Validates that there are no duplicate names in an entity container. + + + An entity container element without other errors must not have kind of none. + + + Validates that the entity type wrapped in this entity reference can be found through the model being validated. + + + Validates that an entity set can only have a single navigation property targetting it that has Contains set to true. + + + Validates that the entity type of an entity set can be found from the model being validated. + + + Validates that if a navigation property is traversed to another entity set, and then the navigation properties partner is traversed, the destination will be the source entity set. + + + Validates that no navigation property is mapped to two different entity sets. + + + + Validates that there are not duplicate properties in an entity key. + + + Validates that all parts of an entity key are scalar. + + + Validates that no part of an entity key is a binary primitive type. + + + Validates that a key is not defined if there is already a key in the base type. + + + Validates that no part of an entity key is nullable. + + + Validates that the entity type has a key. + + + Validates that all properties in the key of an entity blong to that entity. + + + + Raises an error if the underlying type of an enum type is not an integer type. + + + Validates that there are not duplicate enum members in an enum. + + + Raises an error if an enum type is found. + + + Validates the types of a function application are correct. + + + Validates that a function does not have multiple parameters with the same name. + + + Validates that if a function is bindable, it must have parameters. + + + Validates that if a function is composable, it is not also sideeffecting. + + + Validates that the entity set of a function import is defined using a path or an entity set reference expression. + + + + Validates that a function is not bindable. + + + Validates that a function import is not composable. + + + Validates that a function import is not sideeffecting. + + + Validates that no function import parameters have mode of none. + + + Validates that the type of a function imports parameter is correct. + + + + Validates that a function import has an allowed return type + + + + Validates that no function parameters are output parameters. + + + + Validates that an if expression has a boolean condition. + + + Validates that an immediate value annotation that is flagged to be serialized as an element can be serialized safely. + + + Validates that an immediate value annotation has a name and a namespace. + + + Validates that there are not duplicate properties in an entity key. + + + Validates every schema element in the current model is unique across all referenced models. + + + Validates every schema element in the current model (except for entity containers) is unique across all referenced models. + + + Validates that an element name matches the allowed pattern of names according to the CSDL spec. + + + Validates that an element name is not too long according to the CSDL spec. + + + Validates that a name is not empty or whitespace. + + + Validates that is not set prior to V3. + + + Validates that the type of a navigation property corresponds to the other end of the association and the multiplicity of the other end. + + + Validates that if the dependent properties are equivalent to the key of the dependent end, the multiplicity of the dependent end cannot be 1 Validates multiplicity of the dependent end according to the following rules: 0..1, 1 - if dependent properties represent the dependent end key. * - if dependent properties don't represent the dependent end key. + + + Validates that all dependent properties of a navigation property belong to the dependent entity type. + + + Validates that the dependent properties of a navigation property contain no duplicates. + + + Validates that the navigation property does not have both a multiplicity of many and an OnDelete operation. + + + Validates that only one end of an association has an OnDelete operation. + + + Validates that all dependent properties are a subset of the dependent entity types key. + + + Validates that the target of a navigation property's partner is the declaring type of the original. + + + Validates multiplicity of the principal end: 0..1 - if some dependent properties are nullable, 1 - if some dependent properties are not nullable. * - not allowed. + + + Validates that each pair of properties between the dependent properties and the principal ends key are of the same type. + + + Validates that if a navigation property has = true and the target entity type is defferent than the declaring type of the property, then the multiplicity of the source of navigation is One. + + + Validates that if a navigation property has = true and the target entity type is the same as the declaring type of the property, then the multiplicity of the source of navigation is Zero-Or-One. This depends on there being a targetting cycle. Because of the rule , we know that either this is always true, or there will be an error + + + Validates that if a navigation property has = true and the target entity type is the same as the declaring type of the property, then the multiplicity of the target of navigation is 0..1 or Many. This depends on there being a targetting cycle. Because of the rule , we know that either this is always true, or there will be an error + + + Open types are supported only in version 1.2 and after version 2.0. + + + A primtive type without other errors must not have kind of none. + + + Validates that if a primitive value declares a type, the value is acceptable for the type. + + + A property without other errors must not have kind of none. + + + Validates that the value of a property value binding is the correct type. + + + Validates that if a value record expression declares a type, the property types are correct. + + + Validates that a row type does not have a base type. + + + Validates that a row type contains at least one property. + + + A schema element without other errors must not have kind of none. + + + Validates that an element namespace matches the allowed pattern of namespaces according to the CSDL spec. + + + Validates that an element namespace is not too long according to the CSDL spec. + + + Validates that an element namespace is not empty or whitespace. + + + Validates that an element namespace is not a reserved system namespace. + + + References to EDM spatial types are not supported before version 3.0. + + + References to EDM stream type are not supported before version 3.0. + + + Validates that the max length of a string is not negative. + + + Validates that IsMaxMaxLength cannot be true if MaxLength is non-null. + + + Validates that the property is of an allowed type. + + + Validates that if the concurrency mode of a property is fixed, the type is primitive. + + + Validates that any property with a complex type is not nullable. + + + Validates that the base type of a complex type is complex, and the base type of an entity type is an entity. + + + Validates that the base type of a structured type can be found from the model being validated. + + + Validates that a type does not have a property with the same name as that type. + + + Validates that the declaring type of a property contains that property. + + + Validates that there are not duplicate properties in a type. + + + Validates that the precision is between 0 and the max precision of the temporal type. + + + A term without other errors must not have kind of none. + + + Validates that a type annotation implements its term type properly. + + + Validates that a vocabulary annotations term can be found through the model containing the annotation. + + + A type without other errors must not have kind of none. + + + Validates that a type reference refers to a type that can be found through the model being validated. + + + Validates that if a value annotation declares a type, the expression for that annotation has the correct type. + + + Validates that a vocabulary annotations term can be found through the model containing the annotation. + + + Value terms are not supported before EDM 3.0. + + + Validates that there are no annotations that share the same term and qualifier. + + + Validates that a vocabulary annotations target can be found through the model containing the annotation. + + + Qualifier must be simple name. + + + Vocabulary annotations are not supported before EDM 3.0. + + + Provides a set of rules to run during validation. + + + Creates a new instance of the class. + The rules to be contained in this ruleset. + + + Initializes a new instance of the ValidationRuleSet class. + Ruleset whose rules should be contained in this set. + Additional rules to add to the set. + + + Gets the default validation ruleset for the given version. + The set of rules to validate that the model conforms to the given version. + The EDM version being validated. + + + Gets all of the rules in this ruleset. + All of the rules in this ruleset. + + + Gets all of the rules in this ruleset. + All of the rules in this ruleset. + + + Defines Edm values + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value with an unknown or error kind. + + + Represents an EDM binary value. + + + Gets the definition of this binary value. + + + Represents an EDM boolean value. + + + Gets a value indicating whether the value of this boolean value is true or false. + + + Represents an EDM collection value. + + + Gets the values stored in this collection. + + + Represents an EDM datetime with offset value. + + + Gets the definition of this value. + + + Represents an EDM datetime value. + + + Gets the definition of this datetime value. + + + Represents an EDM decimal value. + + + Gets the definition of this decimal value. + + + Represents a lazily computed value. + + + Gets the data stored in this value. + + + Represents an EDM enumeration type value. + + + Gets the underlying type value of the enumeration type. + + + Represents an EDM floating point value. + + + Gets the definition of this floating value. + + + Represents an EDM integer value. + + + Gets the definition of this guid value. + + + Represents an EDM integer value. + + + Gets the definition of this integer value. + + + + + Represents a value of an EDM property. + + + Gets the name of the property this value is associated with. + + + Represents an EDM string value. + + + Gets the definition of this string value. + + + Represents an EDM structured value. + + + Finds the value corresponding to the provided property name. + The found property, or null if no property was found. + Property to find the value of. + + + Gets the property values of this structured value. + + + Represents an EDM time value. + + + Gets the definition of this time value. + + + Represents an EDM value. + + + Gets the type of this value. + + + Gets the kind of this value. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/RUS/Microsoft.Data.Edm.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/RUS/Microsoft.Data.Edm.resources.dll new file mode 100644 index 0000000..2dadc7b Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/net40/RUS/Microsoft.Data.Edm.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/CHS/Microsoft.Data.Edm.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/CHS/Microsoft.Data.Edm.SL.resources.dll new file mode 100644 index 0000000..974c1b4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/CHS/Microsoft.Data.Edm.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/CHT/Microsoft.Data.Edm.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/CHT/Microsoft.Data.Edm.SL.resources.dll new file mode 100644 index 0000000..4004fbf Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/CHT/Microsoft.Data.Edm.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/DEU/Microsoft.Data.Edm.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/DEU/Microsoft.Data.Edm.SL.resources.dll new file mode 100644 index 0000000..12afd29 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/DEU/Microsoft.Data.Edm.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/ESN/Microsoft.Data.Edm.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/ESN/Microsoft.Data.Edm.SL.resources.dll new file mode 100644 index 0000000..057b106 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/ESN/Microsoft.Data.Edm.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/FRA/Microsoft.Data.Edm.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/FRA/Microsoft.Data.Edm.SL.resources.dll new file mode 100644 index 0000000..f1715cc Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/FRA/Microsoft.Data.Edm.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/ITA/Microsoft.Data.Edm.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/ITA/Microsoft.Data.Edm.SL.resources.dll new file mode 100644 index 0000000..3644752 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/ITA/Microsoft.Data.Edm.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/JPN/Microsoft.Data.Edm.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/JPN/Microsoft.Data.Edm.SL.resources.dll new file mode 100644 index 0000000..37b8db0 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/JPN/Microsoft.Data.Edm.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/KOR/Microsoft.Data.Edm.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/KOR/Microsoft.Data.Edm.SL.resources.dll new file mode 100644 index 0000000..046ef09 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/KOR/Microsoft.Data.Edm.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/Microsoft.Data.Edm.SL.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/Microsoft.Data.Edm.SL.dll new file mode 100644 index 0000000..a1eac44 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/Microsoft.Data.Edm.SL.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/Microsoft.Data.Edm.SL.xml b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/Microsoft.Data.Edm.SL.xml new file mode 100644 index 0000000..e7bfb75 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/Microsoft.Data.Edm.SL.xml @@ -0,0 +1,5221 @@ + + + + Microsoft.Data.Edm + + + + Enumerates the EDM property concurrency modes. + + + Denotes a property that should be used for optimistic concurrency checks. + + + Denotes a property that should not be used for optimistic concurrency checks. + + + Defines EDM container element types. + + + Represents an element where the container kind is unknown or in error. + + + Represents an element implementing . + + + Represents an element implementing . + + + Contains IsEquivalentTo() extension methods. + + + Returns true if the compared expression is semantically equivalent to this expression. + Equivalence of the two expressions. + Reference to the calling object. + Expression being compared to. + + + Returns true if the compared entity set is semantically equivalent to this entity set. + The equivalence of the entity sets. + Reference to the calling object. + Entity set being compared to. + + + Returns true if the compared function is semantically equivalent to this function. + Equivalence of the two functions. + Reference to the calling object. + Function being compared to. + + + Returns true if the compared function import is semantically equivalent to this function import. + Equivalence of the two function imports. + Reference to the calling object. + Function import being compared to. + + + Returns true if the compared function parameter is semantically equivalent to this function parameter. + Equivalence of the two function parameters. + Reference to the calling object. + Function parameter being compared to. + + + Returns true if the compared property is semantically equivalent to this property. + Equivalence of the two properties. + Reference to the calling object. + Property being compared to. + + + Returns true if the compared type is semantically equivalent to this type. + Equivalence of the two types. + Reference to the calling object. + Type being compared to. + + + Returns true if the compared type is semantically equivalent to this type. + Equivalence of the two types. + Reference to the calling object. + Type being compared to. + + + Enumerates the modes of parameters of EDM functions. + + + Denotes that a parameter with an unknown or error directionality. + + + Denotes that a parameter is used for input. + + + Denotes that a parameter is used for output. + + + Denotes that a parameter is used for input and output. + + + Represents the location of an EDM item. + + + Creates a new instance of the class. + + + Gets a string representation of the location. + A string representation of the location. + + + Enumerates the multiplicities of EDM navigation properties. + + + The Multiplicity of the association end is unknown. + + + The Multiplicity of the association end is zero or one. + + + The Multiplicity of the association end is one. + + + The Multiplicity of the association end is many. + + + Represents a mapping from an EDM navigation property to an entity set. + + + Creates a new navigation target mapping. + The navigation property. + The entity set that the navigation propertion targets. + + + Gets the navigation property. + + + Gets the target entity set. + + + Enumerates the actions EDM can apply on deletes. + + + Takes no action on delete. + + + On delete also delete items on the other end of the association. + + + Enumerates the kinds of EDM primitives. + + + Represents a primitive type of unknown kind. + + + Represents a Binary type. + + + Represents a Boolean type. + + + Represents a Byte type. + + + Represents a DateTime type. + + + Represents a DateTimeOffset type. + + + Represents a Decimal type. + + + Represents a Double type. + + + Represents a Guid type. + + + Represents an Int16 type. + + + Represents an Int32 type. + + + Represents an Int64 type. + + + Represents a SByte type. + + + Represents a Single type. + + + Represents a String type. + + + Represents a Stream type. + + + Represents a Time type. + + + Represents an arbitrary Geography type. + + + Represents a geography Point type. + + + Represents a geography LineString type. + + + Represents a geography Polygon type. + + + Represents a geography GeographyCollection type. + + + Represents a geography MultiPolygon type. + + + Represents a geography MultiLineString type. + + + Represents a geography MultiPoint type. + + + Represents an arbitrary Geometry type. + + + Represents a geometry Point type. + + + Represents a geometry LineString type. + + + Represents a geometry Polygon type. + + + Represents a geometry GeometryCollection type. + + + Represents a geometry MultiPolygon type. + + + Represents a geometry MultiLineString type. + + + Represents a geometry MultiPoint type. + + + Returns true if this type kind represents a temporal type. + + + Returns true if this primitive type kind represents an integer type. + + + Returns true if this type kind represents a spatial type. + + + Defines EDM property types. + + + Represents a property implementing . + + + Represents a property implementing . + + + Represents a property with an unknown or error kind. + + + Defines EDM schema element types. + + + Represents a schema element with unknown or error kind. + + + Represents a schema element implementing . + + + Represents a schema element implementing . + + + Represents a schema element implementing . + + + Represents a schema element implementing + + + Defines EDM term kinds. + + + Represents a term with unknown or error kind. + + + Represents a term implementing . + + + Represents a term implementing . + + + Defines EDM metatypes. + + + Represents a type with an unknown or error kind. + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Represents a type implementing . + + + Returns true if this type kind represents a structured type. + + + Provides semantics of the predefined EDM types. + + + Returns a reference to this row type definition. + A reference to this row type definition. + Reference to the calling object. + Flag specifying if the referenced type should be nullable. + + + If this reference is of a binary type, this will return a valid binary type reference to the type definition. Otherwise, it will return a bad binary type reference. + A valid binary type reference if the definition of the reference is of a binary type. Otherwise a bad binary type reference. + Reference to the calling object. + + + If this reference is of a collection type, this will return a valid collection type reference to the type definition. Otherwise, it will return a bad collection type reference. + A valid collection type reference if the definition of the reference is of a collection type. Otherwise a bad collection type reference. + Reference to the calling object. + + + If this reference is of a complex type, this will return a valid complex type reference to the type definition. Otherwise, it will return a bad complex type reference. + A valid complex type reference if the definition of the reference is of a complex type. Otherwise a bad complex type reference. + Reference to the calling object. + + + If this reference is of a decimal type, this will return a valid decimal type reference to the type definition. Otherwise, it will return a bad decimal type reference. + A valid decimal type reference if the definition of the reference is of a decimal type. Otherwise a bad decimal type reference. + Reference to the calling object. + + + If this reference is of an entity type, this will return a valid entity type reference to the type definition. Otherwise, it will return a bad entity type reference. + A valid entity type reference if the definition of the reference is of an entity type. Otherwise a bad entity type reference. + Reference to the calling object. + + + If this reference is of an entity reference type, this will return a valid entity reference type reference to the type definition. Otherwise, it will return a bad entity reference type reference. + A valid entity reference type reference if the definition of the reference is of an entity reference type. Otherwise a bad entity reference type reference. + Reference to the calling object. + + + If this reference is of an enumeration type, this will return a valid enumeration type reference to the type definition. Otherwise, it will return a bad enumeration type reference. + A valid enumeration type reference if the definition of the reference is of an enumeration type. Otherwise a bad enumeration type reference. + Reference to the calling object. + + + If this reference is of a primitive type, this will return a valid primitive type reference to the type definition. Otherwise, it will return a bad primitive type reference. + A valid primitive type reference if the definition of the reference is of a primitive type. Otherwise a bad primitive type reference. + Reference to the calling object. + + + If this reference is of a row type, this will return a valid row type reference to the type definition. Otherwise, it will return a bad row type reference. + A valid row type reference if the definition of the reference is of a row type. Otherwise a bad row type reference. + Reference to the calling object. + + + If this reference is of a spatial type, this will return a valid spatial type reference to the type definition. Otherwise, it will return a bad spatial type reference. + A valid spatial type reference if the definition of the reference is of a spatial type. Otherwise a bad spatial type reference. + Reference to the calling object. + + + If this reference is of a string type, this will return a valid string type reference to the type definition. Otherwise, it will return a bad string type reference. + A valid string type reference if the definition of the reference is of a string type. Otherwise a bad string type reference. + Reference to the calling object. + + + If this reference is of a structured type, this will return a valid structured type reference to the type definition. Otherwise, it will return a bad structured type reference. + A valid structured type reference if the definition of the reference is of a structured type. Otherwise a bad structured type reference. + Reference to the calling object. + + + If this reference is of a temporal type, this will return a valid temporal type reference to the type definition. Otherwise, it will return a bad temporal type reference. + A valid temporal type reference if the definition of the reference is of a temporal type. Otherwise a bad temporal type reference. + Reference to the calling object. + + + Determines if the potential base type is in the inheritance hierarchy of the type being tested. + True if and only if the type inherits from the potential base type. + Type to be tested for derivation from the other type. + The potential base type of the type being tested. + + + Returns true if this reference refers to a binary type. + This reference refers to a binary type. + Reference to the calling object. + + + Returns true if this reference refers to a boolean type. + This reference refers to a boolean type. + Reference to the calling object. + + + Returns true if this reference refers to a byte type. + This reference refers to a byte type. + Reference to the calling object. + + + Returns true if this reference refers to a collection. + This reference refers to a collection. + Reference to the calling object. + + + Returns true if this reference refers to a complex type. + This reference refers to a complex type. + Reference to the calling object. + + + Returns true if this reference refers to a DateTime type. + This reference refers to a DateTime type. + Reference to the calling object. + + + Returns true if this reference refers to a DateTimeOffset type. + This reference refers to a DateTimeOffset type. + Reference to the calling object. + + + Returns true if this reference refers to a decimal type. + This reference refers to a decimal type. + Reference to the calling object. + + + Returns true if this reference refers to a double type. + This reference refers to a double type. + Reference to the calling object. + + + Returns true if this reference refers to an entity type. + This reference refers to an entity type. + Reference to the calling object. + + + Returns true if this reference refers to an entity type. + This reference refers to an entity type. + Reference to the calling object. + + + Returns true if this reference refers to an enumeration type. + This reference refers to an enumeration type. + Reference to the calling object. + + + Returns true if this reference refers to a floating point type. + This reference refers to a floating point type. + Reference to the calling object. + + + Returns true if this reference refers to a GUID type. + This reference refers to a GUID type. + Reference to the calling object. + + + Returns true if this reference refers to an Int16 type. + This reference refers to an Int16 type. + Reference to the calling object. + + + Returns true if this reference refers to an Int32 type. + This reference refers to an Int32 type. + Reference to the calling object. + + + Returns true if this reference refers to an Int64 type. + This reference refers to an Int64 type. + Reference to the calling object. + + + Returns true if this primitive type kind represents an integer type. + This kind refers to an integer type. + Reference to the calling object. + + + Returns true if this reference refers to an integer type. + This reference refers to an integer type. + Reference to the calling object. + + + Determines if a type is equivalent to or derived from another type. + True if and only if the thisType is equivalent to or inherits from otherType. + Type to be tested for equivalence to or derivation from the other type. + Type that is the other type. + + + Returns true if this reference refers to a primitive type. + This reference refers to a primitive type. + Reference to the calling object. + + + Returns true if this reference refers to a row type. + This reference refers to a row type. + Reference to the calling object. + + + Returns true if this reference refers to an SByte type. + This reference refers to an SByte type. + Reference to the calling object. + + + Returns true if this reference refers to a signed integral type. + This reference refers to a signed integral type. + Reference to the calling object. + + + Returns true if this reference refers to a single type. + This reference refers to a single type. + Reference to the calling object. + + + Returns true if this type kind represents a spatial type. + This kind refers to a spatial type. + Reference to the calling object. + + + Returns true if this definition refers to a spatial type. + This definition refers to a spatial type. + Definition to the calling object. + + + Returns true if this reference refers to a spatial type. + This reference refers to a spatial type. + Reference to the calling object. + + + Returns true if this reference refers to a stream type. + This reference refers to a stream type. + Reference to the calling object. + + + Returns true if this reference refers to a string type. + This reference refers to a string type. + Reference to the calling object. + + + Returns true if this type kind represents a structured type. + This kind refers to a structured type. + Reference to the calling object. + + + Returns true if this reference refers to a structured type. + This reference refers to a structured type. + Reference to the calling object. + + + Returns true if this type kind represents a temporal type. + This kind refers to a temporal type. + Reference to the calling object. + + + Returns true if this reference refers to a temporal type. + This reference refers to a temporal type. + Reference to the calling object. + + + Returns true if this reference refers to a time type. + This reference refers to a time type. + Reference to the calling object. + + + Returns the primitive kind of the definition of this reference. + The primitive kind of the definition of this reference. + Reference to the calling object. + + + Contains extension methods for interfaces. + + + + + + + + + + + + + + Gets the entity type declaring this navigation property. + The entity type that declares this navigation property. + Reference to the calling object. + + + Gets the direct value annotations for an element. + The immediate value annotations of the element. + The model containing the annotations. + The annotated element. + + + + Gets the entity containers belonging to this model. + Entity containers belonging to this model. + Model to search for entity containers. + + + + + + + + Searches for an entity container with the given name in this model and all referenced models and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The model to search. + The qualified name of the entity container being found. + + + Searches for functions with the given name in this model and all referenced models and returns an empty enumerable if no such functions exist. + The requested functions. + The model to search. + The qualified name of the functions being found. + + + + Finds a property of a record expression. + The property, if found, otherwise null. + The record expression. + Name of the property to find. + + + + Gets the binding of a property of the type term of a type annotation. + The binding of the property in the type annotation, or null if no binding exists. + Annotation to search. + Property to search for. + + + Gets the binding of a property of the type term of a type annotation. + The binding of the property in the type annotation, or null if no binding exists. + Annotation to search. + Name of the property to search for. + + + Searches for a type with the given name in this model and all referenced models and returns null if no such type exists. + The requested type, or null if no such type exists. + The model to search. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and all referenced models and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The model to search. + The qualified name of the value term being found. + + + Gets an annotatable element's vocabulary annotations defined in a specific model and models referenced by that model. + Annotations attached to the element by this model or by models referenced by this model. + The model to search. + Element to check for annotations. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term. + Model to search. + Element to check for annotations. + Term to search for. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term with the given qualifier. + Model to search. + Element to check for annotations. + Term to search for. + Qualifier to apply. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term. + Model to search. + Element to check for annotations. + Name of the term to search for. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations that bind a particular term. + Annotations attached to the element by this model or by models referenced by this model that bind the term with the given qualifier. + Model to search. + Element to check for annotations. + Name of the term to search for. + Qualifier to apply. + Type of the annotation being returned. + + + Gets an annotatable element's vocabulary annotations defined in a specific model and models referenced by that model. + Annotations attached to the element (or, if the element is a type, to its base types) by this model or by models referenced by this model. + The model to search. + Element to check for annotations. + + + + + + Gets an annotation value from an annotatable element. + The model containing the annotation. + The annotated element. + Type of the annotation being returned. + + + Gets an annotation value corresponding to the given namespace and name provided. + The model containing the annotation. + The annotated element. + Namespace of the annotation. + Name of the annotation inside the namespace. + Type of the annotation being returned. + + + Gets an annotation value corresponding to the given namespace and name provided. + The requested annotation value, if it exists. Otherwise, null. + The model containing the annotation. + The annotated element. + Namespace of the annotation. + Name of the annotation inside the namespace. + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + The model in which to find the annotations. + The set of requested annotations. + + + Gets documentation for a specified element. + Documentation that exists on the element. Otherwise, null. + The model containing the documentation. + The element. + + + + Gets the of a property of a term type that has been applied to the type of a value. + Value of the property evaluated against the supplied value, or null if no relevant type annotation exists. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a property of a term type that has been applied to the type of a value. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a property of a term type that has been applied to the type of a value. + Value of the property evaluated against the supplied value, or null if no relevant type annotation exists. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a property of a term type that has been applied to the type of a value. + Model to search for type annotations. + Value to use as context in evaluation. + Property to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + Gets the of a vocabulary term that has been applied to the type of a value. + Value of the term evaluated against the supplied value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + + + Gets the CLR value of a vocabulary term that has been applied to the type of a value. + Model to search for term annotations. + Value to use as context in evaluation. + Name of the term to evaluate. + Qualifier to apply. + Evaluator to use to perform expression evaluation. + The CLR type of the value to be returned. + + + + + + + + Gets the multiplicity of this end of a bidirectional relationship between this navigation property and its partner. + The multiplicity of this end of the relationship. + Reference to the calling object. + + + + + + + + + Gets all schema elements from the model, and models referenced by it. + Schema elements from the model, and models referenced by it. + Model to search for elements + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + The model containing the annotation. + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + Value of the new annotation. + + + Sets an annotation value on an annotatable element. + The model containing the annotation. + The annotated element. + Value of the new annotation. + Type of the annotation being set. + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + The model in which to set the annotations. + The annotations to set. + + + Sets documentation for a specified element. + The model containing the documentation. + The element. + Documentation to set. + + + + + + + Gets the entity type targeted by this navigation property. + The entity type targeted by this navigation property. + Reference to the calling object. + + + Analyzes .EntitySet expression and returns a relative path to an if available. The path starts with the parameter and may have optional sequence of and type casts segments. + True if the entity set expression of the functionImport contains a relative path an , otherwise false. + The function import containing the entity set expression. + The model containing the function import. + The function import parameter from which the relative entity set path starts. + The optional sequence of navigation properties. + + + Analyzes .EntitySet expression and returns a static reference if available. + True if the entity set expression of the functionImport contains a static reference to an , otherwise false. + The function import containing the entity set expression. + The static entity set of the function import. + + + + + + Gets an annotatable element's vocabulary annotations as seen from a particular model. + Annotations attached to the element by the model or by models referenced by the model. + Reference to the calling object. + Model to check for annotations. + + + Represents a reference to an EDM binary type. + + + Gets a value indicating whether this type specifies fixed length. + True if the type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this type specifies the maximum allowed max length. + True if the type specifies the maximum allowed max length; otherwise, false. + + + Gets the maximum length of this type. + The maximum length of this type. + + + Defines an EDM component who is invalid or whose validity is unknown at construction. + + + Gets an error if one exists with the current object. + An error. + + + Represents a definition of an EDM collection type. + + + Gets the element type of this collection. + The element type of this collection. + + + Represents a reference to an EDM collection type. + + + Represents a definition of an EDM complex type. + + + Represents a reference to an EDM complex type. + + + Represents a reference to an EDM decimal type. + + + Gets the precision of this type. + The precision of this type. + + + Gets the scale of this type. + The scale of this type. + + + Represents an EDM documentation. + + + Gets a long description of this documentation. + A long description of this documentation. + + + Gets a summary of this documentation. + A summary of this documentation. + + + Represents an EDM element. + + + Represents an EDM entity container. + + + Gets a collection of the elements of this entity container. + A collection of the elements of this entity container. + + + Searches for an entity set with the given name in this entity container and returns null if no such set exists. + The requested element, or null if the element does not exist. + The name of the element being found. + + + Searches for function imports with the given name in this entity container and returns null if no such function import exists. + A group of the requested function imports, or null if no such function import exists. + The name of the function import being found. + + + Represents the common elements of all EDM entity container elements. + + + Gets the container that contains this element. + + + + Represents a definition of an EDM entity reference type. + + + Gets the entity type pointed to by this entity reference. + The entity type pointed to by this entity reference. + + + Represents a reference to an EDM entity reference type. + + + Represents an EDM entity set. + + + Gets the entity type contained in this entity set. + The entity type contained in this entity set. + + + Finds the entity set that a navigation property targets. + The entity set that the navigation propertion targets, or null if no such entity set exists. + The navigation property. + + + Gets the navigation targets of this entity set. + + + Represents a definition of an EDM entity type. + + + Gets the structural properties of the entity type that make up the entity key. + The structural properties of the entity type. + + + Represents a reference for the definition of an EDM entity type. + + + Represents a definition of an EDM enumeration type member. + + + Gets the type that this member belongs to. + The type that this member belongs to. + + + Gets the value of this enumeration type member. + The value of this enumeration type member. + + + Represents a definition of an EDM enumeration type. + + + Gets the members of this enumeration type. + The members of this enumeration type. + + + Gets a value indicating whether the enumeration type can be treated as a bit field. + True if the value indicating whether the enumeration type can be treated as a bit field; otherwise, false. + + + Gets the underlying type of this enumeration type. + The underlying type of this enumeration type. + + + Represents a reference for a definition of an EDM enumeration type. + + + Represents an EDM function. + + + Gets the defining expression of this function. + The defining expression of this function. + + + Represents the common base type of EDM functions and function imports. + + + Searches for a parameter with the given name, and returns null if no such parameter exists. + The requested parameter or null if no such parameter exists. + The name of the parameter being found. + + + Gets the collection of parameters for this function. + The collection of parameters for this function. + + + Gets the return type of this function. + The return type of this function. + + + Represents an EDM function import. + + + Gets a value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + True if the function import can be used as an extension method for the type of the first parameter of this function import; otherwise, false. + + + Gets a value indicating whether this function import can be composed inside expressions. cannot be set to true if is set to true. + True if the function import can be composed inside expressions; otherwise, false. + + + Gets the entity set where the result of this function import will be contained in. + The entity set where the result of this function import will be contained in. + + + Gets a value indicating whether this function import has side-effects. cannot be set to true if is set to true. + True if the function import has side-effects; otherwise, false. + + + Represents a parameter of an EDM function. + + + Gets the function or function import that declared this parameter. + + + Gets the mode of this function parameter. + The mode of this function parameter. + + + Gets the type of this function parameter. + The type of this function parameter. + + + Represents the interface for all EDM elements that can be located. + + + Gets the location of this element. + The location of this element. + + + Semantic representation of an EDM model. + + + Gets the model's annotations manager. + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The name of the entity container being found. + + + Searches for functions with the given name in this model and returns an empty enumerable if no such function exists. + A set of functions sharing the specified qualified name, or an empty enumerable if no such function exists. + The qualified name of the function being found. + + + Searches for a type with the given name in this model and returns null if no such type exists. + The requested type, or null if no such type exists. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The qualified name of the value term being found. + + + Searches for vocabulary annotations specified by this model. + The vocabulary annotations for the element. + The annotated element. + + + Gets the collection of models referred to by this model. + The collection of models referred to by this model. + + + Gets the collection of schema elements that are contained in this model. + The collection of schema elements that are contained in this model. + + + Gets the collection of vocabulary annotations that are contained in this model. + The collection of vocabulary annotations. + + + Common base interface for all named EDM elements. + + + Gets the name of this element. + The name of this element. + + + Represents an EDM navigation property. + + + Gets a value indicating whether the navigation target is contained inside the navigation source. + + + Gets the dependent properties of this navigation property, returning null if this is the principal end or if there is no referential constraint. + + + Gets whether this navigation property originates at the principal end of an association. + + + Gets the action to execute on the deletion of this end of a bidirectional association. + + + Gets the partner of this navigation property. + + + Represents a definition of an EDM primitive type. + + + Gets the primitive kind of this type. + The primitive kind of this type. + + + Represents a reference to definition of an EDM primitive type. + + + Represents an EDM property. + + + Gets the type that this property belongs to. + The type that this property belongs to. + + + Gets the kind of this property. + The kind of this property. + + + Gets the type of this property. + The type of this property. + + + Represents an EDM row type. + + + Represents a reference to an EDM row type. + + + Common base interface for all named children of EDM schemata. + + + Gets the namespace this schema element belongs to. + The namespace this schema element belongs to. + + + Gets the kind of this schema element. + The kind of this schema element. + + + Represents an EDM schema type. + + + Represents a reference to an EDM spatial type. + + + Gets the spatial reference identifier of this spatial type. + The spatial reference identifier of this spatial type. + + + Represents a reference to an EDM string type. + + + Gets a string representing the collation of this string type. + A string representing the collation of this string type. + + + Gets a value indicating whether this string type specifies fixed length. + True if this string type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this string type specifies the maximum allowed maximum length. + True if this string type specifies the maximum allowed maximum length; otherwise, false. + + + Gets a value indicating whether this string type supports Unicode encoding. + True if this string type supports Unicode encoding; otherwise, false. + + + Gets the maximum length of this string type. + The maximum length of this string type. + + + Represents an EDM structural (that is, non-navigation) property. + + + Gets the concurrency mode of this property. + The concurrency mode of this property. + + + Gets the default value of this property. + The default value of this property. + + + Represents the common base interface for definitions of EDM structured types. + + + Gets the base type of this type. + The base type of this type. + + + Gets the properties declared immediately within this type. + The properties declared immediately within this type. + + + Searches for a structural or navigation property with the given name in this type and all base types and returns null if no such property exists. + The requested property, or null if no such property exists. + The name of the property being found. + + + Gets a value indicating whether this type is abstract. + True if this type is abstract; otherwise, false. + + + Gets a value indicating whether this type is open. + True if this type is open; otherwise, false. + + + Represents a reference to an EDM structured type. + + + Represents a reference to an EDM temporal (Time, DateTime, DateTimeOffset) type. + + + Gets the precision of this temporal type. + The precision of this temporal type. + + + Represents the term to which an annotation can bind. + + + Gets the kind of a term. + The kind of a term. + + + Represents the definition of an EDM type. + + + Gets the kind of this type. + The kind of this type. + + + Represents a reference to an EDM type. + + + Gets the definition to which this type refers. + The definition to which this type refers. + + + Gets a value indicating whether this type is nullable. + true of the type is nullable; otherwise, false. + + + Represents an EDM value term. + + + Gets the type of the term. + The type of the term. + + + + Contains ToTraceString() extension methods. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Returns the text representation of the current object. + The text representation of the current object. + Reference to the calling object. + + + Represents an EDM annotation with an immediate value. + + + Gets the namespace Uri of the annotation. + + + Gets the value of this annotation. + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + + + Gets the element to which the annotation is attached + + + Gets the local name of this element. + + + Gets the namespace of the annotation. + + + Gets the value of this annotation. + + + Manages getting and setting direct value annotations on EDM elements. + + + Retrieves an annotation value for an EDM element. Returns null if no annotation with the given name exists for the given element. + Returns the annotation value that corresponds to the provided name. Returns null if no annotation with the given name exists for the given element. + The annotated element. + Namespace that the annotation belongs to. + Local name of the annotation. + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + The set of requested annotations + + + Gets annotations associated with an element. + The direct value annotations for the element. + The annotated element. + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + The value of the annotation. + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + The annotations to set + + + Represents a property binding specified as part of an EDM Type Annotation. + + + Gets the property given a value by the annotation. + The property given a value by the annotation. + + + Gets the expression producing the value of the annotation. + The expression producing the value of the annotation. + + + Represents an EDM Type Annotation. + + + Gets the value annotations for the properties of the type. + The value annotations for the properties of the type. + + + Represents an EDM Value Annotation. + + + Gets the expression producing the value of the annotation. + The expression producing the value of the annotation. + + + Represents an EDM Vocabulary Annotation. + + + Gets the qualifier used to discriminate between multiple bindings of the same property or type. + The qualifier. + + + Gets the element the annotation applies to. + The element the annotation applies to. + + + Gets the term bound by the annotation. + + + Represents the constants for CSDL XML. + + + Version 1.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2007/06/edmx". + + + Version 2.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2008/10/edmx". + + + Version 3.0 of EDMX. Corresponds to EDMX namespace "http://schemas.microsoft.com/ado/2009/11/edmx". + + + The current latest version of EDMX. + + + Defines a location in a XML file. + + + Gets the line number in the file. + The line number in the file. + + + Gets the position in the line. + The position in the line. + + + Gets a string representation of the location. + A string representation of the location. + + + Provides CSDL parsing services for EDM models. + + + Returns an IEdmModel for the given CSDL artifacts. + Success of the parse operation. + Collection of XmlReaders containing the CSDL artifacts. + Model to be references by the created model. + The model generated by parsing. + Errors reported while parsing. + + + Returns an IEdmModel for the given CSDL artifacts. + Success of the parse operation. + Collection of XmlReaders containing the CSDL artifacts. + The model generated by parsing. + Errors reported while parsing. + + + Returns an IEdmModel for the given CSDL artifacts. + Success of the parse operation. + Collection of XmlReaders containing the CSDL artifacts. + Models to be references by the created model. + The model generated by parsing. + Errors reported while parsing. + + + Provides CSDL serialization services for EDM models. + + + + Outputs a CSDL artifact to the provided writer. + A value indicating whether serialization was successful. + Model to be written. + XmlWriter the generated CSDL will be written to. + Errors that prevented successful serialization, or no errors if serialization was successful. + + + Represents whether a vocabulary annotation should be serialized within the element it applies to or in a separate section of the CSDL. + + + The annotation should be serialized within the element being annotated. + + + The annotation should be serialized in a separate section. + + + Provides EDMX parsing services for EDM models. + + + Returns an IEdmModel for the given EDMX artifact. + Success of the parse operation. + XmlReader containing the EDMX artifact. + Model to be referenced by the created model. + The model generated by parsing + Errors reported while parsing. + + + Returns an IEdmModel for the given EDMX artifact. + Success of the parse operation. + XmlReader containing the EDMX artifact. + The model generated by parsing + Errors reported while parsing. + + + Returns an IEdmModel for the given EDMX artifact. + Success of the parse operation. + XmlReader containing the EDMX artifact. + Models to be references by the created model. + The model generated by parsing + Errors reported while parsing. + + + Specifies what target of an EDMX file. + + + The target is Entity Framework. + + + The target is OData. + + + Provides EDMX serialization services for EDM models. + + + Outputs an EDMX artifact to the provided XmlWriter. + A value indicating whether serialization was successful. + Model to be written. + XmlWriter the generated EDMX will be written to. + Target implementation of the EDMX being generated. + Errors that prevented successful serialization, or no errors if serialization was successfull. + + + Contains extension methods for interfaces that are useful to serialization. + + + Gets the annotations associated with the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association annotations. + The annotations for association end 1. + The annotations for association end 2. + The annotations for the referential constraint. + + + Gets the name used for the association end serialized for a navigation property. + The association end name. + Model containing the navigation property. + The navigation property. + + + Gets the fully-qualified name used for the association serialized for a navigation property. + The fully-qualified association name. + Model containing the navigation property. + The navigation property. + + + Gets the name used for the association serialized for a navigation property. + The association name. + Model containing the navigation property. + The navigation property. + + + Gets the namespace used for the association serialized for a navigation property. + The association namespace. + Model containing the navigation property. + The navigation property. + + + Gets the annotations associated with the association serialized for a navigation target of an entity set. + Model containing the entity set. + The entity set. + The navigation property. + The association set annotations. + The annotations for association set end 1. + The annotations for association set end 2. + + + Gets the name used for the association set serialized for a navigation property of an entity set. + The association set name. + Model containing the entity set. + The entity set. + The navigation property. + + + + + Gets an annotation indicating if the value should be serialized as an element. + Value indicating if the string should be serialized as an element. + Value the annotation is on. + Model containing the value. + + + Gets an annotation indicating whether the value of an enum member should be explicitly serialized. + Whether the member should have its value serialized. + The member the annotation is on. + Model containing the member. + + + + + Gets the primary end of a pair of partnered navigation properties, selecting the principal end if there is one and making a stable, arbitrary choice otherwise. + The primary end between the navigation property and its partner. + The navigation property. + + + Gets the schema an annotation should be serialized in. + Name of the schema the annotation belongs to. + Reference to the calling annotation. + Model containing the annotation. + + + Gets the location an annotation should be serialized in. + The location the annotation should be serialized at. + Reference to the calling annotation. + Model containing the annotation. + + + Sets the annotations for the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association annotations. + The annotations for association end 1. + The annotations for association end 2. + The annotations for the referential constraint. + + + Sets the name used for the association end serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association end name. + + + Sets the name used for the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association name. + + + Sets the namespace used for the association serialized for a navigation property. + Model containing the navigation property. + The navigation property. + The association namespace. + + + Sets the annotations for the association set serialized for a navigation target of an entity set. + Model containing the entity set. + The entity set. + The navigation property. + The association set annotations. + The annotations for association set end 1. + The annotations for association set end 2. + + + Sets the name used for the association set serialized for a navigation property of an entity set. + Model containing the entity set. + The entity set + The navigation property. + The association set name. + + + + + Sets an annotation indicating if the value should be serialized as an element. + Value to set the annotation on. + Model containing the value. + Value indicating if the value should be serialized as an element. + + + Sets an annotation indicating whether the value of an enum member should be explicitly serialized. + Member to set the annotation on. + Model containing the member. + If the value of the enum member should be explicitly serialized + + + + + Sets the schema an annotation should appear in. + The annotation the schema should be set for. + Model containing the annotation. + The schema the annotation belongs in. + + + Sets the location an annotation should be serialized in. + The annotation the location is being specified for. + Model containing the annotation. + The location the annotation should appear. + + + + to CLR value converter. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The delegate customizing conversion of structured values. + + + Converts edmValue to a value. + Converted boolean. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted byte. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a CLR byte array value. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted char. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted DateTime. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted DateTimeOffset. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted decimal. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted double. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted single. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted string. + The EDM value to be converted. + edmValue + + + Converts edmValue to a value. + Converted Time. + The EDM value to be converted. + edmValue + + + Converts edmValue to a CLR value of the specified type. Supported values for <typeparamref name="T" /> are: CLR primitive types such as and , CLR enum types, <see cref="T:System.Collections.Generic.IEnumerable`1" />, <see cref="T:System.Collections.Generic.ICollection`1" />, <see cref="T:System.Collections.Generic.IList`1" />, CLR classes with default constructors and public properties with setters and collection properties of the following shapes: <see cref="T:System.Collections.Generic.IEnumerable`1" /> EnumerableProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get; set; }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get { return this.nonNullCollection; } }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get { return this.nonNullList; } }. + The EDM value to be converted. + The CLR type. + + + Converts edmValue to a CLR value of the specified type. Supported values for clrType are: CLR primitive types such as and , CLR enum types, <see cref="T:System.Collections.Generic.IEnumerable`1" />, <see cref="T:System.Collections.Generic.ICollection`1" />, <see cref="T:System.Collections.Generic.IList`1" />, CLR classes with default constructors and public properties with setters and collection properties of the following shapes: <see cref="T:System.Collections.Generic.IEnumerable`1" /> EnumerableProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get; set; }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get; set; }, <see cref="T:System.Collections.Generic.ICollection`1" /> CollectionProperty { get { return this.nonNullCollection; } }, <see cref="T:System.Collections.Generic.IList`1" /> ListProperty { get { return this.nonNullList; } }. + A CLR value converted from edmValue. + The EDM value to be converted. + The CLR type. + + + Converts edmValue to a nullable value. + Converted boolean. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted byte. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted char. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a nullable value. + Converted DateTime. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted DateTimeOffset. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted decimal. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted double. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a value. + Converted integer. + The EDM value to be converted. + edmValue + edmValue + + + Converts edmValue to a nullable value. + Converted integer. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted single. + The EDM value to be converted. + edmValue + + + Converts edmValue to a nullable value. + Converted Tim. + The EDM value to be converted. + edmValue + + + Registers the clrObject corresponding to the edmValue. All subsequent conversions from this edmValue performed by this instance of will return the specified clrObject. Registration is required to support graph consistency and loops during conversion process. This method should be called inside the delegate if the delegate is calling back into in order to populate properties of the clrObject. + The EDM value. + The CLR object. + + + + Expression evaluator. + + + + + Evaluates an expression with no value context. + The value that results from evaluating the expression in the context of the supplied value. + Expression to evaluate. The expression must not contain paths, because no context for evaluating a path is supplied. + + + Evaluates an expression in the context of a value. + The value that results from evaluating the expression in the context of the supplied value. + Expression to evaluate. + Value to use as context in evaluating the expression. + + + Evaluates an expression in the context of a value and a target type. + The value that results from evaluating the expression in the context of the supplied value, asserted to be of the target type. + Expression to evaluate. + Value to use as context in evaluating the expression. Cannot be null if the expression contains paths. + Type to which the result value is expected to conform. + + + Expression evaluator capable of producing CLR values. + + + + + Gets or sets an instance of that is used to produce CLR values during evaluation. + + + Evaluates an expression with no value context. + Expression to evaluate. The expression must not contain paths, because no context for evaluating a path is supplied. + The CLR type of the value to be returned. + + + Evaluates an expression in the context of a value. + Expression to evaluate. + Value to use as context in evaluating the expression. + The CLR type of the value to be returned. + + + Evaluates an expression in the context of a value and a target type. + Expression to evaluate. + Value to use as context in evaluating the expression. + Type to which the result value is expected to conform. + The CLR type of the value to be returned. + + + Defines EDM expression kinds. + + + + + + Represents an expression implementing . + + + + + + + + + Represents an expression implementing . + + + + + + + + + Represents an expression implementing . + + + + + + + + + Represents an expression implementing . + + + Represents an expression implementing . + + + + + + + + + + + + + + + + + + + + + + + + + + + Represents an expression implementing . + + + + + + + + + + + + + + + Represents an expression implementing . + + + Represents an expression implementing + + + Represents an EDM type assertion expression. + + + Gets the expression for which the type is asserted. + The expression for which the type is asserted. + + + Gets the asserted type. + The asserted type. + + + + Represents an EDM boolean constant expression. + + + Represents an EDM multi-value construction expression. + + + Gets the declared type of the collection, or null if there is no declared type. + + + Gets the constructed element values. + The constructed element values. + + + Represents an EDM DateTime constant expression. + + + + Represents an EDM decimal constant expression. + + + Represents an EDM entity set reference expression. + + + Gets the referenced entity set. + The referenced entity set. + + + Represents an EDM enumeration member reference expression. + + + Gets the referenced enum member. + + + Represents an EDM expression. + + + Gets the kind of this expression. + The kind of this expression. + + + Represents an EDM floating constant expression. + + + Represents an EDM function application expression. + + + Gets the applied function. + The applied function. + + + Gets the arguments to the function. + The arguments to the function. + + + Represents an EDM function reference expression. + + + Gets the referenced function. + + + + Represents an EDM if expression. + + + Gets the expression to evaluate if Test evaluates to False. + The expression to evaluate if Test evaluates to False. + + + Gets the expression to evaluate if Test evaluates to True. + The expression to evaluate if Test evaluates to True. + + + Gets the test expression. + The test expression. + + + Represents an EDM integer constant expression. + + + Represents an EDM type test expression. + + + Gets the expression whose type is to be tested. + The expression whose type is to be tested. + + + Gets the type to be tested against. + The type to be tested against. + + + Represents an EDM labeled expression element. + + + Gets the underlying expression. + + + Represents a reference to an EDM labeled expression. + + + Gets the referenced expression. + + + + Represents an EDM parameter reference expression. + + + Gets the referenced parameter. + + + Represents an EDM path expression. + + + Gets the path as a decomposed qualified name. "A.B.C" is { "A", "B", "C" }. + The path as a decomposed qualified name. + + + Represents an EDM property constructor specified as part of a CSDL Record expression. + + + Gets the name of the property + The name of the property. + + + Gets the expression for the value of the property. + The expression for the value of the property. + + + Represents an EDM property reference expression. + + + + Gets the referenced property. + + + Represents an EDM record construction expression. + + + Gets the declared type of the record, or null if there is no declared type. + The declared type of the record, or null if there is no declared type. + + + Gets the constructed property values. + The constructed property values. + + + Represents an EDM string constant expression. + + + + Represents an EDM value term reference expression. + + + Gets the expression for the structured value containing the referenced term property. + The expression for the structured value containing the referenced term property. + + + Gets the optional qualifier. + The optional qualifier. + + + Gets the referenced value term. + The referenced value term. + + + Represents a reference to an EDM binary type. + + + Initializes a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Initializes a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Denotes whether the maximum length is the maximum allowed value. + The maximum length of a value of this type. + Denotes whether the length can vary. + + + Gets a value indicating whether this type specifies fixed length. + true if this type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this type specifies the maximum allowed max length. + true if this type specifies the maximum allowed maximum length; otherwise, false. + + + Gets the maximum length of this type. + The maximum length of this type. + + + Represents a definition of an EDM collection type. + + + Initializes a new instance of the EdmCollectionType class. + The type of the elements in this collection. + + + + Gets the kind of this type. + + + Represents a reference to an EDM collection type. + + + Initializes a new instance of the class. + The type definition this reference refers to. + Denotes whether the type can be nullable. + + + Gets the collection type to which this type refers. + The collection type to which this type refers. + + + Represents a definition of an EDM complex type. + + + Initializes a new instance of the EdmComplexType class. + The namespace this type belongs to. + The name of this type within its namespace. + + + Initializes a new instance of the EdmComplexType class. Note: Complex type inheritance is not supported in EDM version 3.0 and above. + The namespace this type belongs to. + The name of this type within its namespace. + The base type of this complex type. + Denotes whether this complex type is abstract. + Denotes whether this type is open. + + + Initializes a new instance of the EdmComplexType class. + The namespace this type belongs to. + The name of this type within its namespace. + Denotes whether this type is open. + + + + + + Gets the kind of this type. + + + Represents a reference to an EDM complex type. + + + Initializes a new instance of the class. + The type definition this reference refers to. + Denotes whether the type can be nullable. + + + Contains constant values that apply to the EDM model, regardless of source (for CSDL/EDMX specific constants see ). + + + Version 1.0 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2006/04/edm". + + + Version 1.1 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2007/05/edm". + + + Version 1.2 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2008/01/edm". + + + Version 2.0 of EDM. Corresponds to CSDL namespaces "http://schemas.microsoft.com/ado/2008/09/edm" and "http://schemas.microsoft.com/ado/2009/08/edm". + + + Version 3.0 of EDM. Corresponds to CSDL namespace "http://schemas.microsoft.com/ado/2009/11/edm". + + + The current latest version of EDM. + + + Provides predefined declarations relevant to EDM semantics. + + + Gets the model's annotations manager. + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The name of the entity container being found. + + + Searches for functions with the given name in this model and returns an empty enumerable if no such function exists. + A set functions sharing the specified qualified name, or an empty enumerable if no such function exists. + The qualified name of the function being found. + + + Searches for a type with the given name in this model and returns null if no such type exists. + The requested type, or null if no such type exists. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The qualified name of the value term being found. + + + Searches for vocabulary annotations specified by this model or a referenced model for a given element. + The vocabulary annotations for the element. + The annotated element. + + + + + + + + Gets a reference to a datetime primitive type definition. + A new datetime type reference. + Flag specifying if the referenced type should be nullable. + + + Gets a reference to a datetime with offset primitive type definition. + A new datetime with offset type reference. + Flag specifying if the referenced type should be nullable. + + + + + + + + + + + + + + + + + + + + + + Gets a reference to a time primitive type definition. + A new time type reference. + Flag specifying if the referenced type should be nullable. + + + + + + + + Represents a reference to an EDM decimal type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + The precision of values with this type. + The scale of values with this type. + + + Gets the precision of this type. + The precision of this type. + + + Gets the scale of this type. + The scale of this type. + + + Represents an EDM documentation. + + + Creates a new instance of the class. + + + Creates a new instance of the class. + A summary of the documentation. + A long description of the documentation. + + + Gets or sets a long description of this documentation. + A long description of this documentation. + + + Gets or sets a summary of this documentation. + A summary of this documentation. + + + Represents the common base class for all EDM elements. + + + Creates a new instance of the class. + + + Represents an EDM entity container. + + + Initializes a new instance of the EdmEntityContainer class. + Namespace of the entity container. + Name of the entity container. + + + Adds an entity container element to this entity container. + The element to add. + + + Creates and adds an entity set to this entity container. + Created entity set. + Name of the entity set. + The entity type of the elements in this entity set. + + + Creates and adds a function import to this entity container. + Created function import. + Name of the function import. + Return type of the function import. + + + Creates and adds a function import to this entity container. + Created function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + + + Creates and adds a function import to this entity container. + Created function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + A value indicating whether this function import has side-effects. + A value indicating whether this functon import can be composed inside expressions. + A value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + + + Gets a collection of the elements of this entity container. + A collection of the elements of this entity container. + + + Searches for an entity set with the given name in this entity container and returns null if no such set exists. + The requested element, or null if the element does not exist. + The name of the element being found. + + + Searches for function imports with the given name in this entity container and returns null if no such function import exists. + A group of the requested function imports, or null if no such function import exists. + The name of the function import being found. + + + Gets or sets the name of this entity container. + The name of this entity container. + + + Gets the namespace of this entity container. + + + Gets the kind of this schema element. + + + Represents a definition of an EDM entity reference type. + + + + + Gets the kind of this type. + + + Represents a reference to an EDM entity reference type. + + + Creates a new instance of the class. + The definition referred to by this reference. + Denotes whether the type can be nullable. + + + Gets the entity reference definition to which this type refers. + The entity reference definition to which this type refers. + + + Represents an EDM entity set. + + + Initializes a new instance of the EdmEntitySet class. + An containing this entity set. + Name of the entity set. + The entity type of the elements in this entity set. + + + Adds a navigation target, specifying the destination entity set of a navigation property of an entity in this entity set. + The navigation property the target is being set for. + The destination entity set of the specified navigation property. + + + Gets or sets the container of this entity set. + + + + + Finds the entity set that a navigation property targets. + The entity set that the navigation propertion targets, or null if no such entity set exists. + The navigation property. + + + + Gets the navigation targets of this entity set. + + + Represents a definition of an EDM entity type. + + + Initializes a new instance of the EdmEntityType class. + Namespace the entity belongs to. + Name of the entity. + + + Initializes a new instance of the EdmEntityType class. + Namespace the entity belongs to. + Name of the entity. + The base type of this entity type. + + + Initializes a new instance of the EdmEntityType class. + Namespace the entity belongs to. + Name of the entity. + The base type of this entity type. + Denotes an entity that cannot be instantiated. + Denotes if the type is open. + + + Adds the keyProperties to the key of this entity type. + The key properties. + + + Adds the keyProperties to the key of this entity type. + The key properties. + + + Creates and adds a one-side navigation property to this type. Navigation property partner is created, but not added to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + + + Creates and adds a one-side navigation property to this type. Navigation property partner is created, but not added to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + Multiplicity of the navigation source. + + + Creates and adds a navigation property to this type and adds its navigation partner to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + A value indicating whether the the navigation target is contained inside the navigation source. + An action to take when an instance of the navigation source type is deleted. + Name of the partner property. + Multiplicity of the navigation source. + A value indicating whether the the navigation source is contained inside the navigation target. + An action to take when an instance of the navigation target type is deleted. + + + Creates and adds a navigation property to this type and adds its navigation partner to navigationTargetType. + Created navigation property. + Name of the navigation property. + Type that this navigation property points to. + Multiplicity of the navigation target. + Name of the partner property. + Multiplicity of the navigation source. + + + + + + + + Gets the kind of this type. + + + Represents a reference to an EDM entity type. + + + Creates a new instance of the class. + The definition refered to by this reference. + Denotes whether the type can be nullable. + + + Represents a member of an EDM enumeration type. + + + Initializes a new instance of the EdmEnumMember class. + The type that declares this member. + Name of this enumeration member. + Value of this enumeration member. + + + Gets the type that this member belongs to. + + + Gets the value of this enumeration type member. + + + Represents the definition of an Edm enumeration type. + + + Initializes a new instance of the EdmEnumType class. + The underlying type of this enumeration type. + + + Initializes a new instance of the EdmEnumType class. + The underlying type of this enumeration type. + Namespace this enumeration type belongs to. + Name of this enumeration type. + A value indicating whether the enumeration type can be treated as a bit field. + + + Gets the members of this enumeration type. + + + Gets or sets the name of this enumeration type. + + + Gets or sets the namespace this schema element belongs to. + + + Removes an existing member from this enum type + The member to add. + + + Gets the kind of this schema element. + + + Gets or sets a value indicating whether the enumeration type can be treated as a bit field. + + + Gets the kind of this type. + + + Gets the underlying type of this enumeration type. + + + Represents a reference to an EDM enumeration type. + + + Creates a new instance of the class. + The definition refered to by this reference. + Denotes whether the type can be nullable. + + + Represents an EDM function. + + + Creates a new instance of the class. + Namespace of the function. + Name of the function. + Return type of the function. + + + Initializes a new instance of the EdmFunction class. + Namespace of the function. + Name of the function. + Return type of the function. + Defining expression of the function (for example an eSQL expression). + + + Gets or sets the defining expression of this function. + The defining expression of this function. + + + Gets or sets the namespace of this function. + The namespace of this function. + + + Gets the element kind of this function, which is always Function. + The element kind of this function. + + + Represents an EDM function or function import. + + + Creates a new instance of the class. + The name of the function. + The return type of the function. + + + Adds a parameter to this function (as the last parameter). + The parameter being added. + + + Adds a parameter to this function (as the last parameter). + The name of the parameter being added. + The type of the parameter being added. + + + Creates and adds a parameter to this function (as the last parameter). + Created parameter. + The name of the parameter being added. + The type of the parameter being added. + Mode of the parameter. + + + Searches for a parameter with the given name in this function and returns null if no such parameter exists. + The requested parameter, or null if no such parameter exists. + The name of the parameter to be found. + + + Gets or sets the name of this function. + The name of this function. + + + Gets the parameters of this function. + The parameters of this function. + + + Gets or sets the return type of this function. + The return type of this function. + + + Represents an EDM function import. + + + Initializes a new instance of class (side-effecting, non-composable, non-bindable). + An containing this function import. + Name of the function import. + Return type of the function import. + + + Initializes a new instance of class (side-effecting, non-composable, non-bindable). + An containing this function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + + + Initializes a new instance of class. + An containing this function import. + Name of the function import. + Return type of the function import. + An entity set containing entities returned by this function import. The two expression kinds supported are and . + A value indicating whether this function import has side-effects. + A value indicating whether this functon import can be composed inside expressions. + A value indicating whether this function import can be used as an extension method for the type of the first parameter of this function import. + + + + + Gets or sets the container of this function. + + + + + + Represents an EDM function parameter. + + + Initializes a new instance of the EdmFunctionParameter class. + Declaring function of the parameter. + Name of the parameter. + Type of the parameter. + + + Initializes a new instance of the EdmFunctionParameter class. + Declaring function of the parameter. + Name of the parameter. + Type of the parameter. + Mode of the parameter. + + + Gets the function or function import that declared this parameter. + + + Gets the mode of this parameter. + The mode of this parameter. + + + Gets the type of this parameter. + The type of this parameter. + + + Represents an EDM model. + + + + + + Adds a model reference to this model. + The model to reference. + + + Adds a vocabulary annotation to this model. + The annotation to be added. + + + Searches for vocabulary annotations specified by this model. + The vocabulary annotations for the element. + The annotated element. + + + + Removes an model reference from this model. + The model reference to be removed + + + Removes a vocabulary annotation from this model. + The annotation to be removed. + + + + Gets the collection of vocabulary annotations that are contained in this model. + + + Represents an EDM model. + + + Initializes a new instance of the EdmModelBase class. + Models to which this model refers. + Annotations manager for the model to use. + + + Adds a model reference to this model. + The model to reference. + + + Gets the model's annotations manager. + + + Searches for an entity container with the given name in this model and returns null if no such entity container exists. + The requested entity container, or null if no such entity container exists. + The name of the entity container being found. + + + Searches for a function with the given name in this model and returns null if no such function exists. + A group of functions sharing the specified qualified name, or an empty enumerable if no such function exists. + The qualified name of the function being found. + + + Searches for a type with the given name in this model and returns null if no such type exists. + The requested type, or null if no such type exists. + The qualified name of the type being found. + + + Searches for a value term with the given name in this model and returns null if no such value term exists. + The requested value term, or null if no such value term exists. + The qualified name of the value term being found. + + + Searches for vocabulary annotations specified by this model or a referenced model for a given element. + The vocabulary annotations for the element. + The annotated element. + + + + + Removes an model reference from this model. + The model reference to be removed + + + + + + Represents a common base class for all named EDM elements. + + + Creates a new instance of the class. + + + Creates a new instance of the class. + The name of the element. + + + The name of the element. + + + Gets the name of this element. + The name of this element. + + + Represents an EDM navigation property. + + + Adds the properties to the list of dependent properties. + The dependent properties. + + + Adds the properties to the list of dependent properties. + The dependent properties. + + + Gets a value indicating whether the navigation target is contained inside the navigation source. + + + Creates two navigation properties representing an association between two entity types. + Navigation property pointing from sourceEntityType to targetEntityType. + Navigation property name. + Navigation target type. + Navigation target multiplicity. + A value indicating whether the navigation source logically contains the navigation target. + Action to take upon deletion of an instance of the navigation source. + Navigation partner property name. + Navigation source type. + Navigation source multiplicity + A value indicating whether the navigation target logically contains the navigation source. + Action to take upon deletion of an instance of the navigation target. + + + Creates two navigation properties representing an association between two entity types. + Navigation property pointing from sourceEntityType to targetEntityType. + Navigation property name. + Navigation target type. + Navigation target multiplicity. + Navigation partner property name. + Navigation source type. + Navigation source multiplicity + + + Creates two navigation properties representing an association between two entity types. + Navigation property. + Navigation property name. + Type of the navigation property. + A value indicating whether the navigation source logically contains the navigation target. + Action to take upon deletion of an instance of the navigation source. + Navigation partner property name. + Type of the navigation partner property. + A value indicating whether the navigation target logically contains the navigation source. + Action to take upon deletion of an instance of the navigation target. + + + Gets the entity type that this navigation property belongs to. + The entity type that this navigation property belongs to. + + + Gets or sets the dependent properties of the association this navigation property expresses. + The dependent properties of the association this navigation property expresses. + + + Gets a value indicating whether this navigation property is from the principal end of the association. + + + Gets the partner of this navigation property. + + + Gets or sets the action to take when an element of the defining type is deleted. + The action to take when an element of the defining type is deleted. + + + Gets or sets the navigation property from this properties destination back to the declaring type of this property. + The navigation property from this properties destination back to the declaring type of this property. + + + Gets the kind of this property. + The kind of this property. + + + Represents a reference to an EDM primitive type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Represents an EDM property. + + + Creates a new instance of the class. + The type that declares this property. + Name of the property. + Type of the property. + + + Gets the type that this property belongs to. + The type that this property belongs to. + + + Gets or sets the name of this property. + The name of this property. + + + Gets the kind of this property. + The kind of this property. + + + Gets or sets the type of this property. + The type of this property. + + + Represents a definition of an EDM row type. + + + + Gets the kind of this type. + + + Represents a reference to an EDM row type. + + + Creates a new instance of the class. + Type that describes this value. + Denotes whether the type can be nullable. + + + Represents a reference to an EDM spatial type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Spatial Reference Identifier for the spatial type being created. + + + Gets the precision of this temporal type. + The precision of this temporal type. + + + Represents a reference to an EDM string type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Denotes whether the max length is the maximum allowed value. + Maximum length of a value of this type. + Denotes whether the length can vary. + Denotes if string is encoded using Unicode. + Indicates the collation string to be used by the underlying store. + + + Gets a string representing the collation of this string type. + The collation of this string type. + + + Gets a value indicating whether this string type specifies fixed length. + True if this string type specifies fixed length; otherwise, false. + + + Gets a value indicating whether this string type specifies the maximum allowed max length. + True if this string type specifies the maximum allowed max length; otherwise, false. + + + Gets a value indicating whether this string type supports unicode encoding. + True if this string type supports Unicode encoding; otherwise, false. + + + Gets the maximum length of this string type. + The maximum length of this string type. + + + Represents an EDM structural (i.e. non-navigation) property. + + + Initializes a new instance of the EdmStructuralProperty class. + The type that declares this property. + Name of the property. + Type of the property. + + + Creates a new instance of the class. + The type that declares this property. + The name of the property. + The type of the property. + The default value of this property. + The concurrency mode of this property. + + + Gets the concurrency mode of this property. + The concurrency mode of this property. + + + Gets the default value of this property. + The default value of this property. + + + Gets the kind of this property. + The kind of this property. + + + Common base class for definitions of EDM structured types. + + + Initializes a new instance of the EdmStructuredType class. + + + Initializes a new instance of the EdmStructuredType class. + Denotes a structured type that cannot be instantiated. + Denotes if the type is open. + Base type of the type + + + + Creates and adds a structural property to this type. + Created structural property. + Name of the property. + Type of the property. + + + Creates and adds a structural property to this type. + Created structural property. + Name of the property. + Type of the property. + The default value of this property. + The concurrency mode of this property. + + + + + + + + + + Represents a reference to an EDM temporal (Time, DateTime, DateTimeOffset) type. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + + + Creates a new instance of the class. + The type this reference refers to. + Denotes whether the type can be nullable. + Precision of values with this type. + + + Gets the precision of this temporal type. + The precision of this temporal type. + + + Represents the definition of an EDM type. + + + Initializes a new instance of the class. + + + + + Represents a reference to an EDM type. + + + Creates a new instance of the class. + The type that describes this value. + Denotes whether the type can be nullable. + + + Gets the definition to which this type refers. + The definition to which this type refers. + + + Gets a value indicating whether this type is nullable. + True if this type is nullable; otherwise, false. + + + Returns the text representation of the current object. + The text representation of the current object. + + + Represents an EDM value term. + + + Initializes a new instance of the EdmValueTerm class. + Namespace of the term. + Name of the term within the namespace. + + + Initializes a new instance of the EdmValueTerm class. + Namespace of the term. + Name of the term within the namespace. + Type of the term. + + + Gets the local name of this term. + The local name of this term. + + + Gets the namespace of this term. + The namespace of this term. + + + Gets the schema element kind of this term. + The schema element kind of this term. + + + Gets the kind of this term. + The kind of this term. + + + Gets the type of this term. + The type of this term. + + + Represents an EDM annotation with an immediate native value. + + + Initializes a new instance of the class. + Namespace of the annotation. + Name of the annotation within the namespace. + Value of the annotation + + + The name of the annotation + + + The namespace Uri of the annotation. + + + Gets the value of this annotation. + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + Element to which the annotation is attached. + Namespace of the annotation. + Name of the annotation within the namespace. + + + Initializes a new instance of the class. + Element to which the annotation is attached. + Namespace of the annotation. + Name of the annotation within the namespace. + Value of the annotation + + + Gets or sets the element to which the annotation is attached. + + + Gets or sets the local name of the annotation + + + Gets or sets the namespace Uri of the annotation. + + + Gets the value of this annotation. + + + EdmDirectValueAnnotationsManager provides services for setting and getting transient annotations on elements. + + + Initializes a new instance of the EdmDirectValueAnnotationsManager class. + + + Retrieves an annotation value for an EDM element. Returns null if no annotation with the given name exists for the given element. + Returns the annotation that corresponds to the provided name. Returns null if no annotation with the given name exists for the given element. + The annotated element. + Namespace that the annotation belongs to. + Local name of the annotation. + + + Retrieves a set of annotation values. For each requested value, returns null if no annotation with the given name exists for the given element. + The set of requested annotations + + + Retrieves the annotations that are directly attached to an element. + The annotations that are directly attached to an element (outside the control of the manager). + The element in question. + + + Gets annotations associated with an element. + The immediate value annotations for the element. + The annotated element. + + + Sets an annotation value for an EDM element. If the value is null, no annotation is added and an existing annotation with the same name is removed. + The annotated element. + Namespace that the annotation belongs to. + Name of the annotation within the namespace. + New annotation to set. + + + Sets a set of annotation values. If a supplied value is null, no annotation is added and an existing annotation with the same name is removed. + The annotations to set + + + Represents a property binding specified as part of an EDM type annotation. + + + Initializes a new instance of the class. + + + Gets or sets the property that is given a value by the annotation. + + + Gets or sets the expression producing the value of the annotation. + + + Represents an EDM type annotation. + + + Initializes a new instance of the class. + + + Adds the property to this type annotation. + The property value binding being added. + + + Gets the value annotations for the properties of the type. + + + Removes the property from this type annotation. + The property value binding being removed. + + + Represents the combination of an EDM annotation with an immediate value and the element to which it is attached. + Type of the annotation value. + + + Initializes a new instance of the EdmTypedDirectValueAnnotationBinding class. + + + Initializes a new instance of the EdmTypedDirectValueAnnotationBinding class. + Element to which the annotation is attached. + + + Initializes a new instance of the EdmTypedDirectValueAnnotationBinding class. + Element to which the annotation is attached. + Value of the annotation + + + Gets or sets the element to which the annotation is attached. + + + Gets the local name of the annotation + + + Gets the namespace Uri of the annotation. + + + Gets or sets the value of this annotation. + + + Represents an EDM value annotation. + + + Initializes a new instance of the class. + + + Gets or sets the expression producing the value of the annotation. + + + Represents an EDM annotation with an immediate value. + + + Initializes a new instance of the class. + + + Gets or sets the qualifier used to discriminate between multiple bindings of the same property or type. + + + Gets or sets the element the annotation applies to. + + + Gets or sets the term bound by the annotation. + + + Represents an EDM type assertion expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the expression for which the type is asserted. + + + Gets or sets the asserted type. + + + Represents an EDM multi-value construction expression. + + + Initializes a new instance of the class. + The constructed element values. + + + Adds the element to this expression. + The element being added. + + + Gets or sets the declared type of the collection. + + + Gets the constructed element values. + + + Gets the kind of this expression. + + + Removes the element from this expression. + The element being removed. + + + Represents an EDM entity set reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced entity set. + + + Represents an EDM enumeration member reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced enum member. + + + Represents an EDM function application expression. + + + Initializes a new instance of the class. + + + Adds the argument to this function. + The argument being added. + + + Gets or sets the applied function. + + + Gets the arguments to the function. + + + Gets the kind of this expression. + + + Removes the argument from this function. + The argument being removed. + + + Represents an EDM function reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced function. + + + Represents an EDM if expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the expression to evaluate if evaluates to false. + + + Gets or sets the expression to evaluate if evaluates to true. + + + Gets or sets the test expression. + + + Represents an EDM type test expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the expression whose type is to be tested. + + + Gets or sets the type to be tested against. + + + Represents an EDM labeled expression. + + + Initializes a new instance of the class. + + + Gets or sets the underlying element expression. + + + Gets the expression kind. + + + Gets or sets the label. + + + Represents an EDM labeled expression reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced labeled element. + + + Represents an EDM parameter reference expression. + + + Initializes a new instance of the class. + + + Gets the kind of this expression. + + + Gets or sets the referenced parameter. + + + Represents an EDM path expression. + + + Initializes a new instance of the class. + + + Adds the segment to this path. + The path segment being added. + + + Gets the kind of this expression. + + + Gets the path as a decomposed qualified name. "A.B.C" is { "A", "B", "C" }. + + + Removes the segment from this path. + The path segment being removed. + + + Represents an EDM property constructor specified as part of a EDM record construction expression. + + + Initializes a new instance of the class. + + + Gets or sets the name of the property. + + + Gets or sets the expression for the value of the property. + + + Represents an EDM property reference expression. + + + Initializes a new instance of the class. + + + Gets or sets the expression for the structured value containing the referenced property. + + + Gets the kind of this expression. + + + Gets or sets the referenced property. + + + Represents an EDM record construction expression. + + + Initializes a new instance of the class. + + + Adds the property to this record. + The property being added. + + + Gets or sets the declared type of the record, or null if there is no declared type. + + + Gets the kind of this expression. + + + Gets the constructed property values. + + + Removes the property from this record. + The property being removed. + + + Represents an EDM value term reference expression. + + + Initializes a new instance of the class. + + + Gets or sets the expression for the structured value containing the referenced term property. + + + Gets the kind of this expression. + + + Gets or sets the optional qualifier. + + + Gets or sets the referenced value term. + + + Represents an EDM binary constant. + + + Initializes a new instance of the class. + Type of the integer. + Integer value represented by this value. + + + Initializes a new instance of the class. + Integer value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM boolean constant. + + + Initializes a new instance of the class. + Type of the boolean. + Boolean value represented by this value. + + + Initializes a new instance of the class. + Boolean value represented by this value. + + + Gets the kind of this expression. + + + Gets a value indicating whether the value of this boolean value is true or false. + + + Gets the kind of this value. + + + Represents an EDM collection value. + + + Initializes a new instance of the class. + A reference to a collection type that describes this collection value + The collection of values stored in this collection value + + + Gets the values stored in this collection. + + + Gets the kind of this value. + + + Represents an EDM datetime constant. + + + Initializes a new instance of the class. + Type of the DateTime. + DateTime value represented by this value. + + + Initializes a new instance of the class. + DateTime value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM datetime with offset constant. + + + Initializes a new instance of the class. + Type of the DateTimeOffset. + DateTimeOffset value represented by this value. + + + Initializes a new instance of the class. + DateTimeOffset value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM decimal constant. + + + Initializes a new instance of the class. + Type of the decimal. + Decimal value represented by this value. + + + Initializes a new instance of the class. + Decimal value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM enumeration type value. + + + Initializes a new instance of the class. + A reference to the enumeration type that describes this value. + The enumeration type value. + + + Initializes a new instance of the class. + A reference to the enumeration type that describes this value. + The underlying type value. + + + Gets or sets the underlying type value of the enumeration type. + + + Gets the kind of this value. + + + Represents an EDM floating point constant. + + + Initializes a new instance of the class. + Type of the floating point. + Floating point value represented by this value. + + + Initializes a new instance of the class. + Floating point value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM guid constant. + + + Initializes a new instance of the class. + Type of the integer. + Integer value represented by this value. + + + Initializes a new instance of the class. + Integer value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM integer constant. + + + Initializes a new instance of the class. + Type of the integer. + Integer value represented by this value. + + + Initializes a new instance of the class. + Integer value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM null. + + + Gets the kind of this expression. + + + Singleton null expression instance. + + + Gets the kind of this value. + + + Represents a value of an EDM property. + + + Initializes a new instance of the EdmPropertyValue class. + Name of the property for which this provides a value. + Value of the property. + + + Gets the name of the property for which this provides a value. + + + Gets the property's value. + + + Represents an EDM string constant. + + + Initializes a new instance of the class. + Type of the string. + String value represented by this value. + + + Initializes a new instance of the class. + String value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM structured value. + + + Initializes a new instance of the EdmStructuredValue class. + Type that describes this value. + Child values of this value. + + + Retrieves the value corresponding to the given property name. Returns null if no such value exists. + The requested value, or null if no such value exists. + The property that describes the value being found. + + + Gets the property values of this structured value. + + + Gets the kind of this value. + + + Represents an EDM time constant. + + + Initializes a new instance of the class. + Type of the Time. + Time value represented by this value. + + + Initializes a new instance of the class. + Time value represented by this value. + + + Gets the kind of this expression. + + + Gets the definition of this value. + + + Gets the kind of this value. + + + Represents an EDM value. + + + Initializes a new instance of the EdmValue class. + Type of the value. + + + Gets {insert text here}. + + + Gets the type of this value. + + + Gets the kind of this value. + + + Represents a reportable error in EDM. + + + Creates a new instance of the class. + The location where the error occurred. + An integer code representing the error. + A human readable message describing the error. + + + Gets an integer code representing the error. + The code representing the error. + + + Gets the location of the error in the file in which it occurred. + The location of the error in the file in which it occurred. + + + Gets a human readable string describing the error. + A human readable string describing the error. + + + Gets a string representation of the error. + A string representation of the error. + + + EdmLib validation error codes + + + + + + References to EDM stream type are not supported before version 3.0. + + + References to EDM spatial types are not supported before version 3.0. + + + An exception was thrown by the underlying xml reader. + + + + + + + + + + + + + + + + + + + + + + + + An XML attribute or element representing EDM type is missing. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The value of the property must not be null. + + + An object with an interface kind property does not implement the interface corresponding to the value of that property. For example this error will be reported for an object that implements interface with kind property reporting .Entity, but does not implement interface. + + + The value of an interface kind property is not semantically valid. A semantically valid model must not contain elements of kind 'None'. + + + An enumeration property must not contain null elements. + + + The value of the enum type property is out of range. + + + If property P1 is a navigation property and P2 is its parnter, then partner property of P2 must be P1. + + + A chain of base types is cyclic. + + + + + + + + + An error occured processing the OnDelete element + + + No complex type with that name exists. + + + + + + Function import specifies an entity set expression which is not supported in this context. Function import entity set expression can be either an entity set reference or a path starting with a function import parameter and traversing navigation properties. + + + + + + + + + + + + Invalid multiplicty of the principal end of a navigation. + + + + + + Invalid multiplicty of the dependent end of a navigation. + + + Open types are supported only in version 1.2 and after version 2.0 + + + Vocabulary annotations are not supported before EDM 3.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A composable function import must have return type. + + + + + + + + + Nullable complex Type not supported in version 1.0 and 2.0. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Could not find a function with this name. + + + + + + + + + + + + The principal end of a referential constraint must be one of the ends of the association that defined the referential constraint. + + + + + + + + + + + + Value terms are not supported before EDM 3.0 + + + + + + + + + + + + + + + + + + Unsupported function import parameter type. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Binary value is invalid. + + + Floating point value is invalid. + + + DateTime value is invalid. + + + DateTimeOffset value is invalid. + + + Decimal value is invalid. + + + Guid value is invalid. + + + The type kind None is not semantically valid. A semantically valid model must not contain elements of type kind None. + + + + + + + + + + + + The IsType expression is invalid because it does not have 1 element. + + + The type name is not fully qualified and not a primitive. + + + The term name is not fully qualified. + + + No model was parsed because no XmlReaders were provided. + + + Model could not be parsed because one of the XmlReaders was null. + + + IsMaxMaxLength cannot be true if MaxLength is non-null. + + + ImmediateValueAnnotation is invalid as an element annotation. + + + The LabeledElement expression is invalid because it does not have 1 element. + + + Could not find a LabeledElement with that name + + + Could not find a enum member with that name + + + The AssertType expression is invalid because it does not have 1 element. + + + Could not find a Parameter with that name + + + A navigation property with = true must point to an optional target. + + + If a navigation property has = true and the target entity type is the same as the declaring type of the property, then the multiplicity of the source of navigation is Zero-Or-One. + + + If a navigation property has = true and the target entity type is defferent than the declaring type of the property, then the multiplicity of the source of navigation is One. + + + Navigation properties with setting are not supported before version 3.0. + + + The annotation target path cannot possibly refer to an annotable element. + + + A nullable type is not valid if a non-nullable type is required. + + + The expression is a primitive constant, and cannot be valid for an non-primitive type. + + + The primitive type is not valid for the requested type. + + + Null is not valid in a non nullable expression. + + + The expression is not valid for the asserted type. + + + A collection expression is not valid for a non-collection type. + + + A record expression is not valid for a non-structured type. + + + The record expression does not have all of the properties required for the specified type. + + + The record expression's type is not open, but the record expression has extra properties. + + + Target has multiple annotations with the same term and same qualifier. + + + Function application has wrong number of arguments for the function being applied. + + + Is it invalid to have multiple using statements with the same alias in a single schema element. + + + A model cannot be serialized to CSDL if it has references to types without fully qualified names. + + + The model could not be serialized because multiple schemas were produced and only a single output stream was found. + + + The Edmx version is not valid. + + + The EdmVersion is not valid. + + + Nothing was written because no schemas were produced. + + + Model has multiple entity containers with the same name. + + + The container name of a container element must be the full name of the container entity container. + + + A primitive constant expression is not valid for a non-primitive type. + + + The value of the integer constant is out of range for the asserted type. + + + The length of the string constant is too large for the asserted type. + + + The length of the binary constant is too large for the asserted type. + + + None is not a valid mode for a function import parameter. + + + A type without other errors must not have kind of none. + + + A primitive type without other errors must not have kind of none. + + + A property without other errors must not have kind of none. + + + A term without other errors must not have kind of none. + + + A schema element without other errors must not have kind of none. + + + An entity container element without other errors must not have kind of none. + + + A binary value must have content. + + + There can only be a single navigation property mapping with containment that targets a particular entity set. + + + The navigation properties partner does not point back to the correct type. + + + An entity set can only have one navigation property with containment. + + + If a navigation property is traversed from an entity set, and then it's partner is traversed from the target of the first mapping, the destination should be the originating entity set. + + + There can only be a single mapping from a given EntitySet with a particular navigation property. + + + An entity set must have a mapping for all of the navigation properties in its element type. + + + Type annotation does not have a property binding for all required properties. + + + Type annotation has a property binding for a non-existant property and its type is not open. + + + Time value is invalid. + + + The primitive type is invalid. + + + An Enum type must have an underlying type of integer. + + + Could not find a term with this name. + + + The principal properties of a referential constraint must match the key of the referential constraint. + + + A direct value annotation with the same name and namespace already exists. + + + AssociationSetEnd cannot infer an entity set because no set exists of the given type. + + + AssociationSetEnd cannot infer an entity set because more than one set exists of the given type. + + + Invalid entity set path. + + + Invalid enum member path. + + + An annotation qualifier must be a simple name. + + + Enum type could not be resolved. + + + Could not find a target with this name. + + + Represents a collection of validation methods. + + + Validates the and all of its properties given certain version. + True if model is valid, otherwise false. + The root of the model to be validated. + The custom rule set to validate against. + The errors encountered while validating the model. + + + Validates the and all of its properties using the current version of the model. If the model has no version, is used. + True if model is valid, otherwise false. + The root of the model to be validated. + The errors encountered while validating the model. + + + Validates the and all of its properties given certain version. + True if model is valid, otherwise false. + The root of the model to be validated. + The version of EDM to validate against. + The errors encountered while validating the model. + + + Collection of extension methods to assert that an expression is of the required type. + + + Determines if the type of an expression is compatible with the provided type + A value indicating whether the expression is valid for the given type or not. + The expression to assert the type of. + The type to assert the expression as. + Errors produced if the expression does not match the specified type. + + + Defines an object as a location of itself. + + + Gets the object. + + + Gets a string representation of the location. + A string representation of the location. + + + Specifies a context that records errors reported by validation rules. + + + Adds an error with the validation context. + The location of the error. + The value representing the error. + The message text describing the error. + + + Adds an error with the validation context. + The error to register. + + + Method returns true if the element is known to have structural errors associated with it. + True if the element has structural errors associated with it. + The element to test. + + + Gets the model being validated. + The model being validated. + + + Contains IsBad() and Errors() extension methods. + + + Gets the errors, if any, that belong to this element or elements that this element contains. For example errors for a structural type include the errors of the type itself and errors of its declared properties. The method does not analyze elements referenced by this element. For example errors of a property do not include errors from its type. + Any errors that belong to this element or elements that element contains. + Reference to the calling object. + + + Returns true if this element contains errors returned by the <see cref="M:Microsoft.Data.Edm.Validation.ValidationExtensionMethods.Errors(Microsoft.Data.Edm.IEdmElement)" /> method. + This element is an invalid element. + Reference to the calling object. + + + Gets the errors, if any, that belong to this type reference or its definition. + Any errors that belong to this type reference or its definition. + The type reference. + + + Represents a semantic validation rule. + + + Creates a new instance of the class. + + + Represents a validation rule that is valid for a specific type. + The type that the rule is valid for. + + + + Built in Edm validation rules + + + Validates that the max length of a binary type is not negative. + + + Validates that IsMaxMaxLength cannot be true if MaxLength is non-null. + + + Validates that all properties of a collection expression are of the correct type. + + + Validates that a complex type is not abstract. + + + Validates that a complex type does not inherit. + + + Validates that if a function import is composable, it must have a return type. + + + Validates that the precision is between 0 and the max precision of the decimal type. + + + Validates that the scale is between 0 and the precision of the decimal type. + + + Validates that no direct value annotations share the same name and namespace. + + + The container name of an entity container element must match the full name of the containing entity container. + + + Validates that there are no duplicate names in an entity container. + + + An entity container element without other errors must not have kind of none. + + + Validates that the entity type wrapped in this entity reference can be found through the model being validated. + + + Validates that an entity set can only have a single navigation property targetting it that has Contains set to true. + + + Validates that the entity type of an entity set can be found from the model being validated. + + + Validates that if a navigation property is traversed to another entity set, and then the navigation properties partner is traversed, the destination will be the source entity set. + + + Validates that no navigation property is mapped to two different entity sets. + + + + Validates that there are not duplicate properties in an entity key. + + + Validates that all parts of an entity key are scalar. + + + Validates that no part of an entity key is a binary primitive type. + + + Validates that a key is not defined if there is already a key in the base type. + + + Validates that no part of an entity key is nullable. + + + Validates that the entity type has a key. + + + Validates that all properties in the key of an entity blong to that entity. + + + + Raises an error if the underlying type of an enum type is not an integer type. + + + Validates that there are not duplicate enum members in an enum. + + + Raises an error if an enum type is found. + + + Validates the types of a function application are correct. + + + Validates that a function does not have multiple parameters with the same name. + + + Validates that if a function is bindable, it must have parameters. + + + Validates that if a function is composable, it is not also sideeffecting. + + + Validates that the entity set of a function import is defined using a path or an entity set reference expression. + + + + Validates that a function is not bindable. + + + Validates that a function import is not composable. + + + Validates that a function import is not sideeffecting. + + + Validates that no function import parameters have mode of none. + + + Validates that the type of a function imports parameter is correct. + + + + Validates that a function import has an allowed return type + + + + Validates that no function parameters are output parameters. + + + + Validates that an if expression has a boolean condition. + + + Validates that an immediate value annotation that is flagged to be serialized as an element can be serialized safely. + + + Validates that an immediate value annotation has a name and a namespace. + + + Validates that there are not duplicate properties in an entity key. + + + Validates every schema element in the current model is unique across all referenced models. + + + Validates every schema element in the current model (except for entity containers) is unique across all referenced models. + + + Validates that an element name matches the allowed pattern of names according to the CSDL spec. + + + Validates that an element name is not too long according to the CSDL spec. + + + Validates that a name is not empty or whitespace. + + + Validates that is not set prior to V3. + + + Validates that the type of a navigation property corresponds to the other end of the association and the multiplicity of the other end. + + + Validates that if the dependent properties are equivalent to the key of the dependent end, the multiplicity of the dependent end cannot be 1 Validates multiplicity of the dependent end according to the following rules: 0..1, 1 - if dependent properties represent the dependent end key. * - if dependent properties don't represent the dependent end key. + + + Validates that all dependent properties of a navigation property belong to the dependent entity type. + + + Validates that the dependent properties of a navigation property contain no duplicates. + + + Validates that the navigation property does not have both a multiplicity of many and an OnDelete operation. + + + Validates that only one end of an association has an OnDelete operation. + + + Validates that all dependent properties are a subset of the dependent entity types key. + + + Validates that the target of a navigation property's partner is the declaring type of the original. + + + Validates multiplicity of the principal end: 0..1 - if some dependent properties are nullable, 1 - if some dependent properties are not nullable. * - not allowed. + + + Validates that each pair of properties between the dependent properties and the principal ends key are of the same type. + + + Validates that if a navigation property has = true and the target entity type is defferent than the declaring type of the property, then the multiplicity of the source of navigation is One. + + + Validates that if a navigation property has = true and the target entity type is the same as the declaring type of the property, then the multiplicity of the source of navigation is Zero-Or-One. This depends on there being a targetting cycle. Because of the rule , we know that either this is always true, or there will be an error + + + Validates that if a navigation property has = true and the target entity type is the same as the declaring type of the property, then the multiplicity of the target of navigation is 0..1 or Many. This depends on there being a targetting cycle. Because of the rule , we know that either this is always true, or there will be an error + + + Open types are supported only in version 1.2 and after version 2.0. + + + A primtive type without other errors must not have kind of none. + + + Validates that if a primitive value declares a type, the value is acceptable for the type. + + + A property without other errors must not have kind of none. + + + Validates that the value of a property value binding is the correct type. + + + Validates that if a value record expression declares a type, the property types are correct. + + + Validates that a row type does not have a base type. + + + Validates that a row type contains at least one property. + + + A schema element without other errors must not have kind of none. + + + Validates that an element namespace matches the allowed pattern of namespaces according to the CSDL spec. + + + Validates that an element namespace is not too long according to the CSDL spec. + + + Validates that an element namespace is not empty or whitespace. + + + Validates that an element namespace is not a reserved system namespace. + + + References to EDM spatial types are not supported before version 3.0. + + + References to EDM stream type are not supported before version 3.0. + + + Validates that the max length of a string is not negative. + + + Validates that IsMaxMaxLength cannot be true if MaxLength is non-null. + + + Validates that the property is of an allowed type. + + + Validates that if the concurrency mode of a property is fixed, the type is primitive. + + + Validates that any property with a complex type is not nullable. + + + Validates that the base type of a complex type is complex, and the base type of an entity type is an entity. + + + Validates that the base type of a structured type can be found from the model being validated. + + + Validates that a type does not have a property with the same name as that type. + + + Validates that the declaring type of a property contains that property. + + + Validates that there are not duplicate properties in a type. + + + Validates that the precision is between 0 and the max precision of the temporal type. + + + A term without other errors must not have kind of none. + + + Validates that a type annotation implements its term type properly. + + + Validates that a vocabulary annotations term can be found through the model containing the annotation. + + + A type without other errors must not have kind of none. + + + Validates that a type reference refers to a type that can be found through the model being validated. + + + Validates that if a value annotation declares a type, the expression for that annotation has the correct type. + + + Validates that a vocabulary annotations term can be found through the model containing the annotation. + + + Value terms are not supported before EDM 3.0. + + + Validates that there are no annotations that share the same term and qualifier. + + + Validates that a vocabulary annotations target can be found through the model containing the annotation. + + + Qualifier must be simple name. + + + Vocabulary annotations are not supported before EDM 3.0. + + + Provides a set of rules to run during validation. + + + Creates a new instance of the class. + The rules to be contained in this ruleset. + + + Initializes a new instance of the ValidationRuleSet class. + Ruleset whose rules should be contained in this set. + Additional rules to add to the set. + + + Gets the default validation ruleset for the given version. + The set of rules to validate that the model conforms to the given version. + The EDM version being validated. + + + Gets all of the rules in this ruleset. + All of the rules in this ruleset. + + + Gets all of the rules in this ruleset. + All of the rules in this ruleset. + + + Defines Edm values + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value implementing . + + + Represents a value with an unknown or error kind. + + + Represents an EDM binary value. + + + Gets the definition of this binary value. + + + Represents an EDM boolean value. + + + Gets a value indicating whether the value of this boolean value is true or false. + + + Represents an EDM collection value. + + + Gets the values stored in this collection. + + + Represents an EDM datetime with offset value. + + + Gets the definition of this value. + + + Represents an EDM datetime value. + + + Gets the definition of this datetime value. + + + Represents an EDM decimal value. + + + Gets the definition of this decimal value. + + + Represents a lazily computed value. + + + Gets the data stored in this value. + + + Represents an EDM enumeration type value. + + + Gets the underlying type value of the enumeration type. + + + Represents an EDM floating point value. + + + Gets the definition of this floating value. + + + Represents an EDM integer value. + + + Gets the definition of this guid value. + + + Represents an EDM integer value. + + + Gets the definition of this integer value. + + + + + Represents a value of an EDM property. + + + Gets the name of the property this value is associated with. + + + Represents an EDM string value. + + + Gets the definition of this string value. + + + Represents an EDM structured value. + + + Finds the value corresponding to the provided property name. + The found property, or null if no property was found. + Property to find the value of. + + + Gets the property values of this structured value. + + + Represents an EDM time value. + + + Gets the definition of this time value. + + + Represents an EDM value. + + + Gets the type of this value. + + + Gets the kind of this value. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/RUS/Microsoft.Data.Edm.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/RUS/Microsoft.Data.Edm.SL.resources.dll new file mode 100644 index 0000000..56d7929 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Edm.5.0.0/lib/sl4/RUS/Microsoft.Data.Edm.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/Microsoft.Data.OData.5.0.0.nupkg b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/Microsoft.Data.OData.5.0.0.nupkg new file mode 100644 index 0000000..057be4b Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/Microsoft.Data.OData.5.0.0.nupkg differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/Microsoft.Data.OData.5.0.0.nuspec b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/Microsoft.Data.OData.5.0.0.nuspec new file mode 100644 index 0000000..09702ba --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/Microsoft.Data.OData.5.0.0.nuspec @@ -0,0 +1,24 @@ + + + + Microsoft.Data.OData + 5.0.0 + ODataLib + Microsoft Corporation + Microsoft Corporation + http://www.microsoft.com/download/en/details.aspx?id=29306 + http://go.microsoft.com/fwlink/?LinkId=220868 + http://static.tumblr.com/hgchgxz/9ualgdf98/icon.png + true + Classes to serialize, deserialize and validate OData payloads. Enables construction of OData producers and consumers. Targets .NET 4.0 or Silverlight 4.0. Localized for CHS, CHT, DEU, ESN, FRA, ITA, JPN, KOR and RUS. + wcf data services odata odatalib edmlib spatial ado.net ef entity framework open protocol wcfds wcfdataservices dataservices + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/CHS/Microsoft.Data.OData.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/CHS/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..9122095 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/CHS/Microsoft.Data.OData.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/CHT/Microsoft.Data.OData.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/CHT/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..1eb11a4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/CHT/Microsoft.Data.OData.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/DEU/Microsoft.Data.OData.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/DEU/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..dda6bc4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/DEU/Microsoft.Data.OData.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/ESN/Microsoft.Data.OData.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/ESN/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..89990db Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/ESN/Microsoft.Data.OData.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/FRA/Microsoft.Data.OData.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/FRA/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..cd7c47f Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/FRA/Microsoft.Data.OData.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/ITA/Microsoft.Data.OData.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/ITA/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..468f749 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/ITA/Microsoft.Data.OData.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/JPN/Microsoft.Data.OData.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/JPN/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..5fc9413 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/JPN/Microsoft.Data.OData.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/KOR/Microsoft.Data.OData.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/KOR/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..a4274e3 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/KOR/Microsoft.Data.OData.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/Microsoft.Data.OData.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/Microsoft.Data.OData.dll new file mode 100644 index 0000000..6d9d0b9 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/Microsoft.Data.OData.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/Microsoft.Data.OData.xml b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/Microsoft.Data.OData.xml new file mode 100644 index 0000000..53df6a6 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/Microsoft.Data.OData.xml @@ -0,0 +1,2152 @@ + + + + Microsoft.Data.OData + + + + Represents an interface for synchronous OData request messages. + + + Returns a value of an HTTP header. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Gets or sets the HTTP method used for this request message. + The HTTP method used for this request message. + + + Sets the value of an HTTP header. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the request URL for this request message. + The request URL for this request message. + + + Represents an interface for asynchronous OData request messages. + + + Asynchronously get the stream backing for this message. + The stream for this message. + + + Represents an interface for synchronous OData response messages. + + + Returns a value of an HTTP header. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Sets the value of an HTTP header. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the result status code of the response message. + The result status code of the response message. + + + Represents an interface for asynchronous OData response messages. + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + Supports custom resolution of URLs found in the payload. + + + Implements a custom URL resolution scheme. This method returns null if no custom resolution is desired. If the method returns a non-null URL that value will be used without further validation. + An instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + Represents an OData action. + + + Creates a new instance of the class. + + + Represents the base class for all annotatable types in OData library. + + + Creates a new instance of the class. + + + Gets or sets the annotation by type. + The annotation of type T or null if not present. + The type of the annotation. + + + Sets an annotation of type T. + The annotation to set. + The type of the annotation. + + + Represents an association link. + + + Creates a new instance of the class. + + + Gets or sets the name of the association link. + The name of the associate link. + + + Gets or sets the URI representing the Unified Resource Locator (URL) of the link. + The URI representing the Unified Resource Locator (URL) of the link. + + + Displays a message representing an operation in a batch request. + + + Returns a value of an HTTP header of this operation. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Gets the HTTP method used for this request message. + The HTTP method used for this request message. + + + Implements a custom URL resolution scheme. + An instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + Sets the value of an HTTP header of this operation. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the request URL for this request message. + The request URL for this request message. + + + Displays a message representing an operation in a batch response. + + + Returns a value of an HTTP header of this operation. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Method to implement a custom URL resolution scheme. This method returns null if not custom resolution is desired. If the method returns a non-null URL that value will be used without further validation. + A instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + Sets the value of an HTTP header of this operation. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the result status code of the response message. + The result status code of the response message. + + + Represents a class for reading OData batch messages; also verifies the proper sequence of read calls on the reader. + + + Returns an for reading the content of a batch operation. + A request message for reading the content of a batch operation. + + + Asynchronously returns an for reading the content of a batch operation. + A task that when completed returns a request message for reading the content of a batch operation. + + + Returns an for reading the content of a batch operation. + A response message for reading the content of a batch operation. + + + Asynchronously returns an for reading the content of a batch operation. + A task that when completed returns a response message for reading the content of a batch operation. + + + Reads the next part from the batch message payload. + true if more items were read; otherwise false. + + + Asynchronously reads the next part from the batch message payload. + A task that when completed indicates whether more items were read. + + + The current state of the batch reader. + + + Enumeration with all the states the batch reader can be in. + + + The state the batch reader is in after having been created. + + + The batch reader detected an operation. + + + The batch reader detected the start of a change set. + + + The batch reader completed reading a change set. + + + The batch reader completed reading the batch payload. + + + The batch reader encountered an error reading the batch payload. + + + Writes OData batch messages; also verifies the proper sequence of write calls on the writer. + + + Creates an for writing an operation of a batch request. + The message that can be used to write the request operation. + The Http method to be used for this request operation. + The Uri to be used for this request operation. + + + Creates a message for asynchronously writing an operation of a batch request. + The message that can be used to asynchronously write the request operation. + The HTTP method to be used for this request operation. + The URI to be used for this request operation. + + + Creates a message for writing an operation of a batch response. + The message that can be used to write the response operation. + + + Asynchronously creates an for writing an operation of a batch response. + A task that when completed returns the newly created operation response message. + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + Ends a batch; can only be called after WriteStartBatch has been called and if no other active changeset or operation exist. + + + Asynchronously ends a batch; can only be called after WriteStartBatch has been called and if no other active change set or operation exist. + A task instance that represents the asynchronous write operation. + + + Ends an active changeset; this can only be called after WriteStartChangeset and only once for each changeset. + + + Asynchronously ends an active change set; this can only be called after WriteStartChangeset and only once for each change set. + A task instance that represents the asynchronous write operation. + + + Starts a new batch; can be only called once and as first call. + + + Asynchronously starts a new batch; can be only called once and as first call. + A task instance that represents the asynchronous write operation. + + + Starts a new changeset; can only be called after WriteStartBatch and if no other active operation or changeset exists. + + + Asynchronously starts a new change set; can only be called after WriteStartBatch and if no other active operation or change set exists. + A task instance that represents the asynchronous write operation. + + + Represents the base class for OData collection readers. + + + Creates a new instance of the class. + + + Gets the most recent item that has been read. + The most recent item that has been read. + + + Reads the next item from the message payload. + True if more items were read; otherwise false. + + + Asynchronously reads the next item from the message payload. + A task that when completed indicates whether more items were read. + + + Gets or sets the current state of the reader. + The current state of the reader. + + + Enumerates all the possible states of . + + + The reader is at the start; nothing has been read yet. + + + The reader has started reading and is reading the start element of the collection wrapper. + + + The reader read an item from the collection. + + + The reader has finished reading and is reading the end element of the collection wrapper. + + + The reader has thrown an exception; nothing can be read from the reader anymore. + + + The reader has completed; nothing can be read anymore. + + + OData representation of a top-level collection. + + + Initializes a new instance of the class. + + + The name of the collection (ATOM only). + + + OData representation of a Collection. + + + Initializes a new instance of the class. + + + The items in the bag value. + + + The type of the collection value. + + + Represents the base class for OData collection writers. + + + Creates a new instance of the class. + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + Finishes writing a collection. + + + Asynchronously finish writing a collection. + A task instance that represents the asynchronous write operation. + + + Starts writing an entry. + The collection item to write. + + + Asynchronously start writing a collection item. + A task instance that represents the asynchronous write operation. + The collection item to write. + + + Start writing a collection. + The representing the collection. + + + Asynchronously start writing a collection. + A task instance that represents the asynchronous write operation. + The representing the collection. + + + Represents the OData complex value. + + + Creates a new instance of the class. + + + Gets or sets the properties and values of the complex value. + The properties and values of the complex value. + + + Gets or sets the type of the complex value. + The type of the complex value. + + + Constant values used by the OData or HTTP protocol or OData library. + + + Name of the HTTP content-ID header. + + + Name of the HTTP content type header. + + + Name of the OData 'DataServiceVersion' HTTP header. + + + HTTP method name for DELETE requests. + + + HTTP method name for GET requests. + + + Custom HTTP method name for MERGE requests. + + + HTTP method name for PATCH requests. + + + HTTP method name for POST requests. + + + HTTP method name for PUT requests. + + + Exception type representing exception when Content-Type of a message is not supported. + + + Creates a new instance of the class. + + + Creates a new instance of the class from the specified SerializationInfo and StreamingContext instances. + A SerializationInfo containing the information required to serialize the new ODataException. + A StreamingContext containing the source of the serialized stream associated with the new ODataException. + + + Creates a new instance of the class. + Plain text error message for this exception. + + + Creates a new instance of the class. + Plain text error message for this exception. + Exception that caused this exception to be thrown. + + + Represents an OData entity reference link. + + + Creates a new instance of the class. + + + Gets or sets the URI representing the URL of the referenced entity. + The URI representing the URL of the referenced entity. + + + Represents a collection of entity reference links. + + + Creates a new instance of the class. + + + Represents the optional inline count of the $links collection. + + + Gets or sets the enumerable of instances representing the links of the referenced entities. + The enumerable of instances. + + + Represents the optional next link of the $links collection. + + + Represents a single entity. + + + Creates a new instance of the class. + + + Gets or sets the entity actions. + The entity actions. + + + Gets or sets the association links. + The association links. + + + Gets or sets the link used to edit the entry. + The link used to edit the entry. + + + Gets or sets the entry ETag. + The entry ETag. + + + Gets or sets the entity functions. + The entity functions. + + + Gets or sets the Entry identifier. + The Entry identifier. + + + Gets or sets the default media resource of the media link entry. + The default media resource of the media link entry. + + + Gets or sets the entry properties. + The entry properties. + + + Gets or sets a link that can be used to read the entry. + The link that can be used to read the entry. + + + Gets or sets the type name of the entry. + The type name of the entry. + + + Represents an error payload. + + + Creates a new instance of the class. + + + Gets or sets the error code to be used in payloads. + The error code to be used in payloads. + + + Gets or sets the implementation specific debugging information to help determine the cause of the error. + The implementation specific debugging information. + + + Gets or sets the error message. + The error message. + + + Gets or sets the language for the exception Message. + The language for the exception Message. + + + Represents an in-stream error parsed when reading a payload. + + + Creates a new instance of the class with default values. + + + Creates a new instance of the class with an object. + The instance representing the error read from the payload. + + + Creates a new instance of the class with an error message. + The plain text error message for this exception. + + + Creates a new instance of the class with an error message and an object. + The plain text error message for this exception. + The instance representing the error read from the payload. + + + Creates a new instance of the class with an error message and an inner exception. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + + + Creates a new instance of the class with an error message, an inner exception, and an object. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + The instance representing the error read from the payload. + + + Gets or sets the instance representing the error read from the payload. + The instance representing the error read from the payload. + + + Represents an exception in the OData library. + + + Creates a new instance of the class with default values. + + + Creates a new instance of the class from the specified and instances. + A containing the information required to serialize the new . + A containing the source of the serialized stream associated with the new . + + + Creates a new instance of the class with an error message. + The plain text error message for this exception. + + + Creates a new instance of the class with an error message and an inner exception. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + + + Describes a collection of entities. + + + Creates a new instance of the class. + + + Gets or sets the number of items in the feed. + The number of items in the feed. + + + Gets or sets the URI that identifies the entity set represented by the feed. + The URI that identifies the entity set represented by the feed. + + + Gets or sets the URI representing the next page link. + The URI representing the next page link. + + + Enumerates the format type in connection to processing OData payloads. + + + Initializes a new instance of the class. + + + ATOM format; we also use this for all Xml based formats (if ATOM can't be used). + + + The batch format instance. + + + JSON format + + + The metadata format instance. + + + RAW format; used for raw values. + + + Represents an OData function. + + + Creates a new instance of the class. + + + Contains properties used to implement specific debugging information to help determine the cause of the error. + + + Initializes a new instance of the class with default values. + + + Initializes a new instance of the class with exception object. + The used to create the inner error. + + + Gets or sets the nested implementation specific debugging information. + The nested implementation specific debugging information. + + + Gets or sets the error message. + The error message. + + + Gets or sets the stack trace for this error. + The stack trace for this error. + + + Gets or sets the type name of this error, for example, the type name of an exception. + The type name of this error. + + + Represents the base class for and classes. + + + Initializes a new instance of the class. + + + Quotas to use for limiting resource consumption when reading or writing OData messages. + + + Constructor to create default message quotas for OData readers and writers. + + + Copy constructor. + The instance to copy. + + + The maximum number of entity mapping attributes to be found for an entity type (on the type itself and all its base types). + + + The maximum depth of nesting allowed when reading or writing recursive payloads. + + + The maximum number of operations allowed in a single changeset. + + + The maximum number of top level query operations and changesets allowed in a single batch. + + + The maximum number of bytes that should be read from the message. + + + Represents the reader class used to read all OData payloads (entries, feeds, metadata documents, service documents, and so on). + + + Creates a new for the given request message. + The request message for which to create the reader. + + + Creates a new for the given request message and message reader settings. + The request message for which to create the reader. + The message reader settings to use for reading the message payload. + + + Creates a new for the given request message and message reader settings. + The request message for which to create the reader. + The message reader settings to use for reading the message payload. + The metadata provider to use. + + + Creates a new for the given response message. + The response message for which to create the reader. + + + Creates a new for the given response message and message reader settings. + The response message for which to create the reader. + The message reader settings to use for reading the message payload. + + + Creates a new for the given response message and message reader settings. + The response message for which to create the reader. + The message reader settings to use for reading the message payload. + The metadata provider to use. + + + Creates an to read a batch of requests or responses. + The created batch reader. + + + Asynchronously creates an to read a batch of requests or responses. + A running task for the created batch reader. + + + Creates an to read a collection of primitive or complex values (as result of a service operation invocation). + The created collection reader. + + + Creates an to read a collection of primitive or complex values (as result of a service operation invocation). + The created collection reader. + The expected resource type for the items in the collection. + + + Asynchronously creates an to read a collection of primitive or complex values (as result of a service operation invocation). + A running task for the created collection reader. + + + + Creates an to read an entry. + The created reader. + + + Creates an to read an entry. + The created reader. + The expected entity type for the entry to be read. + + + Asynchronously creates an to read an entry. + A running task for the created reader. + + + + Creates an to read a feed. + The created reader. + + + Creates an to read a feed. + The created reader. + The expected base resource type for the entities in the feed. + + + Asynchronously creates an to read a feed. + A running task for the created reader. + + + + + + Determines the potential payload kinds and formats of the payload being read and returns it. + The set of potential payload kinds and formats for the payload being read by this reader. + + + Determines the potential payload kinds and formats of the payload being read and returns it. + The set of potential payload kinds and formats for the payload being read by this reader. + + + + implementation to cleanup unmanaged resources of the reader. + + + Reads a singleton result of a $links query (entity reference link) as the message payload. + The entity reference link read from the message payload. + + + Asynchronously reads a singleton result of a $links query (entity reference link) as the message payload. + A running task representing the reading of the entity reference link. + + + Reads the result of a $links query (entity reference links) as the message payload. + The entity reference links read as message payload. + + + Asynchronously reads the result of a $links query as the message payload. + A task representing the asynchronous reading of the entity reference links. + + + Reads an as the message payload. + The read from the message payload. + + + Asynchronously reads an as the message payload. + A task representing the asynchronous operation of reading the error. + + + Reads the message body as metadata document. + Returns . + + + Reads an as message payload. + The property read from the payload. + + + Reads an as message payload. + The property read from the payload. + The expected resource type of the property to read. + + + Asynchronously reads an as message payload. + A task representing the asynchronous operation of reading the property. + + + + Reads a service document payload. + The service document read. + + + Asynchronously reads a service document payload. + A task representing the asynchronous operation of reading the service document. + + + Reads a single value as the message body. + The read value. + The expected resource type for the value to be read; null if no expected type is available. + + + + Represents the configuration settings for OData message readers. + + + Initializes a new instance of the class with default values. + + + + Gets or sets the document base URI (used as base for all relative URIs). If this is set, it must be an absolute URI. + The base URI. + + + Gets or sets a value that indicates whether the reader checks for valid XML characters. + true if the reader checks for valid XML characters; otherwise, false. + + + Gets or sets a value that indicates whether the message stream will not be disposed after finishing writing with the message. + true if the message stream will not be disposed after finishing writing with the message; otherwise false. The default value is false. + + + Gets or sets a value that indicates whether not to convert all primitive values to the type specified in the payload. + true if primitive values and report values are not converted; false if all primitive values are converted to the type specified in the payload. The default value is false. + + + + + + + + The maximum OData protocol version the reader should accept and understand. + + + Quotas to use for limiting resource consumption when reading an OData message. + + + The behavior the reader should use when it finds undeclared property. + + + Represents the writer class used to write all OData payloads (entries, feeds, metadata documents, service documents, and so on.). + + + Creates a new for the given request message. + The request message for which to create the writer. + + + Creates a new for the given request message and message writer settings. + The request message for which to create the writer. + The message writer settings to use for writing the message payload. + + + Creates a new for the given request message and message writer settings. + The request message for which to create the writer. + The message writer settings to use for writing the message payload. + The metadata provider to use. + + + Creates a new for the given response message. + The response message for which to create the writer. + + + Creates a new for the given response message and message writer settings. + The response message for which to create the writer. + The message writer settings to use for writing the message payload. + + + Creates a new for the given response message and message writer settings. + The response message for which to create the writer. + The message writer settings to use for writing the message payload. + The metadata provider to use. + + + Creates an to write a batch of requests or responses. + The created batch writer. + + + Asynchronously creates an to write a batch of requests or responses. + A running task for the created batch writer. + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + The created collection writer. + + + Asynchronously creates an to write a collection of primitive or complex values (as result of a service operation invocation). + A running task for the created collection writer. + + + Creates an to write an entry. + The created writer. + + + Asynchronously creates an to write an entry. + A running task for the created writer. + + + Creates an to write a feed. + The created writer. + + + Asynchronously creates an to write a feed. + A running task for the created writer. + + + Creates an to write a parameter payload. + The created parameter writer. + The function import whose parameters will be written. + + + Asynchronously creates an to write a parameter payload. + The created parameter writer. + The function import whose parameters will be written. + + + + implementation to cleanup unmanaged resources of the writer. + + + Writes a singleton result of a $links query as the message payload. + The entity reference link to write as the message payload. + + + Asynchronously writes a singleton result of a $links query as the message payload. + A running task representing the writing of the link. + The link result to write as the message payload. + + + Writes the result of a $links query as the message payload. + The entity reference links to write as message payload. + + + Asynchronously writes the result of a $links query as the message payload. + A task representing the asynchronous writing of the entity reference links. + The entity reference links to write as message payload. + + + Writes an as the message payload. + The error to write. + A flag indicating whether debug information (for example, the inner error from the ) should be included in the payload. This should only be used in debug scenarios. + + + Asynchronously writes an as the message payload. + A task representing the asynchronous operation of writing the error. + The error to write. + A flag indicating whether debug information (for example, the inner error from the ) should be included in the payload. This should only be used in debug scenarios. + + + Writes the metadata document as the message body. + + + Writes an as the message payload. + The property to write. + + + Asynchronously writes an as the message payload. + A task representing the asynchronous operation of writing the property. + The property to write + + + Writes a service document with the specified as the message payload. + The default workspace to write in the service document. + + + Asynchronously writes a service document with the specified as the message payload. + A task representing the asynchronous operation of writing the service document. + The default workspace to write in the service document. + + + Writes a single value as the message body. + The value to write. + + + Asynchronously writes a single value as the message body. + A running task representing the writing of the value. + The value to write. + + + Represents the configuration settings for OData message writers. + + + Initializes a new instance of the class with default settings. + + + + Gets or sets the document base URI which is used as base for all relative URIs. + The document base URI which is used as base for all relative URIs. + + + Gets or sets a value that indicates whether the reader checks for valid XML characters. + true if the reader checks for valid XML characters; otherwise, false. + + + Gets or sets a value that indicates whether the message stream will not be disposed after finishing writing with the message. + true if the message stream will not be disposed after finishing writing with the message; otherwise false. The default value is false. + + + + + + Gets or sets a value to indicate whether the writer uses indentation. + true if the writer uses indentation; otherwise, false. + + + Quotas to use for limiting resource consumption when writing an OData message. + + + Sets the format to be used when writing the payload. This will automatically set a compatible content type header. + The format to use for writing the payload. + + + Sets the acceptable media types and character sets from which the content type will be computed when writing the payload. + The acceptable media types used to determine the content type of the message. This is a comma separated list of content types as specified in RFC 2616, Section 14.1 + The acceptable charsets to use to determine the encoding of the message. This is a comma separated list of charsets as specified in RFC 2616, Section 14.2 + + + Gets or sets the OData protocol version to be used for writing payloads. + The OData protocol version to be used for writing payloads. + + + Represents a single link. + + + Initializes a new instance of the class. + + + Gets or sets a value that indicates whether the navigation link represents a collection or an entry. + true if the navigation link represents a collection; false if the navigation represents an entry. + + + Gets or sets the name of the link. + The name of the link. + + + Gets or sets the URI representing the Unified Resource Locator (URL) of the link. + The URI representing the Unified Resource Locator (URL) of the link. + + + Represents a function or an action. + + + Initializes a new instance of the class. + + + The URI that identifies the or the . + + + Gets or sets the URI to invoke the or the . + The URI to invoke the or the . + + + Gets or sets a human-readable description of the or the . + A human-readable description of the or the . + + + Base class for OData parameter readers. + + + Initializes a new instance of the class. + + + Creates an to read the collection value when the state is ODataParameterReaderState.Collection. + An to read the collection value when the state is ODataParameterReaderState.Collection. + + + Gets the name of the current parameter that is being read. + The name of the current parameter that is being read. + + + Reads the next parameter from the message payload. + true if more items were read; otherwise false. + + + Asynchronously reads the next item from the message payload. + A task that when completed indicates whether more items were read. + + + Gets the current state of the reader. + The current state of the reader. + + + Gets the value of the current parameter that is being read. + The value of the current parameter that is being read. + + + Enumeration of all possible states of an . + + + The reader is at the start; nothing has been read yet. + + + The reader read a primitive or a complex parameter. + + + The reader is reading a collection parameter. + + + The reader has thrown an exception; nothing can be read from the reader anymore. + + + The reader has completed; nothing can be read anymore. + + + Base class for OData collection writers. + + + Initializes a new instance of the class. + + + Creates an to write the value of a collection parameter. + The newly created . + The name of the collection parameter to write. + + + + Flushes the write buffer to the underlying stream. + + + Asynchronously flushes the write buffer to the underlying stream. + A task instance that represents the asynchronous operation. + + + Finish writing a parameter payload. + + + Asynchronously finish writing a parameter payload. + A task instance that represents the asynchronous write operation. + + + Start writing a parameter payload. + + + Asynchronously start writing a parameter payload. + A task instance that represents the asynchronous write operation. + + + Start writing a value parameter. + The name of the parameter to write. + The value of the parameter to write. + + + Asynchronously start writing a value parameter. + A task instance that represents the asynchronous write operation. + The name of the parameter to write. + The value of the parameter to write. + + + Enumerates the different kinds of payloads that ODatLib can write. + + + Specifies a payload kind for writing a feed. + + + Specifies a payload kind for writing an entry. + + + Specifies a payload kind for writing a property. + + + Specifies the payload kind for writing an entity reference link. + + + Specifies the payload kind for writing entity reference links. + + + Specifies a payload kind for writing a raw value. + + + Specifies the payload kind for writing a binary value. + + + Specifies a payload kind for writing a collection. + + + Specifies a payload kind for writing a service document. + + + Specifies a payload kind for writing a metadata document. + + + Specifies a payload kind for writing an error. + + + Specifies the payload kind for writing a batch. + + + Specifies a payload kind for writing a parameter. + + + Specifies an unknown format. + + + Represents the set of information available for payload kind detection. + + + The encoding derived from the content type or the default encoding. + The encoding derived from the content type or the default encoding. + + + The being used for reading the message. + + + The for the payload. + + + The possible payload kinds based on content type negotiation. + + + Represents the result of running payload kind detection for a specified payload kind and format. + + + The format for the detected payload kind. + + + The detected payload kind. + + + Represents a single property of an entry. + + + Initializes a new instance of the class. + + + Gets or sets the property name. + The property name. + + + Gets or sets the property value. + The property value. + + + Represents the base class for OData readers. + + + Initializes a new instance of the class. + + + Gets the most recent that has been read. + The most recent that has been read. + + + Reads the next from the message payload. + true if more items were read; otherwise false. + + + Asynchronously reads the next from the message payload. + A task that when completed indicates whether more items were read. + + + Gets the current state of the reader. + The current state of the reader. + + + Enumeration of all possible states of an . + + + The reader is at the start; nothing has been read yet. + + + The start of a feed has been read. + + + The end of a feed has been read. + + + The start of an entry has been read. + + + The end of an entry has been read. + + + The start of a navigation link has been read. + + + The end of a navigation link has been read. + + + An entity reference link was read. + + + The reader has thrown an exception; nothing can be read from the reader anymore. + + + The reader has completed; nothing can be read anymore. + + + Represents a class that contains collection of information about a resource in a workspace of a data service. + + + Initializes a new instance of the class. + + + Gets or sets the URI representing the Unified Resource Locator (URL) to the collection. + The URI representing the Unified Resource Locator (URL) to the collection. + + + Represents a media resource. + + + Initializes a new instance of the class. + + + Gets or sets the content media type. + The content media type. + + + Gets or sets the edit link for media resource. + The edit link for media resource. + + + Gets or sets the media resource ETag. + The media resource ETag. + + + Gets or sets the read link for media resource. + The read link for media resource. + + + Behavior of readers when reading undeclared property. + + + The default behavior - the reader will fail if it finds a property which is not declared by the model and the type is not open. + + + The reader will skip reading the property if it's not declared by the model. + + + The reader will read and report link properties which are not declared by the model. + + + Represents the utility methods used with the OData library. + + + Checks whether the annotatable has an HttpMethod annotation. + The (non-null) value of the HttpMethod annotation of the annotatable or null if no such annotation exists. + The containing the annotation. + The to check. + + + Checks whether the annotatable has a MIME type annotation. + The (non-null) value of the MIME type annotation of the annotatable or null if no MIME type annotation exists. + The containing the annotation. + The to check. + + + Returns the format used by the message reader for reading the payload. + The format used by the messageReader for reading the payload. + The to get the read format from. + + + Checks whether the entityType has a default stream. + true if the entity type has a default stream; otherwise false. + The containing the annotation. + The to check. + + + Gets the value of IsAlwaysBindable annotation on the functionImport. + The value of the annotation if it exists; false otherwise. + The containing the annotation. + The to get the annotation from. + functionImport + + + Checks whether the entityContainer is the default entity container. + true if the entityContainer is the default container; otherwise false. + The containing the annotation. + The to check. + + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + The containing the annotations. + The to process. + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + The containing the annotations. + The to process. + The maximum number of entity mapping attributes to be found for an entity type (on the type itself and all its base types). + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + The to process. + The maximum number of entity mapping attributes to be found for an entity type (on the type itself and all its base types). + + + Gets the reader behavior for null property value on the specified property. + The behavior to use when reading null value for this property. + The model containing the annotation. + The property to check. + + + + + + Turns the in-memory representations of the supported, OData-specific annotations into their serializable form. + The containing the annotations. + The to process. + + + Adds or removes a default stream to/from the entityType. + The containing the annotation. + The to modify. + true to add a default stream to the entity type; false to remove an existing default stream (if any). + + + Sets the content-type and data service version headers on the message used by the message writer. + The message writer to set the headers for. + The kind of payload to be written with the message writer. + + + Sets the HttpMethod annotation of the annotatable to httpMethod. + The contatining the annotation. + The to modify. + The HttpMethod value to set as annotation value; if null, an existing annotation will be removed. + + + Sets the value of IsAlwaysBindable annotation of the functionImport to isAlwaysBindable + The containing the annotation. + The to set the annotation on. + The value of the annotation to set. + functionImport + + + Adds or removes a default stream to/from the entityContainer. + The containing the annotation. + The to modify. + true to set the entityContainer as the default container; false to remove an existing default container annotation (if any). + + + Sets the MIME type annotation of the annotatable to mimeType. + The containing the annotation. + The to modify. + The MIME type value to set as annotation value; if null, an existing annotation will be removed. + + + Adds a transient annotation to indicate how null values for the specified property should be read. + The containing the annotations. + The to modify. + The new behavior for reading null values for this property. + + + + + Specifies the OData protocol version. + + + The version 1.0. + + + The version 2.0. + + + The version 3.0. + + + Represents the workspace of a data service. + + + Initializes a new instance of the class. + + + Gets or sets the set of collections in the workspace. + The set of collections in the workspace. + + + Represents a base class for OData writers. + + + Initializes a new instance of the class. + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + Finishes the writing of a feed, an entry, or a navigation link. + + + Asynchronously finish writing a feed, entry, or navigation link. + A task instance that represents the asynchronous write operation. + + + Writes an entity reference link, which is used to represent binding to an existing resource in a request payload. + The entity reference link to write. + + + Asynchronously writes an entity reference link, which is used to represent binding to an existing resource in a request payload. + A task instance that represents the asynchronous write operation. + The entity reference link to write. + + + Starts the writing of an entry. + The entry or item to write. + + + Starts the writing of a feed. + The feed or collection to write. + + + Starts the writing of a navigation link. + The navigation link to write. + + + Asynchronously start writing an entry. + A task instance that represents the asynchronous write operation. + The entry or item to write. + + + Asynchronously start writing a feed. + A task instance that represents the asynchronous write operation. + The feed or collection to write. + + + Asynchronously start writing a navigation link. + A task instance that represents the asynchronous write operation. + The navigation link to writer. + + + Represents an annotation which stores a list of projected properties for an entry. + + + Initializes a new instance of the class. + The enumeration of projected property names. + + + Annotation which stores the type name to serialize. + + + Initializes a new instance of the class. + + + Gets or sets the type name to serialize, for the annotated item. + The type name to serialize, for the annotated item. + + + Atom metadata description for a categories element (app:categories). + + + Initializes a new instance of the class. + + + Gets or sets the atom category elements inside this categories element. + The atom category elements inside this categories element. + + + Gets or sets a value that indicates whether the list of categories is fixed or an open set. + true if the list of categories is fixed; false if the list of categories is an open set. + + + Gets or sets the URI of the category document. + The URI of the category document. + + + Gets or sets the URI indicating the scheme of the categories without a scheme. + The URI indicating the scheme of the categories without a scheme. + + + Represents an Atom metadata description for a category. + + + Initializes a new instance of the class. + + + Gets or sets a human-readable label for display in user interfaces. + A human-readable label. + + + Gets or sets the URI that indicates the scheme of the category. + The URI that indicates the scheme of the category. + + + Gets or sets the string value identifying the category. + The string value identifying the category. + + + Represents a type for Atom Syndication Format (Atom) entry annotationsAsArray. + + + Initializes a new instance of the class. + + + Gets or sets a collection of authors of an entry. + A collection of authors of an entry. + + + Gets or sets the categories of an entry. + The categories of an entry. + + + The ATOM metadata for the category element which stores the type name of the entry. + + + Gets or sets a collection of contributors of an entry. + A collection of contributors of an entry. + + + Gets or sets an Atom link metadata for the edit link. + An Atom link metadata for the edit link. + + + Gets or sets the collection of all Atom link information except for the self/edit links and the navigation property links. + The collection of all Atom link information except for the self/edit links and the navigation property links. + + + Gets or sets the date and time when the entry was published. + The date and time when the entry was published. + + + Gets or sets the rights text of an entry. + The rights text of an entry. + + + Gets or sets an Atom link metadata for the self link. + An Atom link metadata for the self link. + + + Gets or sets the source of an entry and if the entry was copied from a different stream the property contains the feed metadata of the original feed. + The source of an entry. + + + Gets or sets the summary of the entry. + The summary of the entry. + + + Gets or sets the title of the entry. + The title of the entry. + + + Gets or sets the date and time of last update to the source. + The date and time of last update to the source. + + + Represents a type for Atom Syndication Format (Atom) feed annotationsAsArray. + + + Initializes a new instance of the class. + + + Gets or sets a collection of authors of a feed. + A collection of authors of a feed. + + + Gets or sets the categories of a feed. + The categories of a feed. + + + Gets or sets a collection of contributors of a feed. + A collection of contributors of a feed. + + + Gets or sets the generator of a feed. + The generator of a feed. + + + Gets or sets the URI of the icon for a feed. + The URI of the icon for a feed. + + + Gets or sets the collection of all Atom link information except for the next page and self links. + The collection of all Atom link information except for the next page and self links. + + + Gets or sets the URI for the feed's logo. + The URI for the feed?s logo. + + + The next page link of the feed. This link should point to the next page of results. + + + Gets or sets the rights text of a feed. + The rights text of a feed. + + + Gets or sets the self link of the feed. This link should point to the source of the feed. + The self link of the feed. + + + Gets or sets the identifier for the feed if used as metadata of an Atom:source element. + The identifier for the feed if used as metadata of an Atom:source element. + + + Gets or sets the subtitle of a feed. + The subtitle of a feed. + + + Gets or sets the title of the feed. + The title of the feed. + + + Gets or sets the date and time of last update to the source. + The date and time of last update to the source. + + + Represents an Atom metadata description of a content generator. + + + Initializes a new instance of the class. + + + Gets or sets the human readable name of the generator of the content. + The human readable name of the generator of the content. + + + Gets or sets the (optional) URI describing the generator of the content. + The (optional) URI describing the generator of the content. + + + Gets or sets the (optional) version of the generator. + The (optional) version of the generator. + + + Represents an Atom metadata description for a link. + + + Initializes a new instance of the class. + + + Gets or sets the URI of the link. + The URI of the link. + + + Gets or sets the language tag (for example, en-US) of the resource pointed to by the link. + The language tag of the resource pointed to by the link. + + + Gets or sets a hint at the length of the content returned from the link. + A hint at the length of the content returned from the link. + + + Gets or sets the media type of the data returned by the link. + The media type of the data returned by the link. + + + Gets or sets the link's relation type. + The link’s relation type. + + + Gets or sets a human-readable description of the link. + A human-readable description of the link. + + + Represents an Atom metadata description for a person. + + + Creates a new instance of the class. + + + Gets or sets an email address associated with the person. + An email address associated with the person. + + + Gets or sets the name of the person (required). + The name of the person (required). + + + + Converts a string to an instance. + The instance created for name. + The name used in the person metadata. + + + Gets or sets an IRI associated with the person. + An IRI associated with the person. + + + Represents an Atom metadata description for a collection (in a workspace). + + + Creates a new instance of the class. + + + Gets or sets the accept range of media types for this collection. + The accept range of media types for this collection. + + + Gets or sets the categories for this collection. + The categories for this collection. + + + Gets or sets the title of the collection. + The title of the collection. + + + Represents an Atom metadata for stream reference values. + + + Creates a new instance of the class. + + + Gets or sets an Atom link metadata for the edit link. + An Atom link metadata for the edit link. + + + Gets or sets an Atom link metadata for the self link. + An Atom link metadata for the self link. + + + Represents an Atom metadata description for a text construct (plain text, html or xhtml). + + + Creates a new instance of the class. + + + Gets or sets the kind of the text construct (plain text, html, xhtml). + The kind of the text construct. + + + + Gets or sets the text content. + The text content. + + + Converts a string to an instance. + The instance created for text. + The to convert to an . + + + Specifies the different kinds of text content in Atom metadata. + + + The plain text. + + + The html text. + + + The xhtml text. + + + Represents an Atom metadata description for a workspace. + + + Creates a new instance of the class. + + + Gets or sets the title of the workspace. + The title of the workspace. + + + Represents the Atom-specific extension methods. + + + Determines an extension method to get the for an annotatable association link. + An instance or null if no annotation of that type exists. + The association link to get the annotation from. + + + Determines an extension method to get the for an annotatable entry. + An instance or null if no annotation of that type exists. + The entry instance to get the annotation from. + + + Determines an extension method to get the for an annotatable feed. + An instance or null if no annotation of that type exists. + The feed instance to get the annotation from. + + + Determines an extension method to get the for an annotatable navigation link. + An instance or null if no annotation of that type exists. + The navigation link instance to get the annotation from. + + + Determines an extension method to get the for an annotatable (resource) collection. + An instance or null if no annotation of that type exists. + The (resource) collection to get the annotation from. + + + Determines an extension method to get the for an annotatable workspace. + An instance or null if no annotation of that type exists. + The workspace to get the annotation from. + + + Represents an annotation to hold information for a particular property. + + + Creates a new instance of the class. + + + Defines the behavior for readers when reading property with null value. + + + Represents an enumerable of that new items can be added to. + + + Creates a new instance of the class. + + + Creates a new instance of the class. + An enumerable of used to initialize the instance. This argument must not be null. + + + Adds the mapping to the list of all mappings represented by this class. + The to add to the enumerable represented by this class. + + + Returns an enumerator for the instances in this enumerable. + An enumerator for the instances in this enumerable. + + + Returns a non-generic enumerator for the instances in this enumerable. + A non-generic enumerator for the instances in this enumerable. + + + Behavior of readers when reading property with null value. + + + The default behavior - this means validate the null value against the declared type and then report the null value. + + + This means to not report the value and not validate it against the model. + + + This means to report the value, but not validate it against the model. + + + Class to represent a null value with or without type information for URI paremeters. + + + Initializes a new instance of the class. + + + String representation of the type of this null value. 'null' indicates that no type information was provided. + + + URI Utility methods. + + + Converts the given value to a corresponding CLR type. Expects the value to have already been properly unescaped from an actual Uri. + A CLR object that the value represents. + Value from a Uri to be converted. + Version to be compliant with. + + + Converts the given value to a corresponding CLR type. Expects the value to have already been properly unescaped from an actual Uri. + A CLR object that the value represents. + Value from a Uri to be converted. + Version to be compliant with. + Optional model to perform verification against. + Optional IEdmTypeReference to perform verification against. Callers must provide a model containing this type if it is specified. + + + Converts the given object to a string for use in a Uri. Does not perform any of the escaping that provides. No type verification is used. + A string representation of value for use in a Url. + Value to be converted. + Version to be compliant with. + + + Converts the given object to a string for use in a Uri. Does not perform any of the escaping that provides. Will perform type verification based on the given model if possible. + A string representation of value for use in a Url. + Value to be converted. + Version to be compliant with. + Optional model to perform verification against. + + + Attribute that specifies a custom mapping between properties of an entity type and elements of an entry in an Open Data Protocol (OData) feed returned by the data service.  + + + Creates a new instance of the . + The name of the property, as string, of the entity type that is mapped to the specified property of the feed item. + A value that represents the element in the feed to which to map the property. This value must be set to None if the is not null. + A value that identifies the format of the content to display in the feed. + Boolean value that is true when the property being mapped must appear both in its mapped-to location and in the content section of the feed. + + + Creates an instance of the to map a property to a custom feed element. + The name of the property of the entity type, as string, that is mapped to the specified property in the feed. + The name of the target, as string, in the resulting feed to which the property is mapped. + This parameter, together with , specifies the namespace in which the element exists. + Specifies the namespace URI of the element, as string, specified by the property. + Boolean value that is true when the property being mapped must appear both in its mapped-to location and in the content section of the feed. + + + Gets a Boolean value that indicates whether a property value should be repeated both in the content section of the feed and in the mapped location. + A value that is true when the property is mapped into both locations in the feed; otherwise, false. + + + Gets the name of the property of the syndication item that will be mapped to the specified element of the feed. + String value that contains property name. + + + Gets a string value that, together with , specifies the namespace in which the element exists. + String value that contains the target namespace prefix. + + + Gets a string value that specifies the namespace URI of the element specified by the property. + String that contains the namespace URI. + + + Gets the name of the custom target in the feed to which the property is mapped. + String value with target XML element or attribute. + + + Gets the syndication item in the entry targeted by the mapping. + A value that is the target of the mapping. + + + Gets the type of content of the property mapped by . + A string that identifies the type of content in the feed element. + + + Enumeration type that is used to identify the syndication item element or attribute in the Open Data Protocol (OData) feed to which an entity property is mapped. + + + A custom property element. + + + The atom:email child element of the atom:author element. + + + The atom:name child element of the atom:author element. + + + The atom:uri child element of the atom:author element. + + + The atom:email child element of the atom:contributor element. + + + The atom:name child element of the atom:contributor element. + + + The atom:uri child element of the atom:contributor element. + + + The atom:updated element. + + + The atom:published element. + + + The atom:rights element. + + + The atom:summary element. + + + The atom:title element. + + + The label attribute of the atom:category element. + + + The scheme attribute of the atom:category element. + + + The term attribute of the atom:category element. + + + The href attribute of the atom:link element. + + + The hreflang attribute of the atom:link element. + + + The length attribute of the atom:link element. + + + The rel attribute of the atom:link element. + + + The title attribute of the atom:link element. + + + The type attribute of the atom:link element. + + + Enumeration used to identify text content of syndication item. + + + Plain text content. + + + HTML content. + + + XHTML content. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/RUS/Microsoft.Data.OData.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/RUS/Microsoft.Data.OData.resources.dll new file mode 100644 index 0000000..cfb2fd6 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/net40/RUS/Microsoft.Data.OData.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/CHS/Microsoft.Data.OData.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/CHS/Microsoft.Data.OData.SL.resources.dll new file mode 100644 index 0000000..080d2d2 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/CHS/Microsoft.Data.OData.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/CHT/Microsoft.Data.OData.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/CHT/Microsoft.Data.OData.SL.resources.dll new file mode 100644 index 0000000..fe28afd Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/CHT/Microsoft.Data.OData.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/DEU/Microsoft.Data.OData.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/DEU/Microsoft.Data.OData.SL.resources.dll new file mode 100644 index 0000000..4b3ece8 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/DEU/Microsoft.Data.OData.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/ESN/Microsoft.Data.OData.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/ESN/Microsoft.Data.OData.SL.resources.dll new file mode 100644 index 0000000..e852423 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/ESN/Microsoft.Data.OData.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/FRA/Microsoft.Data.OData.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/FRA/Microsoft.Data.OData.SL.resources.dll new file mode 100644 index 0000000..3d06ba2 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/FRA/Microsoft.Data.OData.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/ITA/Microsoft.Data.OData.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/ITA/Microsoft.Data.OData.SL.resources.dll new file mode 100644 index 0000000..43aab82 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/ITA/Microsoft.Data.OData.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/JPN/Microsoft.Data.OData.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/JPN/Microsoft.Data.OData.SL.resources.dll new file mode 100644 index 0000000..4a3bec3 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/JPN/Microsoft.Data.OData.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/KOR/Microsoft.Data.OData.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/KOR/Microsoft.Data.OData.SL.resources.dll new file mode 100644 index 0000000..ff39a18 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/KOR/Microsoft.Data.OData.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/Microsoft.Data.OData.SL.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/Microsoft.Data.OData.SL.dll new file mode 100644 index 0000000..f5feda5 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/Microsoft.Data.OData.SL.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/Microsoft.Data.OData.SL.xml b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/Microsoft.Data.OData.SL.xml new file mode 100644 index 0000000..53df6a6 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/Microsoft.Data.OData.SL.xml @@ -0,0 +1,2152 @@ + + + + Microsoft.Data.OData + + + + Represents an interface for synchronous OData request messages. + + + Returns a value of an HTTP header. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Gets or sets the HTTP method used for this request message. + The HTTP method used for this request message. + + + Sets the value of an HTTP header. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the request URL for this request message. + The request URL for this request message. + + + Represents an interface for asynchronous OData request messages. + + + Asynchronously get the stream backing for this message. + The stream for this message. + + + Represents an interface for synchronous OData response messages. + + + Returns a value of an HTTP header. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Sets the value of an HTTP header. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the result status code of the response message. + The result status code of the response message. + + + Represents an interface for asynchronous OData response messages. + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + Supports custom resolution of URLs found in the payload. + + + Implements a custom URL resolution scheme. This method returns null if no custom resolution is desired. If the method returns a non-null URL that value will be used without further validation. + An instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + Represents an OData action. + + + Creates a new instance of the class. + + + Represents the base class for all annotatable types in OData library. + + + Creates a new instance of the class. + + + Gets or sets the annotation by type. + The annotation of type T or null if not present. + The type of the annotation. + + + Sets an annotation of type T. + The annotation to set. + The type of the annotation. + + + Represents an association link. + + + Creates a new instance of the class. + + + Gets or sets the name of the association link. + The name of the associate link. + + + Gets or sets the URI representing the Unified Resource Locator (URL) of the link. + The URI representing the Unified Resource Locator (URL) of the link. + + + Displays a message representing an operation in a batch request. + + + Returns a value of an HTTP header of this operation. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Gets the HTTP method used for this request message. + The HTTP method used for this request message. + + + Implements a custom URL resolution scheme. + An instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + Sets the value of an HTTP header of this operation. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the request URL for this request message. + The request URL for this request message. + + + Displays a message representing an operation in a batch response. + + + Returns a value of an HTTP header of this operation. + The value of the HTTP header, or null if no such header was present on the message. + The name of the header to get. + + + Gets the stream backing for this message. + The stream backing for this message. + + + Asynchronously get the stream backing for this message. + The stream backing for this message. + + + Gets an enumerable over all the headers for this message. + An enumerable over all the headers for this message. + + + Method to implement a custom URL resolution scheme. This method returns null if not custom resolution is desired. If the method returns a non-null URL that value will be used without further validation. + A instance that reflects the custom resolution of the method arguments into a URL or null if no custom resolution is desired; in that case the default resolution is used. + The (optional) base URI to use for the resolution. + The URI read from the payload. + + + Sets the value of an HTTP header of this operation. + The name of the header to set. + The value of the HTTP header or 'null' if the header should be removed. + + + Gets or sets the result status code of the response message. + The result status code of the response message. + + + Represents a class for reading OData batch messages; also verifies the proper sequence of read calls on the reader. + + + Returns an for reading the content of a batch operation. + A request message for reading the content of a batch operation. + + + Asynchronously returns an for reading the content of a batch operation. + A task that when completed returns a request message for reading the content of a batch operation. + + + Returns an for reading the content of a batch operation. + A response message for reading the content of a batch operation. + + + Asynchronously returns an for reading the content of a batch operation. + A task that when completed returns a response message for reading the content of a batch operation. + + + Reads the next part from the batch message payload. + true if more items were read; otherwise false. + + + Asynchronously reads the next part from the batch message payload. + A task that when completed indicates whether more items were read. + + + The current state of the batch reader. + + + Enumeration with all the states the batch reader can be in. + + + The state the batch reader is in after having been created. + + + The batch reader detected an operation. + + + The batch reader detected the start of a change set. + + + The batch reader completed reading a change set. + + + The batch reader completed reading the batch payload. + + + The batch reader encountered an error reading the batch payload. + + + Writes OData batch messages; also verifies the proper sequence of write calls on the writer. + + + Creates an for writing an operation of a batch request. + The message that can be used to write the request operation. + The Http method to be used for this request operation. + The Uri to be used for this request operation. + + + Creates a message for asynchronously writing an operation of a batch request. + The message that can be used to asynchronously write the request operation. + The HTTP method to be used for this request operation. + The URI to be used for this request operation. + + + Creates a message for writing an operation of a batch response. + The message that can be used to write the response operation. + + + Asynchronously creates an for writing an operation of a batch response. + A task that when completed returns the newly created operation response message. + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + Ends a batch; can only be called after WriteStartBatch has been called and if no other active changeset or operation exist. + + + Asynchronously ends a batch; can only be called after WriteStartBatch has been called and if no other active change set or operation exist. + A task instance that represents the asynchronous write operation. + + + Ends an active changeset; this can only be called after WriteStartChangeset and only once for each changeset. + + + Asynchronously ends an active change set; this can only be called after WriteStartChangeset and only once for each change set. + A task instance that represents the asynchronous write operation. + + + Starts a new batch; can be only called once and as first call. + + + Asynchronously starts a new batch; can be only called once and as first call. + A task instance that represents the asynchronous write operation. + + + Starts a new changeset; can only be called after WriteStartBatch and if no other active operation or changeset exists. + + + Asynchronously starts a new change set; can only be called after WriteStartBatch and if no other active operation or change set exists. + A task instance that represents the asynchronous write operation. + + + Represents the base class for OData collection readers. + + + Creates a new instance of the class. + + + Gets the most recent item that has been read. + The most recent item that has been read. + + + Reads the next item from the message payload. + True if more items were read; otherwise false. + + + Asynchronously reads the next item from the message payload. + A task that when completed indicates whether more items were read. + + + Gets or sets the current state of the reader. + The current state of the reader. + + + Enumerates all the possible states of . + + + The reader is at the start; nothing has been read yet. + + + The reader has started reading and is reading the start element of the collection wrapper. + + + The reader read an item from the collection. + + + The reader has finished reading and is reading the end element of the collection wrapper. + + + The reader has thrown an exception; nothing can be read from the reader anymore. + + + The reader has completed; nothing can be read anymore. + + + OData representation of a top-level collection. + + + Initializes a new instance of the class. + + + The name of the collection (ATOM only). + + + OData representation of a Collection. + + + Initializes a new instance of the class. + + + The items in the bag value. + + + The type of the collection value. + + + Represents the base class for OData collection writers. + + + Creates a new instance of the class. + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + Finishes writing a collection. + + + Asynchronously finish writing a collection. + A task instance that represents the asynchronous write operation. + + + Starts writing an entry. + The collection item to write. + + + Asynchronously start writing a collection item. + A task instance that represents the asynchronous write operation. + The collection item to write. + + + Start writing a collection. + The representing the collection. + + + Asynchronously start writing a collection. + A task instance that represents the asynchronous write operation. + The representing the collection. + + + Represents the OData complex value. + + + Creates a new instance of the class. + + + Gets or sets the properties and values of the complex value. + The properties and values of the complex value. + + + Gets or sets the type of the complex value. + The type of the complex value. + + + Constant values used by the OData or HTTP protocol or OData library. + + + Name of the HTTP content-ID header. + + + Name of the HTTP content type header. + + + Name of the OData 'DataServiceVersion' HTTP header. + + + HTTP method name for DELETE requests. + + + HTTP method name for GET requests. + + + Custom HTTP method name for MERGE requests. + + + HTTP method name for PATCH requests. + + + HTTP method name for POST requests. + + + HTTP method name for PUT requests. + + + Exception type representing exception when Content-Type of a message is not supported. + + + Creates a new instance of the class. + + + Creates a new instance of the class from the specified SerializationInfo and StreamingContext instances. + A SerializationInfo containing the information required to serialize the new ODataException. + A StreamingContext containing the source of the serialized stream associated with the new ODataException. + + + Creates a new instance of the class. + Plain text error message for this exception. + + + Creates a new instance of the class. + Plain text error message for this exception. + Exception that caused this exception to be thrown. + + + Represents an OData entity reference link. + + + Creates a new instance of the class. + + + Gets or sets the URI representing the URL of the referenced entity. + The URI representing the URL of the referenced entity. + + + Represents a collection of entity reference links. + + + Creates a new instance of the class. + + + Represents the optional inline count of the $links collection. + + + Gets or sets the enumerable of instances representing the links of the referenced entities. + The enumerable of instances. + + + Represents the optional next link of the $links collection. + + + Represents a single entity. + + + Creates a new instance of the class. + + + Gets or sets the entity actions. + The entity actions. + + + Gets or sets the association links. + The association links. + + + Gets or sets the link used to edit the entry. + The link used to edit the entry. + + + Gets or sets the entry ETag. + The entry ETag. + + + Gets or sets the entity functions. + The entity functions. + + + Gets or sets the Entry identifier. + The Entry identifier. + + + Gets or sets the default media resource of the media link entry. + The default media resource of the media link entry. + + + Gets or sets the entry properties. + The entry properties. + + + Gets or sets a link that can be used to read the entry. + The link that can be used to read the entry. + + + Gets or sets the type name of the entry. + The type name of the entry. + + + Represents an error payload. + + + Creates a new instance of the class. + + + Gets or sets the error code to be used in payloads. + The error code to be used in payloads. + + + Gets or sets the implementation specific debugging information to help determine the cause of the error. + The implementation specific debugging information. + + + Gets or sets the error message. + The error message. + + + Gets or sets the language for the exception Message. + The language for the exception Message. + + + Represents an in-stream error parsed when reading a payload. + + + Creates a new instance of the class with default values. + + + Creates a new instance of the class with an object. + The instance representing the error read from the payload. + + + Creates a new instance of the class with an error message. + The plain text error message for this exception. + + + Creates a new instance of the class with an error message and an object. + The plain text error message for this exception. + The instance representing the error read from the payload. + + + Creates a new instance of the class with an error message and an inner exception. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + + + Creates a new instance of the class with an error message, an inner exception, and an object. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + The instance representing the error read from the payload. + + + Gets or sets the instance representing the error read from the payload. + The instance representing the error read from the payload. + + + Represents an exception in the OData library. + + + Creates a new instance of the class with default values. + + + Creates a new instance of the class from the specified and instances. + A containing the information required to serialize the new . + A containing the source of the serialized stream associated with the new . + + + Creates a new instance of the class with an error message. + The plain text error message for this exception. + + + Creates a new instance of the class with an error message and an inner exception. + The plain text error message for this exception. + The inner exception that is the cause of this exception to be thrown. + + + Describes a collection of entities. + + + Creates a new instance of the class. + + + Gets or sets the number of items in the feed. + The number of items in the feed. + + + Gets or sets the URI that identifies the entity set represented by the feed. + The URI that identifies the entity set represented by the feed. + + + Gets or sets the URI representing the next page link. + The URI representing the next page link. + + + Enumerates the format type in connection to processing OData payloads. + + + Initializes a new instance of the class. + + + ATOM format; we also use this for all Xml based formats (if ATOM can't be used). + + + The batch format instance. + + + JSON format + + + The metadata format instance. + + + RAW format; used for raw values. + + + Represents an OData function. + + + Creates a new instance of the class. + + + Contains properties used to implement specific debugging information to help determine the cause of the error. + + + Initializes a new instance of the class with default values. + + + Initializes a new instance of the class with exception object. + The used to create the inner error. + + + Gets or sets the nested implementation specific debugging information. + The nested implementation specific debugging information. + + + Gets or sets the error message. + The error message. + + + Gets or sets the stack trace for this error. + The stack trace for this error. + + + Gets or sets the type name of this error, for example, the type name of an exception. + The type name of this error. + + + Represents the base class for and classes. + + + Initializes a new instance of the class. + + + Quotas to use for limiting resource consumption when reading or writing OData messages. + + + Constructor to create default message quotas for OData readers and writers. + + + Copy constructor. + The instance to copy. + + + The maximum number of entity mapping attributes to be found for an entity type (on the type itself and all its base types). + + + The maximum depth of nesting allowed when reading or writing recursive payloads. + + + The maximum number of operations allowed in a single changeset. + + + The maximum number of top level query operations and changesets allowed in a single batch. + + + The maximum number of bytes that should be read from the message. + + + Represents the reader class used to read all OData payloads (entries, feeds, metadata documents, service documents, and so on). + + + Creates a new for the given request message. + The request message for which to create the reader. + + + Creates a new for the given request message and message reader settings. + The request message for which to create the reader. + The message reader settings to use for reading the message payload. + + + Creates a new for the given request message and message reader settings. + The request message for which to create the reader. + The message reader settings to use for reading the message payload. + The metadata provider to use. + + + Creates a new for the given response message. + The response message for which to create the reader. + + + Creates a new for the given response message and message reader settings. + The response message for which to create the reader. + The message reader settings to use for reading the message payload. + + + Creates a new for the given response message and message reader settings. + The response message for which to create the reader. + The message reader settings to use for reading the message payload. + The metadata provider to use. + + + Creates an to read a batch of requests or responses. + The created batch reader. + + + Asynchronously creates an to read a batch of requests or responses. + A running task for the created batch reader. + + + Creates an to read a collection of primitive or complex values (as result of a service operation invocation). + The created collection reader. + + + Creates an to read a collection of primitive or complex values (as result of a service operation invocation). + The created collection reader. + The expected resource type for the items in the collection. + + + Asynchronously creates an to read a collection of primitive or complex values (as result of a service operation invocation). + A running task for the created collection reader. + + + + Creates an to read an entry. + The created reader. + + + Creates an to read an entry. + The created reader. + The expected entity type for the entry to be read. + + + Asynchronously creates an to read an entry. + A running task for the created reader. + + + + Creates an to read a feed. + The created reader. + + + Creates an to read a feed. + The created reader. + The expected base resource type for the entities in the feed. + + + Asynchronously creates an to read a feed. + A running task for the created reader. + + + + + + Determines the potential payload kinds and formats of the payload being read and returns it. + The set of potential payload kinds and formats for the payload being read by this reader. + + + Determines the potential payload kinds and formats of the payload being read and returns it. + The set of potential payload kinds and formats for the payload being read by this reader. + + + + implementation to cleanup unmanaged resources of the reader. + + + Reads a singleton result of a $links query (entity reference link) as the message payload. + The entity reference link read from the message payload. + + + Asynchronously reads a singleton result of a $links query (entity reference link) as the message payload. + A running task representing the reading of the entity reference link. + + + Reads the result of a $links query (entity reference links) as the message payload. + The entity reference links read as message payload. + + + Asynchronously reads the result of a $links query as the message payload. + A task representing the asynchronous reading of the entity reference links. + + + Reads an as the message payload. + The read from the message payload. + + + Asynchronously reads an as the message payload. + A task representing the asynchronous operation of reading the error. + + + Reads the message body as metadata document. + Returns . + + + Reads an as message payload. + The property read from the payload. + + + Reads an as message payload. + The property read from the payload. + The expected resource type of the property to read. + + + Asynchronously reads an as message payload. + A task representing the asynchronous operation of reading the property. + + + + Reads a service document payload. + The service document read. + + + Asynchronously reads a service document payload. + A task representing the asynchronous operation of reading the service document. + + + Reads a single value as the message body. + The read value. + The expected resource type for the value to be read; null if no expected type is available. + + + + Represents the configuration settings for OData message readers. + + + Initializes a new instance of the class with default values. + + + + Gets or sets the document base URI (used as base for all relative URIs). If this is set, it must be an absolute URI. + The base URI. + + + Gets or sets a value that indicates whether the reader checks for valid XML characters. + true if the reader checks for valid XML characters; otherwise, false. + + + Gets or sets a value that indicates whether the message stream will not be disposed after finishing writing with the message. + true if the message stream will not be disposed after finishing writing with the message; otherwise false. The default value is false. + + + Gets or sets a value that indicates whether not to convert all primitive values to the type specified in the payload. + true if primitive values and report values are not converted; false if all primitive values are converted to the type specified in the payload. The default value is false. + + + + + + + + The maximum OData protocol version the reader should accept and understand. + + + Quotas to use for limiting resource consumption when reading an OData message. + + + The behavior the reader should use when it finds undeclared property. + + + Represents the writer class used to write all OData payloads (entries, feeds, metadata documents, service documents, and so on.). + + + Creates a new for the given request message. + The request message for which to create the writer. + + + Creates a new for the given request message and message writer settings. + The request message for which to create the writer. + The message writer settings to use for writing the message payload. + + + Creates a new for the given request message and message writer settings. + The request message for which to create the writer. + The message writer settings to use for writing the message payload. + The metadata provider to use. + + + Creates a new for the given response message. + The response message for which to create the writer. + + + Creates a new for the given response message and message writer settings. + The response message for which to create the writer. + The message writer settings to use for writing the message payload. + + + Creates a new for the given response message and message writer settings. + The response message for which to create the writer. + The message writer settings to use for writing the message payload. + The metadata provider to use. + + + Creates an to write a batch of requests or responses. + The created batch writer. + + + Asynchronously creates an to write a batch of requests or responses. + A running task for the created batch writer. + + + Creates an to write a collection of primitive or complex values (as result of a service operation invocation). + The created collection writer. + + + Asynchronously creates an to write a collection of primitive or complex values (as result of a service operation invocation). + A running task for the created collection writer. + + + Creates an to write an entry. + The created writer. + + + Asynchronously creates an to write an entry. + A running task for the created writer. + + + Creates an to write a feed. + The created writer. + + + Asynchronously creates an to write a feed. + A running task for the created writer. + + + Creates an to write a parameter payload. + The created parameter writer. + The function import whose parameters will be written. + + + Asynchronously creates an to write a parameter payload. + The created parameter writer. + The function import whose parameters will be written. + + + + implementation to cleanup unmanaged resources of the writer. + + + Writes a singleton result of a $links query as the message payload. + The entity reference link to write as the message payload. + + + Asynchronously writes a singleton result of a $links query as the message payload. + A running task representing the writing of the link. + The link result to write as the message payload. + + + Writes the result of a $links query as the message payload. + The entity reference links to write as message payload. + + + Asynchronously writes the result of a $links query as the message payload. + A task representing the asynchronous writing of the entity reference links. + The entity reference links to write as message payload. + + + Writes an as the message payload. + The error to write. + A flag indicating whether debug information (for example, the inner error from the ) should be included in the payload. This should only be used in debug scenarios. + + + Asynchronously writes an as the message payload. + A task representing the asynchronous operation of writing the error. + The error to write. + A flag indicating whether debug information (for example, the inner error from the ) should be included in the payload. This should only be used in debug scenarios. + + + Writes the metadata document as the message body. + + + Writes an as the message payload. + The property to write. + + + Asynchronously writes an as the message payload. + A task representing the asynchronous operation of writing the property. + The property to write + + + Writes a service document with the specified as the message payload. + The default workspace to write in the service document. + + + Asynchronously writes a service document with the specified as the message payload. + A task representing the asynchronous operation of writing the service document. + The default workspace to write in the service document. + + + Writes a single value as the message body. + The value to write. + + + Asynchronously writes a single value as the message body. + A running task representing the writing of the value. + The value to write. + + + Represents the configuration settings for OData message writers. + + + Initializes a new instance of the class with default settings. + + + + Gets or sets the document base URI which is used as base for all relative URIs. + The document base URI which is used as base for all relative URIs. + + + Gets or sets a value that indicates whether the reader checks for valid XML characters. + true if the reader checks for valid XML characters; otherwise, false. + + + Gets or sets a value that indicates whether the message stream will not be disposed after finishing writing with the message. + true if the message stream will not be disposed after finishing writing with the message; otherwise false. The default value is false. + + + + + + Gets or sets a value to indicate whether the writer uses indentation. + true if the writer uses indentation; otherwise, false. + + + Quotas to use for limiting resource consumption when writing an OData message. + + + Sets the format to be used when writing the payload. This will automatically set a compatible content type header. + The format to use for writing the payload. + + + Sets the acceptable media types and character sets from which the content type will be computed when writing the payload. + The acceptable media types used to determine the content type of the message. This is a comma separated list of content types as specified in RFC 2616, Section 14.1 + The acceptable charsets to use to determine the encoding of the message. This is a comma separated list of charsets as specified in RFC 2616, Section 14.2 + + + Gets or sets the OData protocol version to be used for writing payloads. + The OData protocol version to be used for writing payloads. + + + Represents a single link. + + + Initializes a new instance of the class. + + + Gets or sets a value that indicates whether the navigation link represents a collection or an entry. + true if the navigation link represents a collection; false if the navigation represents an entry. + + + Gets or sets the name of the link. + The name of the link. + + + Gets or sets the URI representing the Unified Resource Locator (URL) of the link. + The URI representing the Unified Resource Locator (URL) of the link. + + + Represents a function or an action. + + + Initializes a new instance of the class. + + + The URI that identifies the or the . + + + Gets or sets the URI to invoke the or the . + The URI to invoke the or the . + + + Gets or sets a human-readable description of the or the . + A human-readable description of the or the . + + + Base class for OData parameter readers. + + + Initializes a new instance of the class. + + + Creates an to read the collection value when the state is ODataParameterReaderState.Collection. + An to read the collection value when the state is ODataParameterReaderState.Collection. + + + Gets the name of the current parameter that is being read. + The name of the current parameter that is being read. + + + Reads the next parameter from the message payload. + true if more items were read; otherwise false. + + + Asynchronously reads the next item from the message payload. + A task that when completed indicates whether more items were read. + + + Gets the current state of the reader. + The current state of the reader. + + + Gets the value of the current parameter that is being read. + The value of the current parameter that is being read. + + + Enumeration of all possible states of an . + + + The reader is at the start; nothing has been read yet. + + + The reader read a primitive or a complex parameter. + + + The reader is reading a collection parameter. + + + The reader has thrown an exception; nothing can be read from the reader anymore. + + + The reader has completed; nothing can be read anymore. + + + Base class for OData collection writers. + + + Initializes a new instance of the class. + + + Creates an to write the value of a collection parameter. + The newly created . + The name of the collection parameter to write. + + + + Flushes the write buffer to the underlying stream. + + + Asynchronously flushes the write buffer to the underlying stream. + A task instance that represents the asynchronous operation. + + + Finish writing a parameter payload. + + + Asynchronously finish writing a parameter payload. + A task instance that represents the asynchronous write operation. + + + Start writing a parameter payload. + + + Asynchronously start writing a parameter payload. + A task instance that represents the asynchronous write operation. + + + Start writing a value parameter. + The name of the parameter to write. + The value of the parameter to write. + + + Asynchronously start writing a value parameter. + A task instance that represents the asynchronous write operation. + The name of the parameter to write. + The value of the parameter to write. + + + Enumerates the different kinds of payloads that ODatLib can write. + + + Specifies a payload kind for writing a feed. + + + Specifies a payload kind for writing an entry. + + + Specifies a payload kind for writing a property. + + + Specifies the payload kind for writing an entity reference link. + + + Specifies the payload kind for writing entity reference links. + + + Specifies a payload kind for writing a raw value. + + + Specifies the payload kind for writing a binary value. + + + Specifies a payload kind for writing a collection. + + + Specifies a payload kind for writing a service document. + + + Specifies a payload kind for writing a metadata document. + + + Specifies a payload kind for writing an error. + + + Specifies the payload kind for writing a batch. + + + Specifies a payload kind for writing a parameter. + + + Specifies an unknown format. + + + Represents the set of information available for payload kind detection. + + + The encoding derived from the content type or the default encoding. + The encoding derived from the content type or the default encoding. + + + The being used for reading the message. + + + The for the payload. + + + The possible payload kinds based on content type negotiation. + + + Represents the result of running payload kind detection for a specified payload kind and format. + + + The format for the detected payload kind. + + + The detected payload kind. + + + Represents a single property of an entry. + + + Initializes a new instance of the class. + + + Gets or sets the property name. + The property name. + + + Gets or sets the property value. + The property value. + + + Represents the base class for OData readers. + + + Initializes a new instance of the class. + + + Gets the most recent that has been read. + The most recent that has been read. + + + Reads the next from the message payload. + true if more items were read; otherwise false. + + + Asynchronously reads the next from the message payload. + A task that when completed indicates whether more items were read. + + + Gets the current state of the reader. + The current state of the reader. + + + Enumeration of all possible states of an . + + + The reader is at the start; nothing has been read yet. + + + The start of a feed has been read. + + + The end of a feed has been read. + + + The start of an entry has been read. + + + The end of an entry has been read. + + + The start of a navigation link has been read. + + + The end of a navigation link has been read. + + + An entity reference link was read. + + + The reader has thrown an exception; nothing can be read from the reader anymore. + + + The reader has completed; nothing can be read anymore. + + + Represents a class that contains collection of information about a resource in a workspace of a data service. + + + Initializes a new instance of the class. + + + Gets or sets the URI representing the Unified Resource Locator (URL) to the collection. + The URI representing the Unified Resource Locator (URL) to the collection. + + + Represents a media resource. + + + Initializes a new instance of the class. + + + Gets or sets the content media type. + The content media type. + + + Gets or sets the edit link for media resource. + The edit link for media resource. + + + Gets or sets the media resource ETag. + The media resource ETag. + + + Gets or sets the read link for media resource. + The read link for media resource. + + + Behavior of readers when reading undeclared property. + + + The default behavior - the reader will fail if it finds a property which is not declared by the model and the type is not open. + + + The reader will skip reading the property if it's not declared by the model. + + + The reader will read and report link properties which are not declared by the model. + + + Represents the utility methods used with the OData library. + + + Checks whether the annotatable has an HttpMethod annotation. + The (non-null) value of the HttpMethod annotation of the annotatable or null if no such annotation exists. + The containing the annotation. + The to check. + + + Checks whether the annotatable has a MIME type annotation. + The (non-null) value of the MIME type annotation of the annotatable or null if no MIME type annotation exists. + The containing the annotation. + The to check. + + + Returns the format used by the message reader for reading the payload. + The format used by the messageReader for reading the payload. + The to get the read format from. + + + Checks whether the entityType has a default stream. + true if the entity type has a default stream; otherwise false. + The containing the annotation. + The to check. + + + Gets the value of IsAlwaysBindable annotation on the functionImport. + The value of the annotation if it exists; false otherwise. + The containing the annotation. + The to get the annotation from. + functionImport + + + Checks whether the entityContainer is the default entity container. + true if the entityContainer is the default container; otherwise false. + The containing the annotation. + The to check. + + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + The containing the annotations. + The to process. + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + The containing the annotations. + The to process. + The maximum number of entity mapping attributes to be found for an entity type (on the type itself and all its base types). + + + Loads the supported, OData-specific serializable annotations into their in-memory representations. + The to process. + The maximum number of entity mapping attributes to be found for an entity type (on the type itself and all its base types). + + + Gets the reader behavior for null property value on the specified property. + The behavior to use when reading null value for this property. + The model containing the annotation. + The property to check. + + + + + + Turns the in-memory representations of the supported, OData-specific annotations into their serializable form. + The containing the annotations. + The to process. + + + Adds or removes a default stream to/from the entityType. + The containing the annotation. + The to modify. + true to add a default stream to the entity type; false to remove an existing default stream (if any). + + + Sets the content-type and data service version headers on the message used by the message writer. + The message writer to set the headers for. + The kind of payload to be written with the message writer. + + + Sets the HttpMethod annotation of the annotatable to httpMethod. + The contatining the annotation. + The to modify. + The HttpMethod value to set as annotation value; if null, an existing annotation will be removed. + + + Sets the value of IsAlwaysBindable annotation of the functionImport to isAlwaysBindable + The containing the annotation. + The to set the annotation on. + The value of the annotation to set. + functionImport + + + Adds or removes a default stream to/from the entityContainer. + The containing the annotation. + The to modify. + true to set the entityContainer as the default container; false to remove an existing default container annotation (if any). + + + Sets the MIME type annotation of the annotatable to mimeType. + The containing the annotation. + The to modify. + The MIME type value to set as annotation value; if null, an existing annotation will be removed. + + + Adds a transient annotation to indicate how null values for the specified property should be read. + The containing the annotations. + The to modify. + The new behavior for reading null values for this property. + + + + + Specifies the OData protocol version. + + + The version 1.0. + + + The version 2.0. + + + The version 3.0. + + + Represents the workspace of a data service. + + + Initializes a new instance of the class. + + + Gets or sets the set of collections in the workspace. + The set of collections in the workspace. + + + Represents a base class for OData writers. + + + Initializes a new instance of the class. + + + Flushes the write buffer to the underlying stream. + + + Flushes the write buffer to the underlying stream asynchronously. + A task instance that represents the asynchronous operation. + + + Finishes the writing of a feed, an entry, or a navigation link. + + + Asynchronously finish writing a feed, entry, or navigation link. + A task instance that represents the asynchronous write operation. + + + Writes an entity reference link, which is used to represent binding to an existing resource in a request payload. + The entity reference link to write. + + + Asynchronously writes an entity reference link, which is used to represent binding to an existing resource in a request payload. + A task instance that represents the asynchronous write operation. + The entity reference link to write. + + + Starts the writing of an entry. + The entry or item to write. + + + Starts the writing of a feed. + The feed or collection to write. + + + Starts the writing of a navigation link. + The navigation link to write. + + + Asynchronously start writing an entry. + A task instance that represents the asynchronous write operation. + The entry or item to write. + + + Asynchronously start writing a feed. + A task instance that represents the asynchronous write operation. + The feed or collection to write. + + + Asynchronously start writing a navigation link. + A task instance that represents the asynchronous write operation. + The navigation link to writer. + + + Represents an annotation which stores a list of projected properties for an entry. + + + Initializes a new instance of the class. + The enumeration of projected property names. + + + Annotation which stores the type name to serialize. + + + Initializes a new instance of the class. + + + Gets or sets the type name to serialize, for the annotated item. + The type name to serialize, for the annotated item. + + + Atom metadata description for a categories element (app:categories). + + + Initializes a new instance of the class. + + + Gets or sets the atom category elements inside this categories element. + The atom category elements inside this categories element. + + + Gets or sets a value that indicates whether the list of categories is fixed or an open set. + true if the list of categories is fixed; false if the list of categories is an open set. + + + Gets or sets the URI of the category document. + The URI of the category document. + + + Gets or sets the URI indicating the scheme of the categories without a scheme. + The URI indicating the scheme of the categories without a scheme. + + + Represents an Atom metadata description for a category. + + + Initializes a new instance of the class. + + + Gets or sets a human-readable label for display in user interfaces. + A human-readable label. + + + Gets or sets the URI that indicates the scheme of the category. + The URI that indicates the scheme of the category. + + + Gets or sets the string value identifying the category. + The string value identifying the category. + + + Represents a type for Atom Syndication Format (Atom) entry annotationsAsArray. + + + Initializes a new instance of the class. + + + Gets or sets a collection of authors of an entry. + A collection of authors of an entry. + + + Gets or sets the categories of an entry. + The categories of an entry. + + + The ATOM metadata for the category element which stores the type name of the entry. + + + Gets or sets a collection of contributors of an entry. + A collection of contributors of an entry. + + + Gets or sets an Atom link metadata for the edit link. + An Atom link metadata for the edit link. + + + Gets or sets the collection of all Atom link information except for the self/edit links and the navigation property links. + The collection of all Atom link information except for the self/edit links and the navigation property links. + + + Gets or sets the date and time when the entry was published. + The date and time when the entry was published. + + + Gets or sets the rights text of an entry. + The rights text of an entry. + + + Gets or sets an Atom link metadata for the self link. + An Atom link metadata for the self link. + + + Gets or sets the source of an entry and if the entry was copied from a different stream the property contains the feed metadata of the original feed. + The source of an entry. + + + Gets or sets the summary of the entry. + The summary of the entry. + + + Gets or sets the title of the entry. + The title of the entry. + + + Gets or sets the date and time of last update to the source. + The date and time of last update to the source. + + + Represents a type for Atom Syndication Format (Atom) feed annotationsAsArray. + + + Initializes a new instance of the class. + + + Gets or sets a collection of authors of a feed. + A collection of authors of a feed. + + + Gets or sets the categories of a feed. + The categories of a feed. + + + Gets or sets a collection of contributors of a feed. + A collection of contributors of a feed. + + + Gets or sets the generator of a feed. + The generator of a feed. + + + Gets or sets the URI of the icon for a feed. + The URI of the icon for a feed. + + + Gets or sets the collection of all Atom link information except for the next page and self links. + The collection of all Atom link information except for the next page and self links. + + + Gets or sets the URI for the feed's logo. + The URI for the feed?s logo. + + + The next page link of the feed. This link should point to the next page of results. + + + Gets or sets the rights text of a feed. + The rights text of a feed. + + + Gets or sets the self link of the feed. This link should point to the source of the feed. + The self link of the feed. + + + Gets or sets the identifier for the feed if used as metadata of an Atom:source element. + The identifier for the feed if used as metadata of an Atom:source element. + + + Gets or sets the subtitle of a feed. + The subtitle of a feed. + + + Gets or sets the title of the feed. + The title of the feed. + + + Gets or sets the date and time of last update to the source. + The date and time of last update to the source. + + + Represents an Atom metadata description of a content generator. + + + Initializes a new instance of the class. + + + Gets or sets the human readable name of the generator of the content. + The human readable name of the generator of the content. + + + Gets or sets the (optional) URI describing the generator of the content. + The (optional) URI describing the generator of the content. + + + Gets or sets the (optional) version of the generator. + The (optional) version of the generator. + + + Represents an Atom metadata description for a link. + + + Initializes a new instance of the class. + + + Gets or sets the URI of the link. + The URI of the link. + + + Gets or sets the language tag (for example, en-US) of the resource pointed to by the link. + The language tag of the resource pointed to by the link. + + + Gets or sets a hint at the length of the content returned from the link. + A hint at the length of the content returned from the link. + + + Gets or sets the media type of the data returned by the link. + The media type of the data returned by the link. + + + Gets or sets the link's relation type. + The link’s relation type. + + + Gets or sets a human-readable description of the link. + A human-readable description of the link. + + + Represents an Atom metadata description for a person. + + + Creates a new instance of the class. + + + Gets or sets an email address associated with the person. + An email address associated with the person. + + + Gets or sets the name of the person (required). + The name of the person (required). + + + + Converts a string to an instance. + The instance created for name. + The name used in the person metadata. + + + Gets or sets an IRI associated with the person. + An IRI associated with the person. + + + Represents an Atom metadata description for a collection (in a workspace). + + + Creates a new instance of the class. + + + Gets or sets the accept range of media types for this collection. + The accept range of media types for this collection. + + + Gets or sets the categories for this collection. + The categories for this collection. + + + Gets or sets the title of the collection. + The title of the collection. + + + Represents an Atom metadata for stream reference values. + + + Creates a new instance of the class. + + + Gets or sets an Atom link metadata for the edit link. + An Atom link metadata for the edit link. + + + Gets or sets an Atom link metadata for the self link. + An Atom link metadata for the self link. + + + Represents an Atom metadata description for a text construct (plain text, html or xhtml). + + + Creates a new instance of the class. + + + Gets or sets the kind of the text construct (plain text, html, xhtml). + The kind of the text construct. + + + + Gets or sets the text content. + The text content. + + + Converts a string to an instance. + The instance created for text. + The to convert to an . + + + Specifies the different kinds of text content in Atom metadata. + + + The plain text. + + + The html text. + + + The xhtml text. + + + Represents an Atom metadata description for a workspace. + + + Creates a new instance of the class. + + + Gets or sets the title of the workspace. + The title of the workspace. + + + Represents the Atom-specific extension methods. + + + Determines an extension method to get the for an annotatable association link. + An instance or null if no annotation of that type exists. + The association link to get the annotation from. + + + Determines an extension method to get the for an annotatable entry. + An instance or null if no annotation of that type exists. + The entry instance to get the annotation from. + + + Determines an extension method to get the for an annotatable feed. + An instance or null if no annotation of that type exists. + The feed instance to get the annotation from. + + + Determines an extension method to get the for an annotatable navigation link. + An instance or null if no annotation of that type exists. + The navigation link instance to get the annotation from. + + + Determines an extension method to get the for an annotatable (resource) collection. + An instance or null if no annotation of that type exists. + The (resource) collection to get the annotation from. + + + Determines an extension method to get the for an annotatable workspace. + An instance or null if no annotation of that type exists. + The workspace to get the annotation from. + + + Represents an annotation to hold information for a particular property. + + + Creates a new instance of the class. + + + Defines the behavior for readers when reading property with null value. + + + Represents an enumerable of that new items can be added to. + + + Creates a new instance of the class. + + + Creates a new instance of the class. + An enumerable of used to initialize the instance. This argument must not be null. + + + Adds the mapping to the list of all mappings represented by this class. + The to add to the enumerable represented by this class. + + + Returns an enumerator for the instances in this enumerable. + An enumerator for the instances in this enumerable. + + + Returns a non-generic enumerator for the instances in this enumerable. + A non-generic enumerator for the instances in this enumerable. + + + Behavior of readers when reading property with null value. + + + The default behavior - this means validate the null value against the declared type and then report the null value. + + + This means to not report the value and not validate it against the model. + + + This means to report the value, but not validate it against the model. + + + Class to represent a null value with or without type information for URI paremeters. + + + Initializes a new instance of the class. + + + String representation of the type of this null value. 'null' indicates that no type information was provided. + + + URI Utility methods. + + + Converts the given value to a corresponding CLR type. Expects the value to have already been properly unescaped from an actual Uri. + A CLR object that the value represents. + Value from a Uri to be converted. + Version to be compliant with. + + + Converts the given value to a corresponding CLR type. Expects the value to have already been properly unescaped from an actual Uri. + A CLR object that the value represents. + Value from a Uri to be converted. + Version to be compliant with. + Optional model to perform verification against. + Optional IEdmTypeReference to perform verification against. Callers must provide a model containing this type if it is specified. + + + Converts the given object to a string for use in a Uri. Does not perform any of the escaping that provides. No type verification is used. + A string representation of value for use in a Url. + Value to be converted. + Version to be compliant with. + + + Converts the given object to a string for use in a Uri. Does not perform any of the escaping that provides. Will perform type verification based on the given model if possible. + A string representation of value for use in a Url. + Value to be converted. + Version to be compliant with. + Optional model to perform verification against. + + + Attribute that specifies a custom mapping between properties of an entity type and elements of an entry in an Open Data Protocol (OData) feed returned by the data service.  + + + Creates a new instance of the . + The name of the property, as string, of the entity type that is mapped to the specified property of the feed item. + A value that represents the element in the feed to which to map the property. This value must be set to None if the is not null. + A value that identifies the format of the content to display in the feed. + Boolean value that is true when the property being mapped must appear both in its mapped-to location and in the content section of the feed. + + + Creates an instance of the to map a property to a custom feed element. + The name of the property of the entity type, as string, that is mapped to the specified property in the feed. + The name of the target, as string, in the resulting feed to which the property is mapped. + This parameter, together with , specifies the namespace in which the element exists. + Specifies the namespace URI of the element, as string, specified by the property. + Boolean value that is true when the property being mapped must appear both in its mapped-to location and in the content section of the feed. + + + Gets a Boolean value that indicates whether a property value should be repeated both in the content section of the feed and in the mapped location. + A value that is true when the property is mapped into both locations in the feed; otherwise, false. + + + Gets the name of the property of the syndication item that will be mapped to the specified element of the feed. + String value that contains property name. + + + Gets a string value that, together with , specifies the namespace in which the element exists. + String value that contains the target namespace prefix. + + + Gets a string value that specifies the namespace URI of the element specified by the property. + String that contains the namespace URI. + + + Gets the name of the custom target in the feed to which the property is mapped. + String value with target XML element or attribute. + + + Gets the syndication item in the entry targeted by the mapping. + A value that is the target of the mapping. + + + Gets the type of content of the property mapped by . + A string that identifies the type of content in the feed element. + + + Enumeration type that is used to identify the syndication item element or attribute in the Open Data Protocol (OData) feed to which an entity property is mapped. + + + A custom property element. + + + The atom:email child element of the atom:author element. + + + The atom:name child element of the atom:author element. + + + The atom:uri child element of the atom:author element. + + + The atom:email child element of the atom:contributor element. + + + The atom:name child element of the atom:contributor element. + + + The atom:uri child element of the atom:contributor element. + + + The atom:updated element. + + + The atom:published element. + + + The atom:rights element. + + + The atom:summary element. + + + The atom:title element. + + + The label attribute of the atom:category element. + + + The scheme attribute of the atom:category element. + + + The term attribute of the atom:category element. + + + The href attribute of the atom:link element. + + + The hreflang attribute of the atom:link element. + + + The length attribute of the atom:link element. + + + The rel attribute of the atom:link element. + + + The title attribute of the atom:link element. + + + The type attribute of the atom:link element. + + + Enumeration used to identify text content of syndication item. + + + Plain text content. + + + HTML content. + + + XHTML content. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/RUS/Microsoft.Data.OData.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/RUS/Microsoft.Data.OData.SL.resources.dll new file mode 100644 index 0000000..071f0e6 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.OData.5.0.0/lib/sl4/RUS/Microsoft.Data.OData.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/Microsoft.Data.Services.5.0.0.nupkg b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/Microsoft.Data.Services.5.0.0.nupkg new file mode 100644 index 0000000..82589b4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/Microsoft.Data.Services.5.0.0.nupkg differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/Microsoft.Data.Services.5.0.0.nuspec b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/Microsoft.Data.Services.5.0.0.nuspec new file mode 100644 index 0000000..1e89cc6 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/Microsoft.Data.Services.5.0.0.nuspec @@ -0,0 +1,22 @@ + + + + Microsoft.Data.Services + 5.0.0 + WCF Data Services Server + Microsoft Corporation + Microsoft Corporation + http://www.microsoft.com/download/en/details.aspx?id=29306 + http://go.microsoft.com/fwlink/?LinkId=220868 + http://static.tumblr.com/hgchgxz/9ualgdf98/icon.png + true + Fully-featured server API for responding to OData queries and consuming/producing OData payloads. Supports OData v3. Targets .NET 4.0 or Silverlight 4.0. Localized for CHS, CHT, DEU, ESN, FRA, ITA, JPN, KOR and RUS. + wcf data services odata odatalib edmlib spatial ado.net ef entity framework open protocol wcfds wcfdataservices dataservices + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/CHS/Microsoft.Data.Services.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/CHS/Microsoft.Data.Services.resources.dll new file mode 100644 index 0000000..23b016a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/CHS/Microsoft.Data.Services.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/CHT/Microsoft.Data.Services.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/CHT/Microsoft.Data.Services.resources.dll new file mode 100644 index 0000000..53409b0 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/CHT/Microsoft.Data.Services.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/DEU/Microsoft.Data.Services.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/DEU/Microsoft.Data.Services.resources.dll new file mode 100644 index 0000000..362db1d Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/DEU/Microsoft.Data.Services.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/ESN/Microsoft.Data.Services.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/ESN/Microsoft.Data.Services.resources.dll new file mode 100644 index 0000000..4f9ca1a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/ESN/Microsoft.Data.Services.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/FRA/Microsoft.Data.Services.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/FRA/Microsoft.Data.Services.resources.dll new file mode 100644 index 0000000..66ef782 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/FRA/Microsoft.Data.Services.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/ITA/Microsoft.Data.Services.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/ITA/Microsoft.Data.Services.resources.dll new file mode 100644 index 0000000..bc7553c Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/ITA/Microsoft.Data.Services.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/JPN/Microsoft.Data.Services.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/JPN/Microsoft.Data.Services.resources.dll new file mode 100644 index 0000000..7cd6013 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/JPN/Microsoft.Data.Services.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/KOR/Microsoft.Data.Services.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/KOR/Microsoft.Data.Services.resources.dll new file mode 100644 index 0000000..d11646f Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/KOR/Microsoft.Data.Services.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/Microsoft.Data.Services.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/Microsoft.Data.Services.dll new file mode 100644 index 0000000..a9add63 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/Microsoft.Data.Services.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/Microsoft.Data.Services.xml b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/Microsoft.Data.Services.xml new file mode 100644 index 0000000..fb94e7f --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/Microsoft.Data.Services.xml @@ -0,0 +1,2578 @@ + + + + Microsoft.Data.Services + + + + The on a method is used to process updates on the specified entity set name. + + + Creates a new change interceptor for an entity set specified by the parameter . + The name of the entity set that contains the entity to which the interceptor applies. + + + Gets the name of the entity set to which the interceptor applies. + The string value that represents entity set name. + + + The main entry point for developing an Open Data Protocol (OData) data service by using WCF Data Services. + Type that defines the data service. + + + Creates a new data service that deploys data of the type indicated by the template class. + + + Attaches the data service host to the data service identified by the parameter . + An instance of . + + + Creates a data source of the template class that will be used by the data service. + An instance of the data source. + + + Gets the data source instance currently being used to process the request. + The data source instance for the service. + + + Called when an exception is raised while processing a request. + Exception arguments. + + + Called before processing each request. For batch requests, it is called one time for the top batch request and one time for each operation in the batch. + + that contains information about the request. + + + Gets an object that defines the events for the data service processing pipeline. + A object that is used to define events for the data service processing pipeline. + + + Processes an HTTP request. + + + Processes an HTTP request. + Response message. + The body of the HTTP request. + + + Adds settings that define behavior to a custom data service. + + + Gets or sets whether the server will accept requests with filters that contain all or any expressions. + A Boolean value that is true when the server accepts all or any expressions; otherwise false. + + + Gets or sets whether requests with the $count path segment or the $inlinecount query options are accepted. + true if count requests are supported; otherwise false. + + + Gets or sets whether projection requests should be accepted. + true if projection requests are supported; otherwise false. + + + Gets or sets whether spatial literal values are supported in the URI. + A boolean value that is true when spatial literals are supported in the URI; otherwise false. + + + Get or sets whether relationship links are included in responses from the data service. + A value that is true when relationship links are returned; otherwise false. + + + Gets or sets whether to invoke change interceptors when a link is deleted. + A value that is true when interceptors should be invoked; otherwise false. + + + Gets or sets the maximum protocol version that is supported by the response sent by the data service. + A that is the maximum version allowed in the response. + + + Get or sets whether to use the order of key properties as defined in the metadata of an Entity Framework or reflection provider when constructing an implicit OrderBy query. + Returns that is true when the order of key properties is inferred from the provider metadata and false when an alphabetical order is used. + + + Manages the configuration of WCF Data Services. + + + Builds the annotation models to be applied to the data model of the provider. + Delegate the + + + Gets a object that defines additional behaviors of the data service. + A object. + + + Gets or sets whether the data model is validated before it is written as a response to a request to the $metadata endpoint. + Returns true when metadata validation is disabled; otherwise false. + + + Registers a data type with the data service runtime so that it can be used by a custom data service provider. + The namespace-qualified name of the type that is enabled for use with the custom data service provider. + + + Gets or sets whether the data service runtime should convert the type that is contained in the payload to the actual property type that is specified in the request. + A Boolean value that indicates whether to perform the conversion. + + + Gets or sets the maximum number of change sets and query operations that are allowed in a single batch. + A value that is the maximum number of change sets. + + + Gets or set the maximum number of changes that can be included in a single change set. + The maximum number of changes allowed. + + + Gets or sets the maximum number of related entities that can be included in a single request by using the $expand operator. + The maximum number of related entities. + + + Get or sets the maximum number of related entities that can be included in an $expand path in a single request. + The maximum depth of an $expand path. + + + Get or sets the maximum number of objects to insert that can be contained in a single POST request. + The maximum number of objects. + + + Get or sets the maximum number of items in each returned collection. + The maximum number of items. + + + Adds a type to the list of types that are recognized by the data service. + Type to add to the collection of known types. + + + Sets the permissions for the specified entity set resource. + Name of the entity set for which to set permissions. + Access rights to be granted to this resource, passed as an value. + + + Sets the maximum page size for an entity set resource. + Name of entity set resource for which to set the page size. + Page size for the entity set resource that is specified in . + + + Sets the permissions for the specified service action. + Name of the service action for which to set permissions. + Access rights to be granted to this action, passed as a value. + + + Sets the permissions for the specified service operation. + Name of the service operation for which to set permissions. + Access rights to be granted to this resource, passed as a value. + + + Gets or sets whether verbose errors should be returned by the data service. + Whether verbose errors are returned. + + + Represents an instance of the class with a specified message that describes the error. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class. + The HTTP status code returned by the exception. + The error message for the exception. + + + Initializes a new instance of the class. + The HTTP status code of the exception. + The string value that contains the error code. + The string value that contains the error message. + The string value that indicates the language of the error message. + The exception that is the cause of the current exception. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. + + + Gets the error code. + The integer value that represents the error code. + + + [SECURITY CRITICAL] Gets data on the object that caused the exception. + + . + + . + + + Gets the error message language. + The string value that represents the message language. + + + Gets the HTTP status code returned by the exception. + HTTP status code for the exception. + + + The WCF Data Services class derived from used to instantiate data services. + + + Instantiates for WCF Data Services. + Identifies the WCF Data Services to the host. + The URI of the host. + + + The class used by the infrastructure of WCF Data Services to connect to Windows Communication Foundation (WCF).  + + + Creates a new instance of DataServiceHostFactory. + + + Creates a new from the URI. + New . + Specifies the type of WCF service to host. + An array of base addresses for the service. + + + Represents the current operation being processed. + + + Get the request URI for the current operation. + The of the operation. + + + Gets the base service URI for the request. + The base of the operation. + + + + Gets a value that indicates whether the current operation is part of a batch request. + true when the operation is part of a batch request; otherwise false. + + + Gets the request headers for the current operation. + A object that contains the request headers. + + + Gets the HTTP request method for the operation + The HTTP request method. + + + Gets the response headers for the current operation. + A object that contains the response headers. + + + Gets or sets the status code of the response. + The status code of the operation response. + + + Defines the events for the data service processing pipeline. + + + Creates a new instance. + + + Occurs after the change set has been processed. + + + Occurs after the request has been processed. + + + Occurs before the change set is processed. + + + Occurs before the request is processed. + + + Event argument class for events. + + + Gets the context of the operation that raised the event. + A that is the operation context. + + + An enumeration used to define access rights to data that is deployed by WCF Data Services. + + + Denies all rights to access data. + + + Authorization to read single data items. + + + Authorization to read sets of data. + + + Authorization to create new data items in data sets. + + + Authorization to replace data. + + + Authorization to delete data items from data sets. + + + Authorization to merge data. + + + Authorization to read data. + + + Authorization to write data. + + + Authorization to create, read, update, and delete data. + + + This attribute on an entity type is used to specify the properties that determine changes in content. + + + Initializes a new instance of the class. + The string value containing properties used in eTag value. + + + Initializes a new instance of the class. + String value containing properties used in eTag value. + + + Gets the names of properties used in the . + String value containing property names. + + + The segment of a query that indicates whether data should be returned inline instead of as deferred content. + + + Initializes an object with the specified property name and a filtering expression, possibly null. + The name of the property to be expanded. + The filter option in the query to which the expand segment applies. + + + Gets the property to be expanded. + The property to expand. + + + The filter option in the query to which the expand segment applies. + An expression that specifies the filter on target data. + + + A Boolean value that indicates whether the expand statement is used with a filter expression. + True or false. + + + Gets the maximum number of results expected. + The integer value that indicates maximum number of results. + + + The name of the property to be expanded. + A string value containing the name of the property. + + + A Boolean value that indicates whether the path includes a filter option on target data. + True if any of the segments in the path has a filter; false otherwise. + The enumeration of segments to check for filters. + + + The segments of a query that can be expanded by the $expand clause that follows a query. + + + Creates a collection of expand segments for a query. + + + Initializes a new collection of expand segments that is empty and has the specified initial capacity. + The number of expand segments that the new collection can initially store. + + + Boolean value that indicates whether segments to be expanded include a filter clause. + Boolean value that indicates whether segments to be expanded include a filter clause. + + + Specifies details of an exception that has occurred and the details of the associated HTTP response. + + + Gets or sets the exception that will be processed and returned in the response. + The exception that will be processed and returned in the response. + + + Gets the response content type. + The string value that indicates the response format. + + + Gets the status code that will be sent back in the HTTP header section of the response when an error occurs on the data service. + An integer value of the HTTP response status code. + + + Gets a value indicating whether the response has been written. + Boolean value that indicates whether response has been written. + + + Gets or sets a Boolean value that indicates whether verbose errors will be returned. + The Boolean value that indicates whether verbose errors will be returned. + + + The is used by WCF Data Services to set up the behavior of the service, including rights on entity sets and service operations, limits on the allowed requests, registering types not discoverable by default, and the default verbosity on error handling. + + + + Gets the maximum number of requests that can be handled in a batch. + Integer value that indicates the maximum number of requests that can be handled in a batch. + + + Gets the maximum number of change sets that can be handled in a batch. + Integer value that indicates the maximum number of change sets that can be handled in a batch. + + + Gets or sets the maximum number of segments that can be expanded by the $expand query option for all requests to the data service. + The maximum number of segments to expand. + + + Gets or sets a maximum number of segments supported in a single $expand path for all requests to the data service. + Integer representing the maximum number of supported segments in $expand path. + + + Gets or sets the maximum number of objects that can be inserted in a single request. + The integer value that contains the maximum number of objects that can be inserted in a single request. + + + Gets the maximum number of results per collection. + The integer value that indicates the maximum number of results per collection. + + + Registers a resource type for use by the data service. + The resource type to register. + + + Sets the access rules for the specified entity set. + The name of the entity set for configured access. + The rights allowed for the entity set. + + + Sets the access rules for the specified service operation. + The name of the service operation on which to set access rights. + The rights allowed according to enumeration. + + + Gets or sets whether verbose errors are used by default for all responses from the data service. + A Boolean value that indicates whether verbose errors are returned. + + + Interface that specifies interactions between WCF Data Services and its hosting environment. + + + Gets an absolute URI that is the URI as sent by the client. + A string that is the absolute URI of the request. + + + Gets an absolute URI that is the root URI of the data service. + A string that is the absolute root URI of the data service. + + + Gets a data item identified by the identity key contained by the parameter of the method. + The data item requested by the query serialized as a string. + String value containing identity key of item requested. + + + Handles a data service exception using information in the parameter. + + that contains information on the exception object. + + + The transport protocol specified by the request accept header. + String that indicates the transport protocol required by the request. + + + Gets a string representing the value of the Accept-Charset HTTP header. + String representing the value of the Accept-Charset HTTP header. + + + Gets the transport protocol specified by the content type header. + String value that indicates content type. + + + Gets the request method of GET, PUT, POST, or DELETE. + String value that indicates request method. + + + Gets the value for the If-Match header on the current request. + String value for the If-Match header on the current request. + + + Gets the value for the If-None-Match header on the current request. + String value for the If-None-Match header on the current request. + + + Gets the value that identifies the highest version that the request client is able to process. + A string that contains the highest version that the request client is able to process, possibly null. + + + Gets the stream that contains the HTTP request body. + + object that contains the request body. + + + Gets the value that identifies the version of the request that the client submitted, possibly null. + A string that identifies the version of the request that the client submitted, possibly null. + + + Gets a string value that represents cache control information. + A string value that represents cache control information. + + + Gets the transport protocol of the response. + String value containing the content type. + + + Gets an eTag value that represents the state of data in response. + A string value that represents the eTag state value. + + + Gets or sets the service location. + String that contains the service location. + + + Gets or sets the response code that indicates results of query. + Integer value that contains the response code. + + + Gets the response stream to which the HTTP response body will be written. + + object to which the response body will be written. + + + Gets the version used by the host in the response. + A string value that contains the host version. + + + Defines extensions to needed for request and response headers in HTTP. + + + Request header for an HTTP request. + String value of header. + + + Response header for an HTTP response. + String value of header. + + + Declares the members required to support enumerators for results and associated segments on an WCF Data Services $expand query option.   + + + Gets the element with expanded properties. + The object in a property expanded by . + + + Gets the value for a named property of the result. + The value of the property. + The name of the property for which to get enumerable results. + + + This interface declares the methods required to support the $expand query option for an WCF Data Services. + + + Applies expansions to the specified parameter. + An object of the same type as the supplied object that includes the specified . + The object to expand. + A collection of paths to expand. + + + Controls the visibility of a property or properties by WCF Data Services. + + + Initializes a new instance of the class. + A string value that contains the property or properties to be attributed. + + + Initializes a new instance of the class. + A string value that contains the property or properties to be attributed. + + + Gets or sets the property name or names to controlled by the attribute. + + + Provides access to members that control handing of request messages. + + + Provides an entry point for the request. + The resulting message for the supplied request. + The object that contains the request. + + + An interface used to insert or update a resource by the HTTP POST method. + + + Adds the specified value to the collection. + Target object that defines the property. + The name of the collection property to which the resource should be added.. + The opaque object representing the resource to be added. + + + Cancels a change to the data. + + + Creates the resource of the specified type and that belongs to the specified container. + The object representing a resource of specified type and belonging to the specified container. + The name of the entity set to which the resource belongs. + The full namespace-qualified type name of the resource. + + + Deletes the specified resource. + The resource to be deleted. + + + Gets the resource of the specified type identified by a query and type name. + An opaque object representing a resource of the specified type, referenced by the specified query. + Language integrated query (LINQ) pointing to a particular resource. + The fully qualified type name of resource. + + + Gets the value of the specified property on the target object. + The value of the object. + An opaque object that represents a resource. + The name of the property whose value needs to be retrieved. + + + Removes the specified value from the collection. + The target object that defines the property. + The name of the property whose value needs to be updated. + The property value that needs to be removed. + + + Resets the resource identified by the parameter to its default value. + The resource with its value reset to the default value. + The resource to be updated. + + + Returns the instance of the resource represented by the specified resource object. + Returns the instance of the resource represented by the specified resource object. + The object representing the resource whose instance needs to be retrieved. + + + Saves all the changes that have been made by using the APIs. + + + Sets the value of the specified reference property on the target object. + The target object that defines the property. + The name of the property whose value needs to be updated. + The property value to be updated. + + + Sets the value of the property with the specified name on the target resource to the specified property value. + The target object that defines the property. + The name of the property whose value needs to be updated. + The property value for update. + + + Indicates the MIME type of HTTP request. + + + Initializes a new instance of the class. + The name of the attribute. + The MIME type of the attribute. + + + Gets the name of the attribute. + A string value that contains the name of the attribute. + + + Gets the MIME type of a request. + A string that contains the MIME type. + + + Represents arguments used by an HTTP request to the data service. + + + Gets a Boolean value that indicates whether the HTTP request to the data service is a batch operation. + The Boolean value that indicates whether the HTTP request to the data service is a batch operation. + + + Gets the context that contains information about the current operation being processed. + An object that contains information about the current operation. + + + Gets the URI of an HTTP request to be process. + A that contains the URI of the request to be processed. + + + The on a method annotates it as a query interceptor on the specified entity set. + + + Initializes a new instance of the class for the entity set specified by the parameter. + The name of the entity set that contains the entity to which the interceptor applies. + + + Gets the name of the entity set that contains the entity to which the interceptor applies. + A string that indicates the name of the entity set that contains the entity to which the interceptor applies. + + + Access rights for service actions. + + + Specifies no rights on this service action. + + + Specifies the right to execute the service action. + + + An enumeration used to define access rights to service operations deployed by WCF Data Services. + + + No authorization to access the service operation. + + + Authorization to read a single data item by using the service operation. + + + Authorization to read multiple data items by using the service operation. + + + Authorization to read single or multiple data items deployed by the service operation. + + + All rights assigned to the service operation.. + + + Overrides entity set rights that are explicitly defined in the data service with the service operation rights. + + + Attribute used on service operations to specify that they return a single instance of their return element. + + + Initializes a new instance of the class. + + + An enumeration used to specify the update operations that were performed on an entity. + + + No operations were performed on the resource. + + + The entity was added. + + + The entity was modified. + + + The entity was deleted. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + Type of the expanded element. + + + Creates an instance of the class. + + + Gets or sets the description for the . + The description of the . + + + Gets or sets the element with expanded properties. + The object in a property expanded by . + + + Returns the value of the expanded property. + The value of the property. + The name of the property. + + + Returns a property object of the expanded property. + The property value. + The index of the property. + + + + Gets or sets the element with expanded properties. + The object in a property expanded by . + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + This class is used internally by the system to implement support for queries with eager loading of related entities. + The type of the expanded element. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + The type of the property to expand. + + + Creates an instance of the class. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Get or sets the property to expand. + The property to expand. + + + Provides a wrapper over the result element with the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Gets the value of the named property for the result. + The value for the named property of the result. + Name of property for which to get the value. + + + Gets the value for the specified property by its index. + The value for the property. + Index of the property for which to get the value. + + + Gets a list of property names as text in a comma-separated format. + List of comma-separated names. + + + Gets the full name of the that represents the type of this result. + The full name of the type. + + + Provides a wrapper over the result element with the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Provides a wrapper over the result element with the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result element with the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result element and provides the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result element with the ability to project a subset of properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result elements and provides the ability to project a subset of the properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result elements with the ability to project a subset of the properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result elements with the ability to project a subset of the properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result elements with the ability to project a subset of the properties. + + + Creates a new instance of the class. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Provides a wrapper over the result elements with the ability to project a subset of the properties. + + + Creates a new instance of the class. + + + Gets the value for the specified property by its index. + The value for the property. + Index of the property for which to get the value. + + + Gets or sets another instance of which contains the set of the next eight projected properties, and possibly another link. + The next set of properties. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + Gets or sets the property to project. + The property to project. + + + an instance of this class is assigned to the last in the list. + + + Creates a new instance of the class. + + + Use this class to represent a DataService type representing a collection property of primitive or complex types. + + + Resource type of a single item in the collection. + + + Performs late-bound operations on resource sets with a custom data service provider. + + + Compares two byte arrays for equality. + Returns a that is true when the arrays are equal; otherwise false. + First byte array. + Second byte array. + + + Compares two byte arrays for equality. + Returns a that is true when the arrays are not equal; otherwise false. + First byte array. + Second byte array. + + + Returns comparison information for Boolean parameters in an operation expression. + Value Condition -1 is less than . 0 x equals y. 1 is greater than . + The first parameter value. + The second parameter value. + + + Returns comparison information for GUID parameters in an operation expression. + Value Condition -1 is less than . 0 x equals y. 1 is greater than . + The first parameter value. + The second parameter value. + + + Returns comparison information for nullable Boolean parameters in an operation expression. + Value Condition -1 is less than . 0 x equals y. 1 is greater than . + The first parameter value. + The second parameter value. + + + Returns comparison information for nullable GUID parameters in an operation expression. + Value Condition -1 is less than . 0 x equals y. 1 is greater than . + The first parameter value. + The second parameter value. + + + Returns comparison information for string parameters in an operation expression. + Value Condition -1 is less than . 0 x equals y. 1 is greater than . + The first parameter value. + The second parameter value. + + + Casts a value to a specified type. + The cast to the requested . + The value to cast to the requested type. + Resource type for which to check. + + + Gets a named value from the specified object as a sequence. + An instance that contains the requested value as a sequence. + Object that contains the value. + + that is the property the value of which must be returned. + Type of the resulting sequence. + + + Gets a named value from the specified object. + An object that is the requested value. + Object that contains the value. + + that is the property the value of which must be returned. + + + + + + + Filters the supplied query based on the specified . + Returns an instance filtered by the supplied . + The instance to be filtered. + + used to filter the query. + Type of the instance supplied as the parameter. + Type representing the resource type supplied as the parameter. + + + Checks whether the given type is assignable from the resource type of a supplied object instance. + Returns a null value when the is not of the specified ; otherwise returns the supplied . + The object instance to check. + The against which to check for assignability. + Type of the . + + + Determines if the value is of a specified type. + A value that is true if the value is of the specified type; otherwise false. + The value to check. + + to compare with. + + + Use this class to represent a collection of entities. + + + Resource type of a single item in the collection. + The resource type. + + + This interface declares the methods required to support ServiceActions. + + + Determines whether a given serviceAction should be advertised as bindable to the given resourceInstance. + true if the service action should be advertised; false otherwise. + The data service operation context instance. + Service action to be advertised. + Instance of the resource to which the service action is bound. + true if the resource instance to be serialized is inside a feed; false otherwise. The value true suggests that this method might be called many times during serialization since it will get called once for every resource instance inside the feed. If it is an expensive operation to determine whether to advertise the service action for the resourceInstance, the provider may choose to always advertise in order to optimize for performance. + The to be serialized. The server constructs the version passed into this call, which may be replaced by an implementation of this interface. This should never be set to null unless returning false. + + + Builds up an instance of for the given serviceAction with the provided parameterTokens. + An instance of to invoke the action with. + The data service operation context instance. + The service action to invoke. + The parameter tokens required to invoke the service action. + + + Returns all service actions in the provider. + An enumeration of all service actions. + The data service operation context instance. + + + Gets a collection of actions having bindingParameterType as the binding parameter type. + A list of actions having bindingParameterType as the binding parameter type. + The data service operation context instance. + Instance of the binding parameter resource type () in question. + + + Tries to find the for the given serviceActionName. + true if the resolution is successful; false otherwise. + The data service operation context instance. + The name of the service action to resolve. + Returns the service action instance if the resolution is successful; null otherwise. + + + This interface declares the methods required to support invoking of an operation. + + + Gets the result of the call to Invoke. + The result of the call to Invoke. + + + Invokes the underlying operation. + + + Maintains metadata about a custom data service provider. + + + Container name for the data source. + String that contains the name of the container. + + + Namespace name for the data source. + String that contains the namespace name. + + + Attempts to return all types that derive from the specified resource type. + An collection of derived objects. + The base . + + + Gets the instance when given the source association end. + A instance. + Resource set of the source association end. + Resource type of the source association end. + Resource property of the source association end. + + + Determines whether a resource type has derived types. + true when represents an entity that has derived types; otherwise false. + A object to evaluate. + + + Gets all available containers. + An collection of objects. + + + Returns all the service operations in this data source. + An collection of objects. + + + Tries to get a resource set based on the specified name. + true when resource set with the given is found; otherwise false. + Name of the to resolve. + Returns the resource set or a null value if a resource set with the given is not found. + + + Tries to get a resource type based on the specified name. + true when resource type with the given is found; otherwise false. + Name of the type to resolve. + Returns the resource type or a null value if a resource type with the given is not found. + + + Tries to get a service operation based on the specified name. + true when service operation with the given is found; otherwise false. + Name of the service operation to resolve. + Returns the service operation or a null value if a service operation with the given is not found. + + + Returns all the types in this data source. + An collection of objects. + + + Provides paging support for the clients of a custom data service provider. + + + Returns the next-page token to put in the $skiptoken query option. + The next-page token as a collection of primitive types. + Enumerator for which the continuation token is being requested. + + + Gets the next-page token from the $skiptoken query option in the request URI. + Query for which the continuation token is being provided. + Resource type of the result on which the $skip token is to be applied. + Continuation token parsed into primitive type values. + + + Defines a metadata and query source implementation for a custom data service provider. + + + The data source object from which data is provided. + The data source. + + + Gets the value of the open property. + The value of the open property. + Instance of the type that declares the open property. + Name of the open property. + + + Gets the name and values of all the properties that are defined in the given instance of an open type. + A collection of name and values of all the open properties. + Instance of the type that declares the open property. + + + Gets the value of the open property. + Value for the property. + Instance of the type that declares the open property. + Value for the open property. + + + Gets the that represents the container. + An that represents the resource set, or a null value if there is no resource set for the specified . + The resource set. + + + Gets the resource type for the instance that is specified by the parameter. + The of the supplied object. + Instance to extract a resource type from. + + + Invokes the given service operation and returns the results. + The result of the service operation, or a null value for a service operation that returns void. + Service operation to invoke. + Values of parameters to pass to the service operation. + + + Gets a value that indicates whether null propagation is required in expression trees. + A value that indicates whether null propagation is required. + + + Enables binary data to be accessed and changed as a media resource that belongs to an entity that is a media link entry. + + + Deletes the associated media resource when a media link entry is deleted. + The media link entry that is deleted. + The instance that processes the request. + When or are null. + When is not an entity that has a binary property to stream. + When the stream associated with the cannot be deleted. + + + Returns a stream that contains the media resource data for the specified entity, which is a media link entry. + The data that contains the binary property data of the . + The entity that is a media link entry with a related media resource. + The eTag value sent as part of the HTTP request that is sent to the data service. + A nullable value that determines what kind of conditional request was issued to the data service, which is true when the eTag was sent in an If-Match header, false when the eTag was sent in an If-None-Match header, and null when the request was not conditional and no eTag was included in the request. + The instance used by the data service to process the request. + + + Returns the URI that is used to request the media resource that belongs to the specified entity. + A value that is used to request the binary data stream. + The entity that is a media link entry with a related media resource. + The instance used by the data service to process the request. + + + Returns the content-type of the media resource that belongs to the specified entity. + A valid MIME Content-Type value for the binary data. + The entity that is a media link entry with a related media resource. + The instance used by the data service to process the request. + + + Returns the eTag of the media resource that belongs to the specified media link entry. + eTag of the media resource associated with the . + The entity that is a media link entry with a related media resource. + The instance used by the data service to process the request. + + + Returns the stream that the data service uses to write the binary data for the media resource received from the client that belongs to the specified entity. + A valid the data service uses to write the contents of a binary data received from the client. + The entity that is a media link entry with a related media resource. + The eTag value that is sent as part of the HTTP request that is sent to the data service. + A nullable value that determines what kind of conditional request was issued to the data service, which is true when the eTag was sent in an If-Match header, false when the eTag was sent in an If-None-Match header, and null when the request was not conditional and no eTag was included in the request. + The instance that is used by the data service to process the request. + + + Returns a namespace-qualified type name that represents the type that the data service runtime must create for the media link entry that is associated with the data stream for the media resource that is being inserted. + A namespace-qualified type name. + Fully-qualified entity set name. + The instance that is used by the data service to process the request. + + + Gets the size of the stream buffer. + Integer that represents the size of buffer. + + + Enables binary data to be accessed and changed as a named stream that belongs to an entity type. + + + Returns a stream that contains the binary data for the named stream. + The entity to which the named stream belongs. + A object that represents the named stream. + The eTag value sent as part of the HTTP request that is sent to the data service. + A nullable value that determines what kind of conditional request was issued to the data service, which is true when the eTag was sent in an If-Match header, false when the eTag was sent in an If-None-Match header, and null when the request was not conditional and no eTag was included in the request. + The instance used by the data service to process the request. + + + Returns the URI that is used to request a specific named stream. + A value that is used to request the named binary data stream. + The entity with the named stream being requested. + A object that represents the named stream. + The instance used by the data service to process the request. + + + Returns the content-type of the specified named stream. + A valid MIME Content-Type value for the binary data. + The entity to which the named stream belongs. + A object that represents the named stream. + The instance used by the data service to process the request. + + + Returns the eTag of the specified named stream. + eTag value of the specified named stream. + The entity to which the named stream belongs. + A object that represents the named stream. + The instance used by the data service to process the request. + + + Returns the stream that the data service uses to write the binary data received from the client as the specified named stream. + A valid the data service uses to write the contents of a binary data received from the client. + The entity to which the named stream belongs. + A object that represents the named stream. + The eTag value sent as part of the HTTP request that is sent to the data service. + A nullable value that determines what kind of conditional request was issued to the data service, which is true when the eTag was sent in an If-Match header, false when the eTag was sent in an If-None-Match header, and null when the request was not conditional and no eTag was included in the request. + The instance used by the data service to process the request. + + + Defines the methods that must be implemented to supply eTag values to a custom data service provider. + + + Supplies the eTag value for the given entity resource. + Cookie that represents the resource. + A that is true when property values must be compared for equality; false when property values must be compared for inequality. + An list of the eTag property names and corresponding values. + + + Defines the methods required to support ServiceActions. + + + Queues up the invokable to be invoked during IUpdatable.SaveChanges(). + The invokable instance whose Invoke() method will be called during IUpdatable.SaveChanges(). + + + Used to perform late-bound operations on open properties. + + + Adds two values. + The result of the arithmetic operation. + First value to add. + Second value to add. + + + Performs a logical and operation between two expressions. + The result of the logical and operation. + Left value. + Right value. + + + Returns the ceiling of the given value. + The ceiling value for the given value. + A or object. + + + Concatenates two string values. + A new instance that is the concatenated string. + The first string. + The second string. + + + Converts a value to the specified type. + The converted value. + + + Returns the day value of the given instance. + The day value of the given instance. + A object. + + + + Divides two values. + The divided value. + The first value (dividend). + The second value (divisor). + + + Determines whether the end of one string matches another string. + Returns true when ends with ; otherwise returns false. + The string being compared. + The string to compare to. + + + Determines whether the specified objects are considered equal. + A value of true when both objects are equal; otherwise false. + The first object to compare. + The second object to compare. + + + Returns the floor of the given value. + Returns the floor value for the given object. + The or object to evaluate. + + + Gets a value from the specified property of a specified object. + The requested value; null if the value cannot be determined. + Object from which to get the property value. + Name of property from which to get the value. + + + Determines whether the value of one object is greater than another object. + Returns true when the value of the first object is greater than that of the second object; otherwise returns false. + The first value. + The second value. + + + Determines whether the value of one object is greater than or equal to another object. + Returns true when the value of the first object is greater than or equal to that of the second object; otherwise returns false. + The first value. + The second value. + + + Returns the hour value of the given instance. + The hour value of the given instance. + A object. + + + Returns the index of a substring in the target string. + Returns the index of the location of in the . + The target string. + The substring to find. + + + Gets the number of characters in the supplied string object. + The length of the string value. + The string to be checked. + + + Determines whether the value of one object is less than another object. + Returns true when the value of the first object is less than that of the second object; otherwise returns false. + The first value. + The second value. + + + Determines whether the value of one object is less than or equal to another object. + Returns true when the value of the first object is less than or equal to that of the second object; otherwise returns false. + The first value. + The second value. + + + Returns the minute value of the given instance. + The minute value of the given instance. + A object. + + + Calculates the arithmetic remainder of dividing one value by a second value. + The remainder value. + The first value (dividend). + The second value (divisor). + + + Returns the month value of the given instance. + The month value of the given instance. + A object. + + + Multiplies two values. + The product of the two values. + The first value. + The second value. + + + Returns the result of multiplying the specified value by negative one. + The product of multiplied by negative one. + The value to negate. + + + Performs a bitwise (logical) complement operation on the supplied value. + A bitwise complement of the supplied value. + Value to logically complement. + + + Performs a logical comparison of the two values to determine if they are not equal. + A value of true when both objects are not equal; otherwise returns false. + The first value. + The second value. + + + Performs a logical OR operation on two values. + The result of the logical OR operation. + The first value. + The second value. + + + Replaces one substring with a second substring in a target string. + A new string with the substring replaced with the new substring. + The string with the substring to replace. + The substring to be replaced. + The new substring. + + + Rounds the supplied value. + The rounded value. + A or to round. + + + Returns the second value of the given instance. + The second value of the given instance. + A object. + + + Checks whether the target string starts with the substring. + Returns true if the target string starts with the given substring, otherwise returns false. + The string being compared. + The substring that the might start with. + + + Returns the substring after the specified starting index location. + The substring. + The string from which to return the substring. + The starting index for the substring. + + + Returns the substring of a specific length after the specified starting index location. + The substring. + The string from which to return the substring. + The starting index for the substring. + The length of the substring. + + + Determines whether a substring occurs in another string. + true when occurs in , otherwise false. + The substring to locate. + The string to search. + + + Subtracts two values. + The result of the arithmetic operation. + First value in the subtraction. + Second value in the subtraction. + + + Returns a copy of a string converted to lowercase. + A new string value with only lowercase. + The string to convert. + + + Returns a copy of a string converted to uppercase. + A new string value with only uppercase characters. + The string to convert. + + + Removes all leading and trailing white-space characters from a string. + The trimmed string. + The string to trim. + + + Checks the type of a specified value. + A value that is true when the value is of the specified resource type; otherwise false. + The value to check. + Resource type for which to check. + + + Returns the year value of the given instance. + The year value of the given instance. + A object. + + + Use this class to represent a custom service operation. + + + PlaceHolder to hold custom state information about service operation. + + + Returns true, if this service operation has been set to read only. Otherwise returns false. + + + Protocol (for example HTTP) method the service operation responds to. + + + MIME type specified on primitive results, possibly null. + + + Name of the service operation. + + + Entity set from which entities are read (possibly null). + + + Set this service operation to readonly. + + + Use this type to represent a parameter on an operation. + + + Initializes a new . + Name of parameter. + resource type of parameter value. + + + PlaceHolder to hold custom state information about service operation parameter. + + + Returns true, if this parameter has been set to read only. Otherwise returns false. + + + Name of parameter. + + + Type of parameter values. + + + Sets this service operation parameter to readonly. + + + Enumeration for classifying the different kinds of operation parameter binding. + + + Used when the first parameter of a service action is not a binding parameter. + + + Used when the first parameter of a service action is a binding parameter and some or all instances of the binding parameter type may be bound to the service action. + + + Used when the first parameter of a service action is a binding parameter and all instances of the binding parameter type must be bound to the service action. + + + Describes an association between two resource sets. + + + Creates a new instance of the class. + Name of the association set. + + that is at the source end of the association set. + + that is at the target end of the association set. + + + + Gets the source end of the association set. + + that is at the source end of the association set. + + + Gets the target end of the association set. + + that is at the target end of the association set. + + + Gets the name of the association set. + The name of the association set. + + + Describes an end point of a resource association set. + + + Creates a new instance of the class. + Resource set to which the end belongs. + Resource type to which the end belongs. + Resource property that returns the end. + + + + Gets the resource property that returns the . + The resource property. + + + Gets the resource set for the . + The resource set. + + + Gets the resource type for the . + The resource type. + + + Provides a type to describe a property on a resource. + + + Initializes a new for an open property. + Property name for the property as string. + + . + The of the resource to which the property refers. + + + Gets a value that indicates whether this property can be accessed through reflection on the declaring resource instance type. + true when the property can be accessed through reflection; otherwise false. + + + Gets or sets custom state information about a resource property that is defined by the developer. + State information. + + + Gets a Boolean value that indicates whether the property is read-only. + True if the property is read-only. + + + Gets the kind of the resource property with regard to the resource. + A value. + + + Gets or sets MIME type for the property. + String value that indicates MIME type. + + + Gets the name of the resource property. + The name of the resource property as string. + + + Gets the type of the resource property. + The of the resource property. + + + Sets the resource property to read-only. + + + Enumeration for the kinds of properties that a resource can have. + + + A property that returns a primitive type. + + + A property that is part of the key. + + + A property that returns a complex type. + + + A property that returns a reference to another resource. + + + A property that returns a reference to a resource set. + + + An ETag property. + + + + + + A property that returns a stream. + + + Represents a collection of entity type values. + + + Creates a new collection of entity type values.. + The name of the set of items as string. + The of the items in the set. + + + Gets or sets custom state information that is defined by the developer. + State information defined by the developer. + + + Gets a Boolean value that indicates whether the set is read-only. + Boolean value that indicates whether resource set is read-only. + + + Gets the name of the collection. + String value that contains the name of the resource set. + + + Gets the type of the collection. + The . + + + Gets or sets the read-only status of the collection. + + + Get or sets whether to use the order of key properties as defined in the metadata of an Entity Framework or reflection provider when constructing an implicit OrderBy query. + Returns a that is true when the order of key properties is inferred from the provider metadata and false when an alphabetical order is used. + + + This class represents the path expression to calculate the target resource set of a Function or Procedure. + + + Creates a new instance of the class. + Path expression to calculate the target resource set of a function or procedure. + + + Path expression to calculate the target resource set of a function or procedure. + The path expression. + + + Represents a data service primitive, complex, or entity type. + + + Creates an instance of a data service . + CLR type that represents the format inside the WCF Data Services?runtime. + + of the resource type. + Base type of the resource type as string. + Namespace name of the resource type as string. + Name of the given resource type as string. + Boolean value that indicates whether the resource type is an abstract type. + + + Adds an for the resource type. + The to add. + + + Adds the property supplied by the parameter to the type. + + property to be added. + + + Gets a reference to base resource type, if any. + + of the base type. + + + Get whether the corresponding instance type represents the CLR type of this entity. + true if the instance type represents a CLR type; otherwise false. + + + Gets or sets a placeholder to hold custom state information about a resource type that is defined by the developer. + Custom state information defined by the developer. + + + Gets the list of properties for this type. + + of . + + + Gets the full name of the resource. + The full name of the resource type as string. + + + + Gets a representing a collection of the specified itemType items. + A object representing a collection of the specified itemType items. + The of a single item in the collection. + + + Gets a resource type that represent a primitive type when given a object. + The resource type. + + type from which to get the primitive type. + + + Reference to the CLR type that this resource represents. + The instance type as a . + + + Gets a Boolean value that indicates whether this is an abstract type. + True if is abstract. + + + Gets or sets a Boolean value that is true if the resource type includes a default stream. + A Boolean value that is true if the resource type includes a default stream. + + + Gets whether the resource type has open properties. + true if the resource type has open properties defined; otherwise false. + + + Gets a Boolean value that is true if this resource type has been set to read-only. + True if this resource type has been set to read-only; otherwise false. + + + Gets a list of key properties for this type + + of . + + + Returns a list of properties declared by this resource type. + The list of properties declared on this type. + + + Gets the name of the resource type. + Name of the resource type as string. + + + Gets the namespace of the resource type. + Namespace of the resource type as string. + + + Gets a list of properties declared on this type that includes only properties defined on the type, not in the base type. + + of . + + + List of properties declared on this type. + + of . + + + Gets the for the type. + + . + + + Sets the resource type to read-only. + + + Enumeration for the kind of resource key. + + + Entity type resource. + + + Complex type resource. + + + Primitive type resource. + + + + + + Represents a collection of entities. + + + Class that represents an action. + + + Initializes a new instance. + Name of the action. + Return type of the action. + the kind of the operation parameter binding (Never, Sometimes, Always). + In-order parameters for this action; the first parameter is the binding parameter. + Path expression to calculate the result resource set of the function if the action returns an entity or a collection of entity; null otherwise. + + + Initializes a new instance. + Name of the action. + Return type of the action. + Result resource set of the action if the action returns an entity or a collection of entity; null otherwise. + the kind of the operation parameter binding (Never, Sometimes, Always). + In-order parameters for this action. + + + The binding parameter to this action; null if this action is top-level. + + + Returns all the parameters for the given service action. + + + Path expression to calculate the result resource set of the function if the function returns an entity or a collection of entity. + + + Return type of the action. + + + Use this type to represent a parameter on a service action. + + + Initializes a new . + Name of parameter. + resource type of parameter value. + + + Represents a custom service operation. + + + Creates a new instance of the service operation. + Name of the service operation. + + that is the kind of result expected from this operation. + + that is the result of the operation. + + that is the result of the operation. + Protocol method to which the service operation responds. + Ordered collection of objects that are parameters for the operation. + + + Collection of in-order parameters for the service operation. + A of objects. + + + The kind of result that is expected by this service operation. + + that is the kind of result expected from this operation. + + + Type of results returned by this service operation. + Type of the results as a . + + + Represents parameter information for service operations. + + + Creates a new instance of . + Name of parameter. + Data type of parameter. + + + An enumeration that describes the kind of results that a service operation provides. + + + A single value that cannot be further composed. + + + An enumeration of values that cannot be further composed. + + + A queryable object that returns multiple elements. + + + A query that returns a single item. + + + No results. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/RUS/Microsoft.Data.Services.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/RUS/Microsoft.Data.Services.resources.dll new file mode 100644 index 0000000..33c4363 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.5.0.0/lib/net40/RUS/Microsoft.Data.Services.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/Microsoft.Data.Services.Client.5.0.0.nupkg b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/Microsoft.Data.Services.Client.5.0.0.nupkg new file mode 100644 index 0000000..11f0d10 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/Microsoft.Data.Services.Client.5.0.0.nupkg differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/Microsoft.Data.Services.Client.5.0.0.nuspec b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/Microsoft.Data.Services.Client.5.0.0.nuspec new file mode 100644 index 0000000..ba217f6 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/Microsoft.Data.Services.Client.5.0.0.nuspec @@ -0,0 +1,27 @@ + + + + Microsoft.Data.Services.Client + 5.0.0 + WCF Data Services Client + Microsoft Corporation + Microsoft Corporation + http://www.microsoft.com/download/en/details.aspx?id=29306 + http://go.microsoft.com/fwlink/?LinkId=220868 + http://static.tumblr.com/hgchgxz/9ualgdf98/icon.png + true + LINQ-enabled client API for issuing OData queries and consuming OData payloads. Supports OData v3. Targets .NET 4.0 or Silverlight 4.0. Localized for CHS, CHT, DEU, ESN, FRA, ITA, JPN, KOR and RUS. + wcf data services odata odatalib edmlib spatial ado.net ef entity framework open protocol wcfds wcfdataservices dataservices + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/CHS/Microsoft.Data.Services.Client.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/CHS/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..b067ccf Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/CHS/Microsoft.Data.Services.Client.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/CHT/Microsoft.Data.Services.Client.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/CHT/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..7dd24dd Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/CHT/Microsoft.Data.Services.Client.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/DEU/Microsoft.Data.Services.Client.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/DEU/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..c3869de Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/DEU/Microsoft.Data.Services.Client.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/ESN/Microsoft.Data.Services.Client.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/ESN/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..7927699 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/ESN/Microsoft.Data.Services.Client.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/FRA/Microsoft.Data.Services.Client.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/FRA/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..86ac081 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/FRA/Microsoft.Data.Services.Client.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/ITA/Microsoft.Data.Services.Client.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/ITA/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..05072a6 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/ITA/Microsoft.Data.Services.Client.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/JPN/Microsoft.Data.Services.Client.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/JPN/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..16aa671 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/JPN/Microsoft.Data.Services.Client.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/KOR/Microsoft.Data.Services.Client.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/KOR/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..b8353b1 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/KOR/Microsoft.Data.Services.Client.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/Microsoft.Data.Services.Client.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/Microsoft.Data.Services.Client.dll new file mode 100644 index 0000000..bed06b7 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/Microsoft.Data.Services.Client.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/Microsoft.Data.Services.Client.xml b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/Microsoft.Data.Services.Client.xml new file mode 100644 index 0000000..233f8c6 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/Microsoft.Data.Services.Client.xml @@ -0,0 +1,1473 @@ + + + + Microsoft.Data.Services.Client + + + + Holds information about a ServiceAction. + + + Initializes a new instance of the class. + + + Represents a parameter associated with a service action. + + + Instantiates a new BodyOperationParameter + The name of the body operation parameter. + The value of the body operation parameter. + + + Results returned after a call to when enumerating operation responses returned by the class. + + + Gets the or modified by a change operation. + An or modified by a change operation. + + + Represents errors that occur during execution of WCF Data Services client applications. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Initializes a new instance of the class. + The string value that contains the error message. + The System.Exception object that contains the inner exception. + The integer value that contains status code. + + + Initializes a new instance of the class. + The string value that contains the error message. + The integer value that contains status code. + + + [SECURITY CRITICAL] Initializes a new instance of the class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Gets the HTTP error status code returned after . + An integer value that represents the exception. + + + Represents a dynamic entity collection that provides notifications when items get added, removed, or when the list is refreshed. + An entity type. + + + Creates a new instance of the class. + + + Creates a new instance of the class based on query execution. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + + + Creates a new instance of the class based on query execution and with the specified tracking mode. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + + + Creates a new instance of the class a based on query execution and with the supplied change method delegates. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Creates a new instance of the class that uses the specified . + The used to track changes to objects in the collection. + + + Creates a new instance of the class a based on query execution, with the supplied change method delegates, and that uses the supplied . + The used to track items in the collection. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Creates a new instance of the class with the supplied change method delegates and that uses the specified . + The used to track items in the collection. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Removes all items from the collection, and optionally detaches all the items from the . + When true, detaches all items from the . + + + Gets a continuation object that is used to return the next set of paged results. + A object that contains the URI to return the next set of paged results. + + + Disables tracking of all items in the collection. + + + Adds a specified item to the collection at the specified index. + Index at which to add the item. + The item to add. + + + Loads a collection of entity objects into the collection. + Collection of entity objects to be added to the . + + + Loads a single entity object into the collection. + Entity object to be added. + + + The represents the runtime context of the data service. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified . + An absolute URI that identifies the root of a data service. + When the is null. + If the is not an absolute URI -or-If the is a well formed URI without a query or query fragment. + + + Initializes a new instance of the class with the specified and targeting the specific . + An absolute URI that identifies the root of a data service. + A value that is the maximum protocol version that the client understands. + + + Gets or sets whether the client requests that the data service return entity data in the response message to a change request. + A object that determines whether to request a response form the data service. + + + Adds the specified link to the set of objects the is tracking. + The source object for the new link. + The name of the navigation property on the source object that returns the related object. + The object related to the source object by the new link. + When , , or are null. + If a link already exists.-or-If either the or objects are in a or state.-or-If is not a collection. + + + Adds the specified object to the set of objects that the is tracking. + The name of the entity set to which the resource will be added. + The object to be tracked by the . + When or is null. + When is empty.-or-When does not have a key property defined. + When the entity is already being tracked by the context. + + + Adds a related object to the context and creates the link that defines the relationship between the two objects in a single request. + The parent object that is being tracked by the context. + The name of the navigation property that returns the related object based on an association between the two entities. + The related object that is being added. + + + Gets a value that indicates whether the is currently applying changes to tracked objects. + Returns true when changes are currently being applied; otherwise returns false. + + + Notifies the to start tracking the specified link that defines a relationship between entity objects. + The source object in the new link. + The name of the property on the source object that represents the link between the source and target object. + The target object in the link that is bound to the source object specified in this call. The target object must be of the type identified by the source property or a subtype. + When , , or is null. + When the link between the two entities already exists.-or-When or is in an or state. + + + Notifies the to start tracking the specified resource and supplies the location of the resource within the specified resource set. + The name of the set that contains the resource. + The resource to be tracked by the . The resource is attached in the Unchanged state. + When or is null. + When is an empty string.-or-When the does not have a key property defined. + When the is already being tracked by the context. + + + Notifies the to start tracking the specified resource and supplies the location of the resource in the specified resource set. + The string value that contains the name of the entity set to which to the entity is attached. + The entity to add. + An etag value that represents the state of the entity the last time it was retrieved from the data service. This value is treated as an opaque string; no validation is performed on it by the client library. + When is null.-or-When is null. + When is an empty string.-or-When the supplied object does not have a key property. + When the supplied object is already being tracked by the context + + + Gets the absolute URI identifying the root of the target data service. + An absolute URI that identifies the root of a T data service. + + + Asynchronously sends a request to the data service to retrieve the next page of data in a paged query result. + An that represents the status of the operation. + A object that represents the next page of data to return from the data service. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + The type returned by the query. + + + Asynchronously sends the request so that this call does not block processing while waiting for the results from the service. + An object that is used to track the status of the asynchronous operation. + The URI to which the query request will be sent. The URI may be any valid data service URI; it can contain $ query parameters. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + The type returned by the query. + + + + + + + Asynchronously submits a group of queries as a batch to the data service. + An object that is used to track the status of the asynchronous operation. + The delegate that is called when a response to the batch request is received. + User-defined state object that is used to pass context data to the callback method. + The array of query requests to include in the batch request. + + + Asynchronously gets the binary data stream that belongs to the specified entity, by using the specified message headers. + An object that is used to track the status of the asynchronous operation. + The entity that has a the binary data stream to retrieve. + Instance of the class that contains settings for the HTTP request message. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + Any of the parameters supplied to the method is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary data stream. + + + Asynchronously gets a named binary data stream that belongs to the specified entity, by using the specified message headers. + An object that is used to track the status of the asynchronous operation. + The entity that has the binary data stream to retrieve. + The name of the binary stream to request. + Instance of the class that contains settings for the HTTP request message. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Asynchronously loads the value of the specified property from the data service. + An IAsyncResult that represents the status of the asynchronous operation. + The entity that contains the property to load. + The name of the property on the specified entity to load. + The delegate called when a response to the request is received. + The user-defined state object that is used to pass context data to the callback method. + + + Asynchronously loads the next page of related entities from the data service by using the supplied query continuation object. + An that represents the status of the operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entity data to return from the data service. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Asynchronously loads a page of related entities from the data service by using the supplied next link URI. + An object that is used to track the status of the asynchronous operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + The URI used to load the next results page. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Asynchronously submits the pending changes to the data service collected by the since the last time changes were saved. + An IAsyncResult that represents the status of the asynchronous operation. + The delegate to call when the operation is completed. + The user-defined state object that is used to pass context data to the callback method. + + + Asynchronously submits the pending changes to the data service collected by the since the last time changes were saved. + An that represents the status of the asynchronous operation. + The options for how the client can save the pending set of changes. + The delegate to call when the operation is completed. + The user-defined state object that is used to pass context data to the callback method. + + + Attempts to cancel the operation that is associated with the supplied object. + The object from the operation being canceled. + + + Creates a data service query for data of a specified generic type. + A new instance that represents a data service query. + A string that resolves to a URI. + The type returned by the query + + + Gets or sets the authentication information that is used by each query created by using the object. + The base authentication interface for retrieving credentials for Web client authentication. + + + Gets or sets the XML namespace for data items, not metadata items, of an Atom payload. + A string representing the XML namespace for data items of a payload in the ATOM format. + + + Changes the state of the link to deleted in the list of links being tracked by the . + The source object in the link to be marked for deletion. + The name of the navigation property on the source object that is used to access the target object. + The target object involved in the link that is bound to the source object. The target object must be of the type identified by the source property or a subtype. + When , , or is null. + When or is in a or state.-or-When is not a collection. + + + Changes the state of the specified object to be deleted in the . + The tracked entity to be changed to the deleted state. + When is null. + When the object is not being tracked by the . + + + Removes the entity from the list of entities that the is tracking. + Returns true if the specified entity was detached; otherwise false. + The tracked entity to be detached from the . + When is null. + + + Removes the specified link from the list of links being tracked by the . + Returns true if the specified entity was detached; otherwise false. + The source object participating in the link to be marked for deletion. + The name of the property on the source object that represents the source in the link between the source and the target. + The target object involved in the link that is bound to the source object. The target object must be of the type identified by the source property or a subtype. + When or are null. + When is an empty string. + + + + Called to complete the . + The results returned by the query operation. + + object. + The type returned by the query. + When is null. + When did not originate from this instance. -or- When the method was previously called. + When an error is raised either during execution of the request or when it converts the contents of the response message into objects. + When the data service returns an HTTP 404: Resource Not Found error. + + + Called to complete the . + The DataServiceResult object that indicates the result of the batch operation. + An that represents the status of the asynchronous operation. + + + Called to complete the asynchronous operation of retrieving a binary data stream. + An instance of which contains the response stream along with its metadata. + The result from the operation that contains the binary data stream. + + + Called to complete the operation. + The response to the load operation. + An that represents the status of the asynchronous operation. + + + Called to complete the operation. + A object that indicates the result of the batch operation. + An that represents the status of the asynchronous operation. + + + Gets a list of all the resources currently being tracked by the . + A list of objects that represent all the resources currently being tracked by the . + + + Sends a request to the data service to retrieve the next page of data in a paged query result. + The response that contains the next page of data in the query result. + A object that represents the next page of data to return from the data service. + The type returned by the query. + + + Sends a request to the data service to execute a specific URI. + The results of the query operation. + The URI to which the query request will be sent. The URI may be any valid data service URI. Can contain $ query parameters. + The type that the query returns. + When a response is not received from a request to the . + When is null. + When is not a valid URI for the data service. + When an error is raised either during execution of the request or when it converts the contents of the response message into objects. + When the data service returns an HTTP 404: Resource Not Found error. + + + + + + + Submits a group of queries as a batch to the data service. + The response to the batch operation. + Array of objects that make up the queries. + + + Gets the for the supplied entity object. + The instance for the , or null if an does not exist for the object. + The object for which to return the entity descriptor. + + + Gets the for a specific link that defines the relationship between two entities. + The instance for the specified relationship, or null if a does not exist for the relationship. + Source object in the link + The name of the navigation property on the object that returns the related object. + The related entity. + + + Gets a URI of the location of .edmx metadata. + A URI that identifies the location of the metadata description, in .edmx format, for the data service identified by the base URI that is passed to the constructor. + + + Gets the binary data stream that belongs to the specified entity. + An instance of that represents the response. + The entity that has the binary stream to retrieve. + The is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary stream. + + + Gets binary data stream for the specified entity by using the specified message headers. + An instance of that represents the response. + The entity that has the binary stream to retrieve. + Instance of class that contains settings for the HTTP request message. + + is null.-or- is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary stream. + + + Gets the binary data stream that belongs to the specified entity, by using the specified Content-Type message header. + An instance of that represents the response. + The entity that has the binary data stream to retrieve. + The Content-Type of the binary data stream requested from the data service, specified in the Accept header. + + is null.-or- is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related stream. + + + Gets a named binary data stream that belongs to the specified entity, by using the specified Content-Type message header. + An instance of that represents the response. + The entity that has the binary data stream to retrieve. + The name of the binary stream to request. + Instance of class that contains settings for the HTTP request message. + + + Gets the URI that is used to return a binary data stream. + The read URI of the binary data stream. + The entity that has a related binary stream to retrieve. + If the entity specified is null. + The is not tracked by this . + + + Gets the URI that is used to return a named binary data stream. + The read URI of the binary data stream. + The entity that has the named binary data stream to retrieve. + The name of the stream to request. + + + Gets or sets whether the properties read from the type must be mapped to properties on the client-side type. + A Boolean value that indicates whether the properties read from the type must be mapped to properties on the client-side type. + + + Gets or sets whether an exception is raised when a 404 error (resource not found) is returned by the data service. + When set to true, the client library returns an empty set instead of raising a when the data service returns an HTTP 404: Resource Not Found error. + + + Gets the collection of all associations or links currently being tracked by the object. + A collection of objects that represent all associations or links current being tracked by the current being tracked by the object. + + + Loads deferred content for a specified property from the data service. + The response to the load operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + + + Loads the next page of related entities from the data service by using the supplied query continuation object. + The response that contains the next page of related entity data. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entities to load from the data service. + When is in the or state. + + + Loads the next page of related entities from the data service by using the supplied generic query continuation object. + The response that contains the next page of related entity data. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entities to load from the data service. + Element type of collection to load. + When is in the or state. + + + Loads a page of related entities by using the supplied next link URI. + An instance of that contains the results of the request. + The entity that contains the property to load. + The name of the property of the specified entity to load. + The URI that is used to load the next results page. + When is in a or state. + + + Gets the maximum version of the Open Data Protocol (OData) that the client is allowed to use. + The maximum version of OData that the client is allowed to use. + + + Gets or sets the synchronization option for receiving entities from a data service. + One of the members of the enumeration. + + + Occurs after entity data has been completely read into the entity object. + + + Gets or sets the delegate method that is used to resolve the entity set URI when the value cannot be determined from an edit-link or self-link URI. + A value that is a delegate that takes a and returns a value. + + + Gets or sets a function to override the default type resolution strategy used by the client library when you send entities to a data service. + Returns a string that contains the name of the . + + + Gets or sets a function that is used to override the default type resolution option that is used by the client library when receiving entities from a data service. + A function delegate that identifies an override function that is used to override the default type resolution option that is used by the client library. + + + Saves the changes that the is tracking to storage. + A that contains status, headers, and errors that result from the call to . + + + Saves the changes that the is tracking to storage. + A that contains status, headers, and errors that result from the call to . + A member of the enumeration that specifies the materialization option. + + + Gets or sets the values that are used by the method. + The current options for the save changes operation. + + + Occurs when a new has been created. + + + + Notifies the that a new link exists between the objects specified and that the link is represented by the property specified by the parameter. + The source object for the new link. + The property on the source object that identifies the target object of the new link. + The child object involved in the new link that is to be initialized by calling this method. The target object must be a subtype of the type identified by the parameter. If is set to null, the call represents a delete link operation. + When , or are null. + When the specified link already exists.-or-When the objects supplied as or are in the or state.-or-When is not a navigation property that defines a reference to a single related object. + + + Sets a binary data stream for the specified entity, with the specified headers in the request message. + The entity to which the binary stream belongs. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + An instance of the class that contains settings for the HTTP request message. + Any of the parameters supplied to the method are null. + The is not being tracked by this instance. -or-The has the applied. + + + Sets a binary data stream that belongs to the specified entity, with the specified Content-Type and Slug headers in the request message. + The entity to which the data stream belongs. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + The Content-Type header value for the request message. + The Slug header value for the request message. + Any of the parameters supplied to the method are null. + The is not being tracked by this instance. -or-The entity has the applied. + + + Sets a named binary data stream that belongs to the specified entity, with the specified headers in the request message. + The entity to which the binary stream belongs. + The name of the binary stream to save. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + An instance of the class that contains settings for the HTTP request message. + + + The entity to which the binary stream belongs. + The name of the binary stream to save. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + The Content-Type header value for the request message. + + + Gets or sets the time-out option (in seconds) that is used for the underlying HTTP request to the data service. + An integer that indicates the time interval (in seconds) before time-out of a service request. + + + Test retrieval of an entity being tracked by the by reference to the URI of the entity. + If an entity is found at , the entity is returned in the out parameter and true is returned. If no entity is found, false is returned. + The URI of the tracked entity to be retrieved. + The entity to be retrieved. + The type of the entity. + When is null. + + + Retrieves the canonical URI associated with the specified entity, if available. + Returns true if the canonical URI is returned in the out parameter. If the specified entity is not tracked by the or is in the added state, no URI is available and false is returned. + The entity identified by the . + The URI of the entity. + When is null. + + + Gets or sets the URI used to indicate what type scheme is used by the service. + A object that contains the type scheme. + + + Changes the state of the specified object in the to . + The tracked entity to be assigned to the state. + When is null. + When is in the state. + + + Gets or sets a Boolean value that indicates whether to use post tunneling. + A Boolean value that indicates whether to use post tunneling. + + + Occurs after an entity has been fully serialized into XML in a request message. + + + An abstract class that represents a single query request to WCF Data Services.  + + + Asynchronously sends a request to execute the data service query. + An object that is used to track the status of the asynchronous operation. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Called to complete the asynchronous operation of executing a data service query. + An that contains the results of the query operation. + The result from the operation that contains the query results. + When the data service returns an HTTP 404: Resource Not Found error. + + + Executes the query against the data service. + An that contains the results of the query operation. + When the data service returns an HTTP 404: Resource Not Found error. + + + Represents an expression that contains the query to the data service. + An object that represents the query. + + + Represents the query provider instance. + An representing the data source provider. + + + Gets the object that can be used to iterate through the collection returned by the query. + An enumerator over the query results. + + + Represents a single query request to a data service. + Type of results returned by the query. + + + Creates a new with the query option set in the URI generated by the returned query. + A new query that includes the requested query option appended to the URI of the supplied query + The string value that contains the name of the query string option to add. + The object that contains the value of the query string option. + + + Starts an asynchronous network operation that executes the query represented by this object instance. + An that represents the status of the asynchronous operation. + The delegate to invoke when the operation completes. + User defined object used to transfer state between the start of the operation and the callback defined by . + + + Returns the type of the object used in the template to create the instance. + Returns representing the type used in the template when the query is created. + + + Ends an asynchronous query request to a data service. + Returns an that contains the results of the query operation. + The pending asynchronous query request. + + + Executes the query and returns the results as a collection that implements IEnumerable. + An in which represents the type of the query results. + When the data service returns an HTTP 404: Resource Not Found error. + + + Expands a query to include entities from a related entity set in the query response, where the related entity is of a specific type in a type hierarchy. + Returns a that with the expand option included. + A lambda expression that indicates the navigation property that returns the entity set to include in the expanded query. + Target type of the last property on the expand path. + + + Expands a query to include entities from a related entity set in the query response. + A new query that includes the requested $expand query option appended to the URI of the supplied query. + The expand path in the format Orders/Order_Details. + + + Represents an expression containing the query to the data service. + A object representing the query. + + + Executes the query and returns the results as a collection. + A typed enumerator over the results in which represents the type of the query results. + + + Requests that the count of all entities in the entity set be returned inline with the query results. + A new object that has the inline count option set. + + + Represents the query provider instance. + A representing the data source provider. + + + Get the URI for the query. + The URI of the request. + + + Executes the query and returns the results as a collection. + An enumerator over the query results. + + + Represents the URI of the query to the data service. + A URI as string that represents the query to the data service for this instance. + + + Encapsulates a URI that returns the next page of a paged WCF Data Services query result. + + + Gets the URI that is used to return the next page of data from a paged query result. + A URI that returns the next page of data. + + + Returns the next link URI as a string. + A string representation of the next link URI. + + + Encapsulates a URI that returns the next page of a paged WCF Data Services query result.  + The type of continuation token. + + + Exception that indicates an error occurred loading the property value from the data service. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.The string value that the contains error message. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. The string value that contains the error message. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. The inner exception object. + + + Initializes a new instance of the class. + The string value that contains the error message. + The inner exception object. + The object. + + + Gets the that indicates the exception results. + A object that indicates the exception results. + + + Represents request objects submitted as a batch to WCF Data Services. + + + Gets the type of object submitted as a batch to the data service. + Type object. + + + Gets the URI of the request object submitted to a data service. + URI of the request object. + + + Represents request objects submitted as a batch to the data service. + An entity type. + + + Initializes a new instance of the class. + The URI object that contains the request string. + + + Gets the type of the object used to create the instance. + A value that indicates the type of data returned. + + + Gets the URI object that contains the request string. + A object that contains the request string. + + + Represents the URI of the query to the data service. + The requested URI as a value. + + + Represents additional metadata that is included in a request message to WCF Data Services. + + + Creates a new instance of the class. + + + Gets or sets the Accept header of the request message. + The value of the Accept header. + + + Gets or sets the Content-Type header of the request message. + The value of the Content-Type header. + + + Gets the headers in the request message. + The headers in the request message. + + + Gets or sets the value of the Slug header of the request message. + A value that is the Slug header of the request. + + + Represents the error thrown if the data service returns a response code less than 200 or greater than 299, or the top-level element in the response is <error>. This class cannot be inherited. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.The error message text. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Initializes a new instance of the class. + Error message text. + Exception object that contains the inner exception. + + object. + + + Gets the response as a object. + A object. + + + Represents the response to operations sent to the data service as a result of calling . + + + The headers from an HTTP response associated with a batch request. + An object containing the name-value pairs of an HTTP response. + + + The status code from an HTTP response associated with a batch request. + An integer based on status codes defined in Hypertext Transfer Protocol. + + + Gets an enumerator that enables retrieval of responses to operations being tracked by objects within the . + An enumerator over the response received from the service. + + + Gets a Boolean value that indicates whether the response contains multiple results. + A Boolean value that indicates whether the response contains multiple results. + + + Gets an enumerator that enables retrieval of responses to operations being tracked by objects within the . + An enumerator over the response received from the service. + + + Determines whether the client requests that the data service return inserted or updated entity data as an entry in the response message. + + + The Prefer header is not included in the request, which is the default behavior. + + + Requests that the data service returns a copy of the inserted or changed entity as an entry in the body of the response message. + + + Request that the data service not return a copy of the inserted or changed entity as an entry in the body of the response message. + + + Represents the URL of a binary resource stream. + + + Gets or sets the MIME Content-Type of the binary resource stream. + The Content-Type value for the stream. + + + Gets or sets the URI used to edit the binary resource stream. + The URI used to edit the stream. + + + The eTag value that is used to determine concurrency for a binary resource stream. + The value of the eTag header for the stream. + + + The name of the binary resource stream. + The name of the binary resource stream. + + + Occurs when a property value changes. + + + The URI that returns the binary resource stream. + The URI of the stream. + + + Represents a response from WCF Data Services that contains binary data as a stream. + + + Gets the Content-Disposition header field for the response stream. + The contents of the Content-Disposition header field. + + + Gets the content type of the response stream. + The content type of the response stream. + + + Releases all resources used by the current instance of the class. + + + Gets the collection of headers from the response. + The headers collection from the response message as a object. + + + Gets the binary property data from the data service as a binary stream. + The stream that contains the binary property data. + When the is already disposed. + + + Abstract class from which is derived. + + + When overridden in a derived class, gets the state of the object at the time this instance was constructed. + An of the object returned at the time this instance was constructed. + + + Encapsulates the arguments of a delegate + + + The context that is associated with the entity object that has changed. + The context that is tracking the changed object. + + + The entity object that has changed. + The changed object. + + + The name of the property on the entity object that references the target object. + The name of the changed property. + + + The object that is currently referenced by the changed property on the entity object. + The current value that references a target entity. + + + The entity set of the source object. + An entity set name. + + + The entity set to which the target entity object belongs + An entity set name. + + + Encapsulates the arguments of a delegate. + + + A value that indicates how the collection was changed. + A value that indicates how the collection was changed. + + + The that has changed. + A reference to the collection that has changed. + + + The associated with the that has changed. + The context associated with the collection that has changed + + + The navigation property on the source object that references the collection that has changed. + The navigation property name. + + + The source object that references the target object in the collection by using a navigation property. + The source object. + + + The entity set of the source object. + An entity set name. + + + The entity object in the collection that has changed. + The changed entity object in the collection. + + + The entity set name of the object in the collection. + An entity set name. + + + Description of modifications done to entities by operations returned in a . + + + Gets or sets the URI that modifies the entity. + The edit link URI for the entity resource. + + + Gets or sets the URI that modifies the binary property data of the entity. + The property contains the edit-media link URI for the Media Resource that is associated with the entity, which is a Media Link Entry. + + + Gets the entity that contains the update data. + An object that contains update data. + + + Gets an eTag value that indicates the state of data targeted for update since the last call to . + A string value that indicates the state of data. + + + Gets or sets the URI that is the identity value of the entity. + The property corresponds to the identity element of the entry that represents the entity in the Atom response. + + + Returns a collection of links that are the relationships in which the entity participates. + A of objects that represents links in which the entity participates. + + + + Gets the parent entity that is related to the entity. + An object that is the parent entity in the relationship link. + + + Gets the name of the property of the entity that is a navigation property and links to the parent entity. + The name of the parent property. + + + Gets or sets the URI that accesses the binary property data of the entity. + A URI that accesses the binary property as a stream. + + + Gets or sets the URI that is used to return the entity resource. + A URI that returns the entity. + + + Gets or sets the name of the type in the data source to which the entity is mapped. + A string that is the name of the data type. + + + Returns a collection of named binary data streams that belong to the entity. + A of objects that are the named binary data streams that belong to the entity. + + + Gets the eTag for the media resource associated with an entity that is a media link entry. + A string value that indicates the state of data. + + + Represents the enumeration that identifies the state of an entity being tracked by the . + + + The entity was detached since the last call to . + + + The entity is unchanged since the last call to . + + + The entity was added since the last call to . + + + The entity was deleted since the last call to . + + + The entity was modified since the last call to . + + + Holds information about a ServiceFunction. + + + Initializes a new instance of the class. + + + IODataRequestMessage interface implementation. + + + Returns the value of the header with the given name. + Returns the value of the header with the given name. + Name of the header. + + + Gets the stream to be used to write the request payload. + Stream to which the request payload needs to be written. + + + Returns the collection of request headers. + + + Returns the underlying HttpWebRequest + + + Returns the method for this request. + + + Sets the value of the header with the given name. + Name of the header. + Value of the header. + + + Returns the request url. + + + Response from an Invoke call. + + + Consutrcts an InvokeResponse identical to an OperationResponse. + The HTTP headers. + + + Provides a description of modifications done to entities by operations returned in a . + + + A source entity in a link returned by a . + + . + + + The identifier property of the source entity in a link returned by a . + The string identifier of an identity property in a source entity. + + + The source entity in a link returned by a . + + . + + + Encapsulates information about a link, or relationship, between entities. + + + + The name of the link. + The name of the link. + + + The URI that is the navigation property representation of the link. + The navigation link URI. + + + Signifies that the specified class is to be treated as a media link entry. + + + Creates a new instance of . + A string value that identifies the property that holds media data. + + + The name of the property on the class that holds the media, usually binary data. + A string value that identifies the property that holds media data. + + + Determines the synchronization option for sending or receiving entities to or from WCF Data Services.  + + + Append new entities only. Existing entities or their original values will not be modified. No client-side changes are lost in this merge. This is the default behavior. + + + All current values on the client are overwritten with current values from the data service regardless of whether they have been changed on the client. + + + Current values that have been changed on the client are not modified, but any unchanged values are updated with current values from the data service. No client-side changes are lost in this merge. + + + Objects are always loaded from persisted storage. Any property changes made to objects in the object context are overwritten by the data source values. + + + Annotates a property on a class that has been annotated with the . + + + Creates a new instance of the MimeTypePropertyAttribute. + A string that contains the name of the new property attribute. + A string that contains the Mime type of the new property attribute. + + + Gets the name of the MimeTypePropertyAttribute. + A string that contains the name of the property attribute. + + + Gets the Mime type of the MimeTypePropertyAttribute + A string that contains the Mime type of the property attribute. + + + Holds information about a service operation. + + + Identifies the service operation. + + + The URI to invoke the service operation. + + + Human-readable description of the service operation. + + + Represents a parameter passed to a service action, service function or a service operation. when it is Executed. + + + Instantiates a new OperationParameter + The name of the operation parameter. + The value of the operation parameter. + + + The name of the operation parameter. + + + The value of the operation parameter. + + + Abstract class that represents the response of a single query or create, update, or delete operation. + + + Gets error thrown by the operation. + An object that contains the error. + + + When overridden in a derived class, contains the HTTP response headers associated with a single operation. + + object that contains name value pairs of headers and values. + + + When overridden in a derived class, gets or sets the HTTP response code associated with a single operation. + Integer value that contains response code. + + + Represents the responses to a . + + + Gets a object containing the URI that is used to retrieve the next results page. + An object containing the URI that is used to return the next results page. + + + Gets a object that contains the URI that is used to retrieve the next page of related entities in the specified collection. + A continuation object that points to the next page for the collection. + The collection of related objects being loaded. + The type of the items in the collection. + + + Gets a object containing the URI that is used to retrieve the next page of related entities in the specified collection. + A continuation object that points to the next page for the collection. + The collection of related objects being loaded. + + + Executes the and returns items. + The enumerator to a collection of items. + + + + + + Gets the that generates the items. + A object. + + + The server result set count value from a query, if the query has requested the value. + The return value can be either a zero or positive value equal to the number of entities in the set on the server. + Thrown when the count tag is not found in the response stream. + + + Represents the responses to a . + + + + Gets a object that contains the URI that is used to retrieve the next results page. + An object that contains the URI that is used to return the next results page. + + + Executes the and gets items. + An enumerator to a collection of items. + + + The server result set count value from a query, if the query has requested the value. + The return value can be either zero or a positive value equal to the number of entities in the set on the server. + + + Gives access to the entity and an object that represents an Atom entry. is used with the and events. + + + Gets the base URI base of the entry or feed. + Returns . + + + Gets an entry or feed data represented as an . + + + + + + Gets the object representation of data returned from the property. + + representation of the property. + + + Indicates change options when is called. + + + Pending changes are saved by using multiple requests to the server, but the operation stops on the first failure (default). + + + All pending changes are saved in a single batch request. + + + Pending changes are saved by using multiple requests to the server, and the operation continues after an error occurs. + + + Pending updates are made by replacing all values of the entity in the data source with values from the updated entity. + + + + + + Event args for the SendingRequest2 event. + + + The request header collection. + + + Returns true if this event is fired for request within a batch, otherwise returns false. + + + The web request reported through this event. The handler may modify or replace it. + + + Used with the event to provide access to the instance that the client is about to send to the target data service. + + + Gets or sets the instance about to be sent by the client library to the data service. + + . + + + Gets the collection protocol headers that are associated with the request to the data service. + A collection of protocol headers that are associated with the request. + + + Contains information about a named binary resource stream. + + + The that represents the entity to which the named resource stream belongs. + The of the entity. + + + The that represents the binary resource stream. + Returns . + + + Determines whether changes that are made to a are tracked. + + + Changes made to items in the are not tracked automatically by the client. + + + Changes to items in the are automatically tracked by the client. + + + Represents a parameter associated with a service operation or a service function. + + + Instantiates a new UriOperationParameter + The name of the uri operation parameter. + The value of the uri operation parameter. + + + Asynchronously loads items into the collection, when it represents the navigation property of an entity. + When the collection does not belong to a parent entity.-or-When the parent entity is not tracked by the .-or-When a previous call to is not yet complete. + + + Asynchronously loads the collection by executing a . + The that, when executed, returns the entities to load into the collection. + When query is null or not a . + When a previous call to is not yet complete. + + + Occurs when an asynchronous load operation completes. + + + Loads the next page of data into the collection. + A value that is true when the has a continuation token; otherwise false. + + + Gets a value that indicates the type of HTTP implementation to use when accessing the data service. + A value that indicates the HTTP implementation to use when accessing the data service. + + + Gets or sets whether default credentials are used to authenticate requests to the data service. + true when the default credentials should be used; otherwise false. + + + Executes the query and returns the result as a collection. + An enumerator over the results of the query. + + + Represents the type of HTTP implementation to use when accessing the data service. + + + The client automatically determines the HTTP implementation to use. This is the recommended setting. + + + A Silverlight client HTTP implementation is used. + + + An XMLHTTP implementation is used. + + + Used as the class for the event. + + + Gets the response to an asynchronous load operation. + A that represents the response to a load operation. + + + Marks a class as an entity type in WCF Data Services. + + + Creates a new instance of the class. + + + Denotes the key property or properties of an entity. + + + Initializes a new instance of the class. + The string that contains name of the key attribute. + + + Initializes a new instance of the class. + An array of string values that contain key attribute names. + + + Gets the names of key attributes. + String value that contains names of key attributes. + + + Represents the versions of the Open Data Protocol (OData) that the data service may support. + + + Version 1 of the OData protocol. + + + Version 2 of the OData protocol. + + + Version 3 of the OData protocol. + + + Indicates the entity set to which a client data service class belongs. + + + Creates a new instance of the . + The entity set to which the class belongs. + + + Gets the entity set to which the class belongs. + The entity set as string value. + + + Indicates that a class that is an entity type has a default binary data stream. + + + Creates a new instance of the class. + + + Indicates that a class that is an entity type has a related named binary stream. + + + Creates a new instance of the class. + The name of a binary stream that belongs to the attributed entity. + + + The name of a binary stream that belongs to the attributed entity. + The name of the binary stream. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/RUS/Microsoft.Data.Services.Client.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/RUS/Microsoft.Data.Services.Client.resources.dll new file mode 100644 index 0000000..ee204f8 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/net40/RUS/Microsoft.Data.Services.Client.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/CHS/Microsoft.Data.Services.Client.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/CHS/Microsoft.Data.Services.Client.SL.resources.dll new file mode 100644 index 0000000..a908295 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/CHS/Microsoft.Data.Services.Client.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/CHT/Microsoft.Data.Services.Client.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/CHT/Microsoft.Data.Services.Client.SL.resources.dll new file mode 100644 index 0000000..01e2ade Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/CHT/Microsoft.Data.Services.Client.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/DEU/Microsoft.Data.Services.Client.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/DEU/Microsoft.Data.Services.Client.SL.resources.dll new file mode 100644 index 0000000..51edd66 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/DEU/Microsoft.Data.Services.Client.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/ESN/Microsoft.Data.Services.Client.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/ESN/Microsoft.Data.Services.Client.SL.resources.dll new file mode 100644 index 0000000..5505b4f Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/ESN/Microsoft.Data.Services.Client.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/FRA/Microsoft.Data.Services.Client.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/FRA/Microsoft.Data.Services.Client.SL.resources.dll new file mode 100644 index 0000000..908aee8 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/FRA/Microsoft.Data.Services.Client.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/ITA/Microsoft.Data.Services.Client.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/ITA/Microsoft.Data.Services.Client.SL.resources.dll new file mode 100644 index 0000000..f685052 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/ITA/Microsoft.Data.Services.Client.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/JPN/Microsoft.Data.Services.Client.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/JPN/Microsoft.Data.Services.Client.SL.resources.dll new file mode 100644 index 0000000..5adaefc Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/JPN/Microsoft.Data.Services.Client.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/KOR/Microsoft.Data.Services.Client.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/KOR/Microsoft.Data.Services.Client.SL.resources.dll new file mode 100644 index 0000000..0a7a174 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/KOR/Microsoft.Data.Services.Client.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/Microsoft.Data.Services.Client.SL.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/Microsoft.Data.Services.Client.SL.dll new file mode 100644 index 0000000..9bee183 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/Microsoft.Data.Services.Client.SL.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/Microsoft.Data.Services.Client.SL.xml b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/Microsoft.Data.Services.Client.SL.xml new file mode 100644 index 0000000..233f8c6 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/Microsoft.Data.Services.Client.SL.xml @@ -0,0 +1,1473 @@ + + + + Microsoft.Data.Services.Client + + + + Holds information about a ServiceAction. + + + Initializes a new instance of the class. + + + Represents a parameter associated with a service action. + + + Instantiates a new BodyOperationParameter + The name of the body operation parameter. + The value of the body operation parameter. + + + Results returned after a call to when enumerating operation responses returned by the class. + + + Gets the or modified by a change operation. + An or modified by a change operation. + + + Represents errors that occur during execution of WCF Data Services client applications. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Initializes a new instance of the class. + The string value that contains the error message. + The System.Exception object that contains the inner exception. + The integer value that contains status code. + + + Initializes a new instance of the class. + The string value that contains the error message. + The integer value that contains status code. + + + [SECURITY CRITICAL] Initializes a new instance of the class with serialized data. + The object that holds the serialized object data. + The contextual information about the source or destination. + + + Gets the HTTP error status code returned after . + An integer value that represents the exception. + + + Represents a dynamic entity collection that provides notifications when items get added, removed, or when the list is refreshed. + An entity type. + + + Creates a new instance of the class. + + + Creates a new instance of the class based on query execution. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + + + Creates a new instance of the class based on query execution and with the specified tracking mode. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + + + Creates a new instance of the class a based on query execution and with the supplied change method delegates. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Creates a new instance of the class that uses the specified . + The used to track changes to objects in the collection. + + + Creates a new instance of the class a based on query execution, with the supplied change method delegates, and that uses the supplied . + The used to track items in the collection. + A or LINQ query that returns an collection of objects that are used to initialize the collection. + A value that indicated whether or not changes made to items in the collection are automatically tracked. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Creates a new instance of the class with the supplied change method delegates and that uses the specified . + The used to track items in the collection. + The entity set of the objects in the collection. + A delegate that encapsulates a method that is called when an entity changes. + A delegate that encapsulates a method that is called when the collection of entities changes. + + + Removes all items from the collection, and optionally detaches all the items from the . + When true, detaches all items from the . + + + Gets a continuation object that is used to return the next set of paged results. + A object that contains the URI to return the next set of paged results. + + + Disables tracking of all items in the collection. + + + Adds a specified item to the collection at the specified index. + Index at which to add the item. + The item to add. + + + Loads a collection of entity objects into the collection. + Collection of entity objects to be added to the . + + + Loads a single entity object into the collection. + Entity object to be added. + + + The represents the runtime context of the data service. + + + Initializes a new instance of the class. + + + Initializes a new instance of the class with the specified . + An absolute URI that identifies the root of a data service. + When the is null. + If the is not an absolute URI -or-If the is a well formed URI without a query or query fragment. + + + Initializes a new instance of the class with the specified and targeting the specific . + An absolute URI that identifies the root of a data service. + A value that is the maximum protocol version that the client understands. + + + Gets or sets whether the client requests that the data service return entity data in the response message to a change request. + A object that determines whether to request a response form the data service. + + + Adds the specified link to the set of objects the is tracking. + The source object for the new link. + The name of the navigation property on the source object that returns the related object. + The object related to the source object by the new link. + When , , or are null. + If a link already exists.-or-If either the or objects are in a or state.-or-If is not a collection. + + + Adds the specified object to the set of objects that the is tracking. + The name of the entity set to which the resource will be added. + The object to be tracked by the . + When or is null. + When is empty.-or-When does not have a key property defined. + When the entity is already being tracked by the context. + + + Adds a related object to the context and creates the link that defines the relationship between the two objects in a single request. + The parent object that is being tracked by the context. + The name of the navigation property that returns the related object based on an association between the two entities. + The related object that is being added. + + + Gets a value that indicates whether the is currently applying changes to tracked objects. + Returns true when changes are currently being applied; otherwise returns false. + + + Notifies the to start tracking the specified link that defines a relationship between entity objects. + The source object in the new link. + The name of the property on the source object that represents the link between the source and target object. + The target object in the link that is bound to the source object specified in this call. The target object must be of the type identified by the source property or a subtype. + When , , or is null. + When the link between the two entities already exists.-or-When or is in an or state. + + + Notifies the to start tracking the specified resource and supplies the location of the resource within the specified resource set. + The name of the set that contains the resource. + The resource to be tracked by the . The resource is attached in the Unchanged state. + When or is null. + When is an empty string.-or-When the does not have a key property defined. + When the is already being tracked by the context. + + + Notifies the to start tracking the specified resource and supplies the location of the resource in the specified resource set. + The string value that contains the name of the entity set to which to the entity is attached. + The entity to add. + An etag value that represents the state of the entity the last time it was retrieved from the data service. This value is treated as an opaque string; no validation is performed on it by the client library. + When is null.-or-When is null. + When is an empty string.-or-When the supplied object does not have a key property. + When the supplied object is already being tracked by the context + + + Gets the absolute URI identifying the root of the target data service. + An absolute URI that identifies the root of a T data service. + + + Asynchronously sends a request to the data service to retrieve the next page of data in a paged query result. + An that represents the status of the operation. + A object that represents the next page of data to return from the data service. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + The type returned by the query. + + + Asynchronously sends the request so that this call does not block processing while waiting for the results from the service. + An object that is used to track the status of the asynchronous operation. + The URI to which the query request will be sent. The URI may be any valid data service URI; it can contain $ query parameters. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + The type returned by the query. + + + + + + + Asynchronously submits a group of queries as a batch to the data service. + An object that is used to track the status of the asynchronous operation. + The delegate that is called when a response to the batch request is received. + User-defined state object that is used to pass context data to the callback method. + The array of query requests to include in the batch request. + + + Asynchronously gets the binary data stream that belongs to the specified entity, by using the specified message headers. + An object that is used to track the status of the asynchronous operation. + The entity that has a the binary data stream to retrieve. + Instance of the class that contains settings for the HTTP request message. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + Any of the parameters supplied to the method is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary data stream. + + + Asynchronously gets a named binary data stream that belongs to the specified entity, by using the specified message headers. + An object that is used to track the status of the asynchronous operation. + The entity that has the binary data stream to retrieve. + The name of the binary stream to request. + Instance of the class that contains settings for the HTTP request message. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Asynchronously loads the value of the specified property from the data service. + An IAsyncResult that represents the status of the asynchronous operation. + The entity that contains the property to load. + The name of the property on the specified entity to load. + The delegate called when a response to the request is received. + The user-defined state object that is used to pass context data to the callback method. + + + Asynchronously loads the next page of related entities from the data service by using the supplied query continuation object. + An that represents the status of the operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entity data to return from the data service. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Asynchronously loads a page of related entities from the data service by using the supplied next link URI. + An object that is used to track the status of the asynchronous operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + The URI used to load the next results page. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Asynchronously submits the pending changes to the data service collected by the since the last time changes were saved. + An IAsyncResult that represents the status of the asynchronous operation. + The delegate to call when the operation is completed. + The user-defined state object that is used to pass context data to the callback method. + + + Asynchronously submits the pending changes to the data service collected by the since the last time changes were saved. + An that represents the status of the asynchronous operation. + The options for how the client can save the pending set of changes. + The delegate to call when the operation is completed. + The user-defined state object that is used to pass context data to the callback method. + + + Attempts to cancel the operation that is associated with the supplied object. + The object from the operation being canceled. + + + Creates a data service query for data of a specified generic type. + A new instance that represents a data service query. + A string that resolves to a URI. + The type returned by the query + + + Gets or sets the authentication information that is used by each query created by using the object. + The base authentication interface for retrieving credentials for Web client authentication. + + + Gets or sets the XML namespace for data items, not metadata items, of an Atom payload. + A string representing the XML namespace for data items of a payload in the ATOM format. + + + Changes the state of the link to deleted in the list of links being tracked by the . + The source object in the link to be marked for deletion. + The name of the navigation property on the source object that is used to access the target object. + The target object involved in the link that is bound to the source object. The target object must be of the type identified by the source property or a subtype. + When , , or is null. + When or is in a or state.-or-When is not a collection. + + + Changes the state of the specified object to be deleted in the . + The tracked entity to be changed to the deleted state. + When is null. + When the object is not being tracked by the . + + + Removes the entity from the list of entities that the is tracking. + Returns true if the specified entity was detached; otherwise false. + The tracked entity to be detached from the . + When is null. + + + Removes the specified link from the list of links being tracked by the . + Returns true if the specified entity was detached; otherwise false. + The source object participating in the link to be marked for deletion. + The name of the property on the source object that represents the source in the link between the source and the target. + The target object involved in the link that is bound to the source object. The target object must be of the type identified by the source property or a subtype. + When or are null. + When is an empty string. + + + + Called to complete the . + The results returned by the query operation. + + object. + The type returned by the query. + When is null. + When did not originate from this instance. -or- When the method was previously called. + When an error is raised either during execution of the request or when it converts the contents of the response message into objects. + When the data service returns an HTTP 404: Resource Not Found error. + + + Called to complete the . + The DataServiceResult object that indicates the result of the batch operation. + An that represents the status of the asynchronous operation. + + + Called to complete the asynchronous operation of retrieving a binary data stream. + An instance of which contains the response stream along with its metadata. + The result from the operation that contains the binary data stream. + + + Called to complete the operation. + The response to the load operation. + An that represents the status of the asynchronous operation. + + + Called to complete the operation. + A object that indicates the result of the batch operation. + An that represents the status of the asynchronous operation. + + + Gets a list of all the resources currently being tracked by the . + A list of objects that represent all the resources currently being tracked by the . + + + Sends a request to the data service to retrieve the next page of data in a paged query result. + The response that contains the next page of data in the query result. + A object that represents the next page of data to return from the data service. + The type returned by the query. + + + Sends a request to the data service to execute a specific URI. + The results of the query operation. + The URI to which the query request will be sent. The URI may be any valid data service URI. Can contain $ query parameters. + The type that the query returns. + When a response is not received from a request to the . + When is null. + When is not a valid URI for the data service. + When an error is raised either during execution of the request or when it converts the contents of the response message into objects. + When the data service returns an HTTP 404: Resource Not Found error. + + + + + + + Submits a group of queries as a batch to the data service. + The response to the batch operation. + Array of objects that make up the queries. + + + Gets the for the supplied entity object. + The instance for the , or null if an does not exist for the object. + The object for which to return the entity descriptor. + + + Gets the for a specific link that defines the relationship between two entities. + The instance for the specified relationship, or null if a does not exist for the relationship. + Source object in the link + The name of the navigation property on the object that returns the related object. + The related entity. + + + Gets a URI of the location of .edmx metadata. + A URI that identifies the location of the metadata description, in .edmx format, for the data service identified by the base URI that is passed to the constructor. + + + Gets the binary data stream that belongs to the specified entity. + An instance of that represents the response. + The entity that has the binary stream to retrieve. + The is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary stream. + + + Gets binary data stream for the specified entity by using the specified message headers. + An instance of that represents the response. + The entity that has the binary stream to retrieve. + Instance of class that contains settings for the HTTP request message. + + is null.-or- is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related binary stream. + + + Gets the binary data stream that belongs to the specified entity, by using the specified Content-Type message header. + An instance of that represents the response. + The entity that has the binary data stream to retrieve. + The Content-Type of the binary data stream requested from the data service, specified in the Accept header. + + is null.-or- is null. + The is not tracked by this .-or-The is in the state.-or-The is not a Media Link Entry and does not have a related stream. + + + Gets a named binary data stream that belongs to the specified entity, by using the specified Content-Type message header. + An instance of that represents the response. + The entity that has the binary data stream to retrieve. + The name of the binary stream to request. + Instance of class that contains settings for the HTTP request message. + + + Gets the URI that is used to return a binary data stream. + The read URI of the binary data stream. + The entity that has a related binary stream to retrieve. + If the entity specified is null. + The is not tracked by this . + + + Gets the URI that is used to return a named binary data stream. + The read URI of the binary data stream. + The entity that has the named binary data stream to retrieve. + The name of the stream to request. + + + Gets or sets whether the properties read from the type must be mapped to properties on the client-side type. + A Boolean value that indicates whether the properties read from the type must be mapped to properties on the client-side type. + + + Gets or sets whether an exception is raised when a 404 error (resource not found) is returned by the data service. + When set to true, the client library returns an empty set instead of raising a when the data service returns an HTTP 404: Resource Not Found error. + + + Gets the collection of all associations or links currently being tracked by the object. + A collection of objects that represent all associations or links current being tracked by the current being tracked by the object. + + + Loads deferred content for a specified property from the data service. + The response to the load operation. + The entity that contains the property to load. + The name of the property of the specified entity to load. + + + Loads the next page of related entities from the data service by using the supplied query continuation object. + The response that contains the next page of related entity data. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entities to load from the data service. + When is in the or state. + + + Loads the next page of related entities from the data service by using the supplied generic query continuation object. + The response that contains the next page of related entity data. + The entity that contains the property to load. + The name of the property of the specified entity to load. + A object that represents the next page of related entities to load from the data service. + Element type of collection to load. + When is in the or state. + + + Loads a page of related entities by using the supplied next link URI. + An instance of that contains the results of the request. + The entity that contains the property to load. + The name of the property of the specified entity to load. + The URI that is used to load the next results page. + When is in a or state. + + + Gets the maximum version of the Open Data Protocol (OData) that the client is allowed to use. + The maximum version of OData that the client is allowed to use. + + + Gets or sets the synchronization option for receiving entities from a data service. + One of the members of the enumeration. + + + Occurs after entity data has been completely read into the entity object. + + + Gets or sets the delegate method that is used to resolve the entity set URI when the value cannot be determined from an edit-link or self-link URI. + A value that is a delegate that takes a and returns a value. + + + Gets or sets a function to override the default type resolution strategy used by the client library when you send entities to a data service. + Returns a string that contains the name of the . + + + Gets or sets a function that is used to override the default type resolution option that is used by the client library when receiving entities from a data service. + A function delegate that identifies an override function that is used to override the default type resolution option that is used by the client library. + + + Saves the changes that the is tracking to storage. + A that contains status, headers, and errors that result from the call to . + + + Saves the changes that the is tracking to storage. + A that contains status, headers, and errors that result from the call to . + A member of the enumeration that specifies the materialization option. + + + Gets or sets the values that are used by the method. + The current options for the save changes operation. + + + Occurs when a new has been created. + + + + Notifies the that a new link exists between the objects specified and that the link is represented by the property specified by the parameter. + The source object for the new link. + The property on the source object that identifies the target object of the new link. + The child object involved in the new link that is to be initialized by calling this method. The target object must be a subtype of the type identified by the parameter. If is set to null, the call represents a delete link operation. + When , or are null. + When the specified link already exists.-or-When the objects supplied as or are in the or state.-or-When is not a navigation property that defines a reference to a single related object. + + + Sets a binary data stream for the specified entity, with the specified headers in the request message. + The entity to which the binary stream belongs. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + An instance of the class that contains settings for the HTTP request message. + Any of the parameters supplied to the method are null. + The is not being tracked by this instance. -or-The has the applied. + + + Sets a binary data stream that belongs to the specified entity, with the specified Content-Type and Slug headers in the request message. + The entity to which the data stream belongs. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + The Content-Type header value for the request message. + The Slug header value for the request message. + Any of the parameters supplied to the method are null. + The is not being tracked by this instance. -or-The entity has the applied. + + + Sets a named binary data stream that belongs to the specified entity, with the specified headers in the request message. + The entity to which the binary stream belongs. + The name of the binary stream to save. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + An instance of the class that contains settings for the HTTP request message. + + + The entity to which the binary stream belongs. + The name of the binary stream to save. + The from which to read the binary data. + A value that determines whether the data stream is closed when the method is completed. + The Content-Type header value for the request message. + + + Gets or sets the time-out option (in seconds) that is used for the underlying HTTP request to the data service. + An integer that indicates the time interval (in seconds) before time-out of a service request. + + + Test retrieval of an entity being tracked by the by reference to the URI of the entity. + If an entity is found at , the entity is returned in the out parameter and true is returned. If no entity is found, false is returned. + The URI of the tracked entity to be retrieved. + The entity to be retrieved. + The type of the entity. + When is null. + + + Retrieves the canonical URI associated with the specified entity, if available. + Returns true if the canonical URI is returned in the out parameter. If the specified entity is not tracked by the or is in the added state, no URI is available and false is returned. + The entity identified by the . + The URI of the entity. + When is null. + + + Gets or sets the URI used to indicate what type scheme is used by the service. + A object that contains the type scheme. + + + Changes the state of the specified object in the to . + The tracked entity to be assigned to the state. + When is null. + When is in the state. + + + Gets or sets a Boolean value that indicates whether to use post tunneling. + A Boolean value that indicates whether to use post tunneling. + + + Occurs after an entity has been fully serialized into XML in a request message. + + + An abstract class that represents a single query request to WCF Data Services.  + + + Asynchronously sends a request to execute the data service query. + An object that is used to track the status of the asynchronous operation. + Delegate to invoke when results are available for client consumption. + User-defined state object passed to the callback. + + + Called to complete the asynchronous operation of executing a data service query. + An that contains the results of the query operation. + The result from the operation that contains the query results. + When the data service returns an HTTP 404: Resource Not Found error. + + + Executes the query against the data service. + An that contains the results of the query operation. + When the data service returns an HTTP 404: Resource Not Found error. + + + Represents an expression that contains the query to the data service. + An object that represents the query. + + + Represents the query provider instance. + An representing the data source provider. + + + Gets the object that can be used to iterate through the collection returned by the query. + An enumerator over the query results. + + + Represents a single query request to a data service. + Type of results returned by the query. + + + Creates a new with the query option set in the URI generated by the returned query. + A new query that includes the requested query option appended to the URI of the supplied query + The string value that contains the name of the query string option to add. + The object that contains the value of the query string option. + + + Starts an asynchronous network operation that executes the query represented by this object instance. + An that represents the status of the asynchronous operation. + The delegate to invoke when the operation completes. + User defined object used to transfer state between the start of the operation and the callback defined by . + + + Returns the type of the object used in the template to create the instance. + Returns representing the type used in the template when the query is created. + + + Ends an asynchronous query request to a data service. + Returns an that contains the results of the query operation. + The pending asynchronous query request. + + + Executes the query and returns the results as a collection that implements IEnumerable. + An in which represents the type of the query results. + When the data service returns an HTTP 404: Resource Not Found error. + + + Expands a query to include entities from a related entity set in the query response, where the related entity is of a specific type in a type hierarchy. + Returns a that with the expand option included. + A lambda expression that indicates the navigation property that returns the entity set to include in the expanded query. + Target type of the last property on the expand path. + + + Expands a query to include entities from a related entity set in the query response. + A new query that includes the requested $expand query option appended to the URI of the supplied query. + The expand path in the format Orders/Order_Details. + + + Represents an expression containing the query to the data service. + A object representing the query. + + + Executes the query and returns the results as a collection. + A typed enumerator over the results in which represents the type of the query results. + + + Requests that the count of all entities in the entity set be returned inline with the query results. + A new object that has the inline count option set. + + + Represents the query provider instance. + A representing the data source provider. + + + Get the URI for the query. + The URI of the request. + + + Executes the query and returns the results as a collection. + An enumerator over the query results. + + + Represents the URI of the query to the data service. + A URI as string that represents the query to the data service for this instance. + + + Encapsulates a URI that returns the next page of a paged WCF Data Services query result. + + + Gets the URI that is used to return the next page of data from a paged query result. + A URI that returns the next page of data. + + + Returns the next link URI as a string. + A string representation of the next link URI. + + + Encapsulates a URI that returns the next page of a paged WCF Data Services query result.  + The type of continuation token. + + + Exception that indicates an error occurred loading the property value from the data service. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.The string value that the contains error message. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. The string value that contains the error message. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. The inner exception object. + + + Initializes a new instance of the class. + The string value that contains the error message. + The inner exception object. + The object. + + + Gets the that indicates the exception results. + A object that indicates the exception results. + + + Represents request objects submitted as a batch to WCF Data Services. + + + Gets the type of object submitted as a batch to the data service. + Type object. + + + Gets the URI of the request object submitted to a data service. + URI of the request object. + + + Represents request objects submitted as a batch to the data service. + An entity type. + + + Initializes a new instance of the class. + The URI object that contains the request string. + + + Gets the type of the object used to create the instance. + A value that indicates the type of data returned. + + + Gets the URI object that contains the request string. + A object that contains the request string. + + + Represents the URI of the query to the data service. + The requested URI as a value. + + + Represents additional metadata that is included in a request message to WCF Data Services. + + + Creates a new instance of the class. + + + Gets or sets the Accept header of the request message. + The value of the Accept header. + + + Gets or sets the Content-Type header of the request message. + The value of the Content-Type header. + + + Gets the headers in the request message. + The headers in the request message. + + + Gets or sets the value of the Slug header of the request message. + A value that is the Slug header of the request. + + + Represents the error thrown if the data service returns a response code less than 200 or greater than 299, or the top-level element in the response is <error>. This class cannot be inherited. + + + Initializes a new instance of the class with a system-supplied message that describes the error. + + + Initializes a new instance of the class with a specified message that describes the error. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.The error message text. + + + Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. + The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture. + The exception that is the cause of the current exception. If the parameter is not null, the current exception is raised in a catch block that handles the inner exception. + + + Initializes a new instance of the class. + Error message text. + Exception object that contains the inner exception. + + object. + + + Gets the response as a object. + A object. + + + Represents the response to operations sent to the data service as a result of calling . + + + The headers from an HTTP response associated with a batch request. + An object containing the name-value pairs of an HTTP response. + + + The status code from an HTTP response associated with a batch request. + An integer based on status codes defined in Hypertext Transfer Protocol. + + + Gets an enumerator that enables retrieval of responses to operations being tracked by objects within the . + An enumerator over the response received from the service. + + + Gets a Boolean value that indicates whether the response contains multiple results. + A Boolean value that indicates whether the response contains multiple results. + + + Gets an enumerator that enables retrieval of responses to operations being tracked by objects within the . + An enumerator over the response received from the service. + + + Determines whether the client requests that the data service return inserted or updated entity data as an entry in the response message. + + + The Prefer header is not included in the request, which is the default behavior. + + + Requests that the data service returns a copy of the inserted or changed entity as an entry in the body of the response message. + + + Request that the data service not return a copy of the inserted or changed entity as an entry in the body of the response message. + + + Represents the URL of a binary resource stream. + + + Gets or sets the MIME Content-Type of the binary resource stream. + The Content-Type value for the stream. + + + Gets or sets the URI used to edit the binary resource stream. + The URI used to edit the stream. + + + The eTag value that is used to determine concurrency for a binary resource stream. + The value of the eTag header for the stream. + + + The name of the binary resource stream. + The name of the binary resource stream. + + + Occurs when a property value changes. + + + The URI that returns the binary resource stream. + The URI of the stream. + + + Represents a response from WCF Data Services that contains binary data as a stream. + + + Gets the Content-Disposition header field for the response stream. + The contents of the Content-Disposition header field. + + + Gets the content type of the response stream. + The content type of the response stream. + + + Releases all resources used by the current instance of the class. + + + Gets the collection of headers from the response. + The headers collection from the response message as a object. + + + Gets the binary property data from the data service as a binary stream. + The stream that contains the binary property data. + When the is already disposed. + + + Abstract class from which is derived. + + + When overridden in a derived class, gets the state of the object at the time this instance was constructed. + An of the object returned at the time this instance was constructed. + + + Encapsulates the arguments of a delegate + + + The context that is associated with the entity object that has changed. + The context that is tracking the changed object. + + + The entity object that has changed. + The changed object. + + + The name of the property on the entity object that references the target object. + The name of the changed property. + + + The object that is currently referenced by the changed property on the entity object. + The current value that references a target entity. + + + The entity set of the source object. + An entity set name. + + + The entity set to which the target entity object belongs + An entity set name. + + + Encapsulates the arguments of a delegate. + + + A value that indicates how the collection was changed. + A value that indicates how the collection was changed. + + + The that has changed. + A reference to the collection that has changed. + + + The associated with the that has changed. + The context associated with the collection that has changed + + + The navigation property on the source object that references the collection that has changed. + The navigation property name. + + + The source object that references the target object in the collection by using a navigation property. + The source object. + + + The entity set of the source object. + An entity set name. + + + The entity object in the collection that has changed. + The changed entity object in the collection. + + + The entity set name of the object in the collection. + An entity set name. + + + Description of modifications done to entities by operations returned in a . + + + Gets or sets the URI that modifies the entity. + The edit link URI for the entity resource. + + + Gets or sets the URI that modifies the binary property data of the entity. + The property contains the edit-media link URI for the Media Resource that is associated with the entity, which is a Media Link Entry. + + + Gets the entity that contains the update data. + An object that contains update data. + + + Gets an eTag value that indicates the state of data targeted for update since the last call to . + A string value that indicates the state of data. + + + Gets or sets the URI that is the identity value of the entity. + The property corresponds to the identity element of the entry that represents the entity in the Atom response. + + + Returns a collection of links that are the relationships in which the entity participates. + A of objects that represents links in which the entity participates. + + + + Gets the parent entity that is related to the entity. + An object that is the parent entity in the relationship link. + + + Gets the name of the property of the entity that is a navigation property and links to the parent entity. + The name of the parent property. + + + Gets or sets the URI that accesses the binary property data of the entity. + A URI that accesses the binary property as a stream. + + + Gets or sets the URI that is used to return the entity resource. + A URI that returns the entity. + + + Gets or sets the name of the type in the data source to which the entity is mapped. + A string that is the name of the data type. + + + Returns a collection of named binary data streams that belong to the entity. + A of objects that are the named binary data streams that belong to the entity. + + + Gets the eTag for the media resource associated with an entity that is a media link entry. + A string value that indicates the state of data. + + + Represents the enumeration that identifies the state of an entity being tracked by the . + + + The entity was detached since the last call to . + + + The entity is unchanged since the last call to . + + + The entity was added since the last call to . + + + The entity was deleted since the last call to . + + + The entity was modified since the last call to . + + + Holds information about a ServiceFunction. + + + Initializes a new instance of the class. + + + IODataRequestMessage interface implementation. + + + Returns the value of the header with the given name. + Returns the value of the header with the given name. + Name of the header. + + + Gets the stream to be used to write the request payload. + Stream to which the request payload needs to be written. + + + Returns the collection of request headers. + + + Returns the underlying HttpWebRequest + + + Returns the method for this request. + + + Sets the value of the header with the given name. + Name of the header. + Value of the header. + + + Returns the request url. + + + Response from an Invoke call. + + + Consutrcts an InvokeResponse identical to an OperationResponse. + The HTTP headers. + + + Provides a description of modifications done to entities by operations returned in a . + + + A source entity in a link returned by a . + + . + + + The identifier property of the source entity in a link returned by a . + The string identifier of an identity property in a source entity. + + + The source entity in a link returned by a . + + . + + + Encapsulates information about a link, or relationship, between entities. + + + + The name of the link. + The name of the link. + + + The URI that is the navigation property representation of the link. + The navigation link URI. + + + Signifies that the specified class is to be treated as a media link entry. + + + Creates a new instance of . + A string value that identifies the property that holds media data. + + + The name of the property on the class that holds the media, usually binary data. + A string value that identifies the property that holds media data. + + + Determines the synchronization option for sending or receiving entities to or from WCF Data Services.  + + + Append new entities only. Existing entities or their original values will not be modified. No client-side changes are lost in this merge. This is the default behavior. + + + All current values on the client are overwritten with current values from the data service regardless of whether they have been changed on the client. + + + Current values that have been changed on the client are not modified, but any unchanged values are updated with current values from the data service. No client-side changes are lost in this merge. + + + Objects are always loaded from persisted storage. Any property changes made to objects in the object context are overwritten by the data source values. + + + Annotates a property on a class that has been annotated with the . + + + Creates a new instance of the MimeTypePropertyAttribute. + A string that contains the name of the new property attribute. + A string that contains the Mime type of the new property attribute. + + + Gets the name of the MimeTypePropertyAttribute. + A string that contains the name of the property attribute. + + + Gets the Mime type of the MimeTypePropertyAttribute + A string that contains the Mime type of the property attribute. + + + Holds information about a service operation. + + + Identifies the service operation. + + + The URI to invoke the service operation. + + + Human-readable description of the service operation. + + + Represents a parameter passed to a service action, service function or a service operation. when it is Executed. + + + Instantiates a new OperationParameter + The name of the operation parameter. + The value of the operation parameter. + + + The name of the operation parameter. + + + The value of the operation parameter. + + + Abstract class that represents the response of a single query or create, update, or delete operation. + + + Gets error thrown by the operation. + An object that contains the error. + + + When overridden in a derived class, contains the HTTP response headers associated with a single operation. + + object that contains name value pairs of headers and values. + + + When overridden in a derived class, gets or sets the HTTP response code associated with a single operation. + Integer value that contains response code. + + + Represents the responses to a . + + + Gets a object containing the URI that is used to retrieve the next results page. + An object containing the URI that is used to return the next results page. + + + Gets a object that contains the URI that is used to retrieve the next page of related entities in the specified collection. + A continuation object that points to the next page for the collection. + The collection of related objects being loaded. + The type of the items in the collection. + + + Gets a object containing the URI that is used to retrieve the next page of related entities in the specified collection. + A continuation object that points to the next page for the collection. + The collection of related objects being loaded. + + + Executes the and returns items. + The enumerator to a collection of items. + + + + + + Gets the that generates the items. + A object. + + + The server result set count value from a query, if the query has requested the value. + The return value can be either a zero or positive value equal to the number of entities in the set on the server. + Thrown when the count tag is not found in the response stream. + + + Represents the responses to a . + + + + Gets a object that contains the URI that is used to retrieve the next results page. + An object that contains the URI that is used to return the next results page. + + + Executes the and gets items. + An enumerator to a collection of items. + + + The server result set count value from a query, if the query has requested the value. + The return value can be either zero or a positive value equal to the number of entities in the set on the server. + + + Gives access to the entity and an object that represents an Atom entry. is used with the and events. + + + Gets the base URI base of the entry or feed. + Returns . + + + Gets an entry or feed data represented as an . + + + + + + Gets the object representation of data returned from the property. + + representation of the property. + + + Indicates change options when is called. + + + Pending changes are saved by using multiple requests to the server, but the operation stops on the first failure (default). + + + All pending changes are saved in a single batch request. + + + Pending changes are saved by using multiple requests to the server, and the operation continues after an error occurs. + + + Pending updates are made by replacing all values of the entity in the data source with values from the updated entity. + + + + + + Event args for the SendingRequest2 event. + + + The request header collection. + + + Returns true if this event is fired for request within a batch, otherwise returns false. + + + The web request reported through this event. The handler may modify or replace it. + + + Used with the event to provide access to the instance that the client is about to send to the target data service. + + + Gets or sets the instance about to be sent by the client library to the data service. + + . + + + Gets the collection protocol headers that are associated with the request to the data service. + A collection of protocol headers that are associated with the request. + + + Contains information about a named binary resource stream. + + + The that represents the entity to which the named resource stream belongs. + The of the entity. + + + The that represents the binary resource stream. + Returns . + + + Determines whether changes that are made to a are tracked. + + + Changes made to items in the are not tracked automatically by the client. + + + Changes to items in the are automatically tracked by the client. + + + Represents a parameter associated with a service operation or a service function. + + + Instantiates a new UriOperationParameter + The name of the uri operation parameter. + The value of the uri operation parameter. + + + Asynchronously loads items into the collection, when it represents the navigation property of an entity. + When the collection does not belong to a parent entity.-or-When the parent entity is not tracked by the .-or-When a previous call to is not yet complete. + + + Asynchronously loads the collection by executing a . + The that, when executed, returns the entities to load into the collection. + When query is null or not a . + When a previous call to is not yet complete. + + + Occurs when an asynchronous load operation completes. + + + Loads the next page of data into the collection. + A value that is true when the has a continuation token; otherwise false. + + + Gets a value that indicates the type of HTTP implementation to use when accessing the data service. + A value that indicates the HTTP implementation to use when accessing the data service. + + + Gets or sets whether default credentials are used to authenticate requests to the data service. + true when the default credentials should be used; otherwise false. + + + Executes the query and returns the result as a collection. + An enumerator over the results of the query. + + + Represents the type of HTTP implementation to use when accessing the data service. + + + The client automatically determines the HTTP implementation to use. This is the recommended setting. + + + A Silverlight client HTTP implementation is used. + + + An XMLHTTP implementation is used. + + + Used as the class for the event. + + + Gets the response to an asynchronous load operation. + A that represents the response to a load operation. + + + Marks a class as an entity type in WCF Data Services. + + + Creates a new instance of the class. + + + Denotes the key property or properties of an entity. + + + Initializes a new instance of the class. + The string that contains name of the key attribute. + + + Initializes a new instance of the class. + An array of string values that contain key attribute names. + + + Gets the names of key attributes. + String value that contains names of key attributes. + + + Represents the versions of the Open Data Protocol (OData) that the data service may support. + + + Version 1 of the OData protocol. + + + Version 2 of the OData protocol. + + + Version 3 of the OData protocol. + + + Indicates the entity set to which a client data service class belongs. + + + Creates a new instance of the . + The entity set to which the class belongs. + + + Gets the entity set to which the class belongs. + The entity set as string value. + + + Indicates that a class that is an entity type has a default binary data stream. + + + Creates a new instance of the class. + + + Indicates that a class that is an entity type has a related named binary stream. + + + Creates a new instance of the class. + The name of a binary stream that belongs to the attributed entity. + + + The name of a binary stream that belongs to the attributed entity. + The name of the binary stream. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/RUS/Microsoft.Data.Services.Client.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/RUS/Microsoft.Data.Services.Client.SL.resources.dll new file mode 100644 index 0000000..88063ad Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.Data.Services.Client.5.0.0/lib/sl4/RUS/Microsoft.Data.Services.Client.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0.nupkg b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0.nupkg new file mode 100644 index 0000000..4147d37 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0.nupkg differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0.nuspec b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0.nuspec new file mode 100644 index 0000000..90b3547 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0.nuspec @@ -0,0 +1,20 @@ + + + + Microsoft.WindowsAzure.ConfigurationManager + 1.8.0.0 + Windows Azure Configuration Manager + Microsoft + Microsoft + http://go.microsoft.com/fwlink/?LinkID=235167 + http://go.microsoft.com/fwlink/?linkid=252450 + http://www.gravatar.com/avatar/c24270713c524575b0308e05c7e9ff61?s=128 + true + Windows Azure Configuration Manager provides unified API to load the configuration settings regardless of where the application is hosted - whether on-premises or in a Cloud Service. + Windows Azure Configuration Manager provides unified API to load the configuration settings regardless of where the application is hosted - whether on-premises or in a Cloud Service. + Microsoft, Azure, Configuration, Configuration Manager, Cloud windowsazureofficial + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0/lib/net35-full/Microsoft.WindowsAzure.Configuration.dll b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0/lib/net35-full/Microsoft.WindowsAzure.Configuration.dll new file mode 100644 index 0000000..c5e7797 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/Microsoft.WindowsAzure.ConfigurationManager.1.8.0.0/lib/net35-full/Microsoft.WindowsAzure.Configuration.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/System.Spatial.5.0.0.nupkg b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/System.Spatial.5.0.0.nupkg new file mode 100644 index 0000000..a2964e6 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/System.Spatial.5.0.0.nupkg differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/System.Spatial.5.0.0.nuspec b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/System.Spatial.5.0.0.nuspec new file mode 100644 index 0000000..1fbb754 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/System.Spatial.5.0.0.nuspec @@ -0,0 +1,20 @@ + + + + System.Spatial + 5.0.0 + System.Spatial + Microsoft Corporation + Microsoft Corporation + http://www.microsoft.com/download/en/details.aspx?id=29306 + http://go.microsoft.com/fwlink/?LinkId=220868 + http://static.tumblr.com/hgchgxz/9ualgdf98/icon.png + true + Contains a number of classes and canonical methods that facilitate geography and geometry spatial operations. Targets .NET 4.0 or Silverlight 4.0. Localized for CHS, CHT, DEU, ESN, FRA, ITA, JPN, KOR and RUS. + wcf data services odata odatalib edmlib spatial ado.net ef entity framework open protocol wcfds wcfdataservices dataservices + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/CHS/System.Spatial.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/CHS/System.Spatial.resources.dll new file mode 100644 index 0000000..b8d25f6 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/CHS/System.Spatial.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/CHT/System.Spatial.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/CHT/System.Spatial.resources.dll new file mode 100644 index 0000000..53be4a7 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/CHT/System.Spatial.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/DEU/System.Spatial.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/DEU/System.Spatial.resources.dll new file mode 100644 index 0000000..530ea9a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/DEU/System.Spatial.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/ESN/System.Spatial.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/ESN/System.Spatial.resources.dll new file mode 100644 index 0000000..bb0755e Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/ESN/System.Spatial.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/FRA/System.Spatial.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/FRA/System.Spatial.resources.dll new file mode 100644 index 0000000..8b908b5 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/FRA/System.Spatial.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/ITA/System.Spatial.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/ITA/System.Spatial.resources.dll new file mode 100644 index 0000000..f8dd917 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/ITA/System.Spatial.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/JPN/System.Spatial.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/JPN/System.Spatial.resources.dll new file mode 100644 index 0000000..f82bf48 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/JPN/System.Spatial.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/KOR/System.Spatial.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/KOR/System.Spatial.resources.dll new file mode 100644 index 0000000..18405c2 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/KOR/System.Spatial.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/RUS/System.Spatial.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/RUS/System.Spatial.resources.dll new file mode 100644 index 0000000..bd9c214 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/RUS/System.Spatial.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/System.Spatial.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/System.Spatial.dll new file mode 100644 index 0000000..6a8ee88 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/System.Spatial.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/System.Spatial.xml b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/System.Spatial.xml new file mode 100644 index 0000000..ad436e8 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/net40/System.Spatial.xml @@ -0,0 +1,1100 @@ + + + + System.Spatial + + + + Coordinate System Reference + + + Default Geography Reference (SRID 4326, WGS84) + + + Default Geometry Reference + + + The coordinate system ID according to the EPSG, or NULL if this is not an EPSG coordinate system. + + + Equals overload + True if equal + The other CoordinateSystem + + + Equals overload + True if equal + The other CoordinateSystem + + + Gets or creates a Geography coordinate system with the ID, or the default if null is given. + The coordinate system + The coordinate system id, according to the EPSG. Null indicates the default should be returned + + + Gets or creates a Geometry coordinate system with the ID, or the default if null is given. + The coordinate system + The coordinate system id, according to the EPSG. Null indicates the default should be returned + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + The coordinate system Id, no matter what scheme is used. + + + The Name of the Reference + + + Display the coordinate system for debugging + String representation of the coordinate system, for debugging + + + To a string that can be used with extended WKT. + String representation in the form of SRID=#; + + + Represents the extensions to formatters. + + + Writes the specified formatter. + A string value of the formatted object. + The formatter. + The spatial object. + + + Writes the specified formatter. + A string value of the formatted object. + The formatter. + The spatial object. + + + Represents a base class of geography shapes. + + + Initializes a new instance of the class. + The coordinate system of this geography. + The implementation that created this instance. + + + Gets the coordinate system of the geography. + The coordinate system of the geography. + + + Gets a value that indicates whether the geography is empty. + true if the geography is empty; otherwise, false. + + + Sends the current spatial object to the given pipeline. + The spatial pipeline. + + + Represents the collection of geographies. + + + Initializes a new instance of the class. + The coordinate system of this geography collection. + The implementation that created this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Gets the collection of geographies. + The collection of geographies. + + + Gets the hash code. + The hash code. + + + Represents the curve of geography. + + + Initializes a new instance of the class. + The coordinate system of this geography curve. + The implementation that created this instance. + + + Represents the full globe of geography. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Gets the hash code. + The hash code. + + + Represents a geography line string consist of an array of geo points. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets the point list. + The point list. + + + Represents the multi curve of geography. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Geography Multi-LineString + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Line Strings + + + Geography Multi-Point + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Points + + + Geography Multi-Polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Polygons + + + Geography MultiSurface + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Extension methods for the Geography operations + + + Geography Distance + The operation result + Operand 1 + Operand 2 + + + This is definition of the GeographyPipeline api + + + Initializes a new instance of the class. + + + Begin drawing a figure + Next position + + + Begin drawing a spatial object + The spatial type of the object + + + Ends the current figure + + + Ends the current spatial object + + + Draw a point in the specified coordinate + Next position + + + Setup the pipeline for reuse + + + Set the coordinate system + The CoordinateSystem + + + Geography point + + + Create a empty point + CoordinateSystem + The implementation that created this instance. + + + Creates the specified latitude. + The GeographyPoint that was created + The latitude. + The longitude. + + + Creates the specified latitude. + The GeographyPoint that was created + The latitude. + The longitude. + The z dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + The latitude. + The longitude. + The z dimension. + The m dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + the coordinate system to use + The latitude. + The longitude. + The z dimension. + The m dimension. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Latitude + + + Longitude + + + Nullable M + + + Nullable Z + + + Geography polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Set of rings + + + Represents one position in the Geographyal coordinate system + + + Creates a GeographyPosition from components + lattitude portion of position + longitude portion of position + + + Creates a GeographyPosition from components + lattitude portion of position + longitude portion of position + altitude portion of position + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Computes a hash code + a hash code + + + lattitude portion of position + + + longitude portion of position + + + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + first position + second position + + + Inequality comparison + true if left is not equal to right + first position + other position + + + Formats this instance to a readable string + The string representation of this instance + + + altitude portion of position + + + Geography Surface + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Formatter for Json Object + + + Initializes a new instance of the class. + + + Creates the implementation of the formatter + Returns the created GeoJsonFormatter implementation + + + Read from the source + The source json object + The spatial type to read + + + Convert spatial value to a Json Object + The json object + The spatial value + + + Base class of Geography Shapes + + + Geometry Constructor + The CoordinateSystem + The implementation that created this instance. + + + SRID of this instance of geometry + + + Is Geometry Empty + + + Sends the current spatial object to the given pipeline + The spatial pipeline + + + Geometry Collection + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Returns the Geometry instances in this collection. + + + Get Hashcode + The hashcode + + + Geometry Curve + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Geometry Line String + + + Constructor + CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Point list + + + Geometry MultiCurve + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Geometry Multi-LineString + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Line Strings + + + Geometry Multi-Point + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Points + + + Geometry Multi-Polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Polygons + + + + Extension methods for the Geography operations + + + Geometry Distance + The operation result + Operand 1 + Operand 2 + + + This is definition of the GeometryPipeline api + + + Initializes a new instance of the class. + + + Begin drawing a figure + Next position + + + Begin drawing a spatial object + The spatial type of the object + + + Ends the current figure + + + Ends the current spatial object + + + Draw a point in the specified coordinate + Next position + + + Setup the pipeline for reuse + + + Set the coordinate system + The CoordinateSystem + + + Geometry Point + + + Empty Point constructor + CoordinateSystem + The implementation that created this instance. + + + Creates the specified latitude. + The GeographyPoint that was created + The x dimension. + The y dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + The x dimension. + The y dimension. + The z dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + The x dimension. + The y dimension. + The z dimension. + The m dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + the coordinate system to use + The x dimension. + The y dimension. + The z dimension. + The m dimension. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Nullable M + + + Latitude + + + Longitude + + + Nullable Z + + + Geometry polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Set of rings + + + Represents one position in the Geometry coordinate system + + + Creates a GeometryPosition from components + x portion of position + y portion of position + + + Creates a GeometryPosition from components + x portion of position + y portion of position + altitude portion of position + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Computes a hash code + a hash code + + + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + first position + second position + + + Inequality comparison + true if left is not equal to right + first position + other position + + + Formats this instance to a readable string + The string representation of this instance + + + x portion of position + + + y portion of position + + + altitude portion of position + + + + The object to move spatial types to and from the GML format + + + Initializes a new instance of the class. + The implementation that created this instance. + + + Creates the implementation of the formatter + Returns the created GmlFormatter implementation + + + Provides access to the geography objects that this object constructs + + + Gets the geography object that was constructed most recently. + + + Fires when the provider constructs a geography object. + + + Provides access to the geometry objects that this object constructs + + + Gets the geometry object that was constructed most recently. + + + Fires when the provider constructs a geometry object. + + + + The spatial interface + + + Coordinate System + + + Is spatial type empty + + + the exception thrown on an unsuccessful parsing of the serialized format. + + + Creates a ParseErrorException + + + Creates a ParseErrorException from serialized data. + The instance that hosld the serialized object data about the exception being thrown. + The instance that contains contextual information about the source or destination. + + + Creates a ParseErrorException from a message + The message about the exception. + + + Creates a ParseErrorException from a message and previous exception + The message about the exception. + The exception that preceeded this one. + + + Creates Geometry or Geography instances from spatial data pipelines. + + + Initializes a new instance of the class. + The geography input. + The geometry input. + The geography output. + The geometry output. + + + Gets the geography object that was constructed most recently. + + + Gets the geometry object that was constructed most recently. + + + Creates an implementation of the builder + Returns the created SpatialBuilder implementation + + + Fires when the provider constructs a geography object. + + + Fires when the provider constructs a geometry object. + + + Base class for all Spatial Formats + The type of reader to be read from. + The type of reader to be read from. + + + Initializes a new instance of the <see cref="T:System.Spatial.SpatialFormatter`2" /> class. + The implementation that created this instance. + + + Creates the writerStream. + The writerStream that was created. + The stream that should be written to. + + + Creates the builder that will be called by the parser to build the new type. + the builder that was created. + + + Parses the input, and produces the object + The input to be parsed. + The type of object to produce + + + Parses the input, and produces the object + The input to be parsed. + The pipeline to call during reading. + The type of object to produce + + + Read the Geography from the readerStream and call the appopriate pipeline methods + The stream to read from. + The pipeline to call based on what is read. + + + Read the Geometry from the readerStream and call the appopriate pipeline methods + The stream to read from. + The pipeline to call based on what is read. + + + Creates a valid format from the spatial object. + The object that the format is being created for. + The stream to write the formatted object to. + + + Class responsible for knowing how to create the Geography and Geometry builders for a particular implemenation of Spatial types + + + Initializes a new instance of the class. + + + Creates a SpatialBuilder for this implemenation + The SpatialBuilder created. + + + Creates a Formatter for Json Object + The JsonObjectFormatter created + + + Creates a GmlFormatter for this implementation + The GmlFormatter created. + + + Creates a spatial Validator + The SpatialValidator created. + + + Creates a WellKnownTextSqlFormatter for this implementation + The WellKnownTextSqlFormatter created. + + + Creates a WellKnownTextSqlFormatter for this implementation + The WellKnownTextSqlFormatter created. + Controls the writing and reading of the Z and M dimension + + + Returns an instance of SpatialImplementation that is currently being used. + + + Property used to register Spatial operations implementation. + + + Class responsible for knowing how to perform operations for a particular implemenation of Spatial types + + + Initializes a new instance of the class. + + + Geography Distance + The operation result + Operand 1 + Operand 2 + + + Geometry Distance + The operation result + Operand 1 + Operand 2 + + + One link of a geospatial pipeline + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The geography chain. + The geometry chain. + + + Add the next pipeline + The last pipesegment in the chain, usually the one just created + the next pipleine + + + Gets the geography side of the pipeline. + + + Gets the geometry side of the pipeline. + + + + + Gets or sets the starting link. + The starting link. + + + Defines a list of allowed OpenGisTypes types. + + + Unknown + + + Point + + + Line String + + + Polygon + + + Multi-Point + + + Multi-Line-String + + + Multi-Polygon + + + Collection + + + Full Globe + + + This class provides a place to add extension methods that work with ISpatial + + + Allows the delegation of the call to the proper type (geography or Geometry) + The instance that will have SendTo called. + The pipeline that the instance will be sent to. + + + Base class for Spatial Type Validator implementations + + + Factory for creating the currently registered SpatialValidator implementation + The created SpatialValidator + + + The object to move spatial types to and from the WellKnownTextSql format + + + Initializes a new instance of the class. + The implementation that created this instance. + + + Creates the implementation of the formatter + Returns the created WellKnownTextSqlFormatter implementation + + + Creates the specified has Z. + The created WellKnownTextSqlFormatter. + Restricts the formatter to allow only two dimensions. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/CHS/System.Spatial.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/CHS/System.Spatial.SL.resources.dll new file mode 100644 index 0000000..52d0b54 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/CHS/System.Spatial.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/CHT/System.Spatial.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/CHT/System.Spatial.SL.resources.dll new file mode 100644 index 0000000..6e7f999 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/CHT/System.Spatial.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/DEU/System.Spatial.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/DEU/System.Spatial.SL.resources.dll new file mode 100644 index 0000000..56e527a Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/DEU/System.Spatial.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/ESN/System.Spatial.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/ESN/System.Spatial.SL.resources.dll new file mode 100644 index 0000000..4cfacc6 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/ESN/System.Spatial.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/FRA/System.Spatial.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/FRA/System.Spatial.SL.resources.dll new file mode 100644 index 0000000..45c560d Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/FRA/System.Spatial.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/ITA/System.Spatial.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/ITA/System.Spatial.SL.resources.dll new file mode 100644 index 0000000..7fd86f1 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/ITA/System.Spatial.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/JPN/System.Spatial.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/JPN/System.Spatial.SL.resources.dll new file mode 100644 index 0000000..9dd690f Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/JPN/System.Spatial.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/KOR/System.Spatial.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/KOR/System.Spatial.SL.resources.dll new file mode 100644 index 0000000..19a7f47 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/KOR/System.Spatial.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/RUS/System.Spatial.SL.resources.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/RUS/System.Spatial.SL.resources.dll new file mode 100644 index 0000000..5d7fbe3 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/RUS/System.Spatial.SL.resources.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/System.Spatial.SL.dll b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/System.Spatial.SL.dll new file mode 100644 index 0000000..8c081ff Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/System.Spatial.SL.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/System.Spatial.SL.xml b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/System.Spatial.SL.xml new file mode 100644 index 0000000..ad436e8 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/System.Spatial.5.0.0/lib/sl4/System.Spatial.SL.xml @@ -0,0 +1,1100 @@ + + + + System.Spatial + + + + Coordinate System Reference + + + Default Geography Reference (SRID 4326, WGS84) + + + Default Geometry Reference + + + The coordinate system ID according to the EPSG, or NULL if this is not an EPSG coordinate system. + + + Equals overload + True if equal + The other CoordinateSystem + + + Equals overload + True if equal + The other CoordinateSystem + + + Gets or creates a Geography coordinate system with the ID, or the default if null is given. + The coordinate system + The coordinate system id, according to the EPSG. Null indicates the default should be returned + + + Gets or creates a Geometry coordinate system with the ID, or the default if null is given. + The coordinate system + The coordinate system id, according to the EPSG. Null indicates the default should be returned + + + Returns a hash code for this instance. + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + The coordinate system Id, no matter what scheme is used. + + + The Name of the Reference + + + Display the coordinate system for debugging + String representation of the coordinate system, for debugging + + + To a string that can be used with extended WKT. + String representation in the form of SRID=#; + + + Represents the extensions to formatters. + + + Writes the specified formatter. + A string value of the formatted object. + The formatter. + The spatial object. + + + Writes the specified formatter. + A string value of the formatted object. + The formatter. + The spatial object. + + + Represents a base class of geography shapes. + + + Initializes a new instance of the class. + The coordinate system of this geography. + The implementation that created this instance. + + + Gets the coordinate system of the geography. + The coordinate system of the geography. + + + Gets a value that indicates whether the geography is empty. + true if the geography is empty; otherwise, false. + + + Sends the current spatial object to the given pipeline. + The spatial pipeline. + + + Represents the collection of geographies. + + + Initializes a new instance of the class. + The coordinate system of this geography collection. + The implementation that created this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Gets the collection of geographies. + The collection of geographies. + + + Gets the hash code. + The hash code. + + + Represents the curve of geography. + + + Initializes a new instance of the class. + The coordinate system of this geography curve. + The implementation that created this instance. + + + Represents the full globe of geography. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Gets the hash code. + The hash code. + + + Represents a geography line string consist of an array of geo points. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Determines whether this instance and the specified object have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The object to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Gets the hash code. + The hash code. + + + Gets the point list. + The point list. + + + Represents the multi curve of geography. + + + Initializes a new instance of the class. + The coordinate system of this instance. + The implementation that created this instance. + + + Geography Multi-LineString + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Line Strings + + + Geography Multi-Point + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Points + + + Geography Multi-Polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Polygons + + + Geography MultiSurface + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Extension methods for the Geography operations + + + Geography Distance + The operation result + Operand 1 + Operand 2 + + + This is definition of the GeographyPipeline api + + + Initializes a new instance of the class. + + + Begin drawing a figure + Next position + + + Begin drawing a spatial object + The spatial type of the object + + + Ends the current figure + + + Ends the current spatial object + + + Draw a point in the specified coordinate + Next position + + + Setup the pipeline for reuse + + + Set the coordinate system + The CoordinateSystem + + + Geography point + + + Create a empty point + CoordinateSystem + The implementation that created this instance. + + + Creates the specified latitude. + The GeographyPoint that was created + The latitude. + The longitude. + + + Creates the specified latitude. + The GeographyPoint that was created + The latitude. + The longitude. + The z dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + The latitude. + The longitude. + The z dimension. + The m dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + the coordinate system to use + The latitude. + The longitude. + The z dimension. + The m dimension. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Latitude + + + Longitude + + + Nullable M + + + Nullable Z + + + Geography polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Set of rings + + + Represents one position in the Geographyal coordinate system + + + Creates a GeographyPosition from components + lattitude portion of position + longitude portion of position + + + Creates a GeographyPosition from components + lattitude portion of position + longitude portion of position + altitude portion of position + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Computes a hash code + a hash code + + + lattitude portion of position + + + longitude portion of position + + + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + first position + second position + + + Inequality comparison + true if left is not equal to right + first position + other position + + + Formats this instance to a readable string + The string representation of this instance + + + altitude portion of position + + + Geography Surface + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Formatter for Json Object + + + Initializes a new instance of the class. + + + Creates the implementation of the formatter + Returns the created GeoJsonFormatter implementation + + + Read from the source + The source json object + The spatial type to read + + + Convert spatial value to a Json Object + The json object + The spatial value + + + Base class of Geography Shapes + + + Geometry Constructor + The CoordinateSystem + The implementation that created this instance. + + + SRID of this instance of geometry + + + Is Geometry Empty + + + Sends the current spatial object to the given pipeline + The spatial pipeline + + + Geometry Collection + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Returns the Geometry instances in this collection. + + + Get Hashcode + The hashcode + + + Geometry Curve + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Geometry Line String + + + Constructor + CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Point list + + + Geometry MultiCurve + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Geometry Multi-LineString + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Line Strings + + + Geometry Multi-Point + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Points + + + Geometry Multi-Polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Polygons + + + + Extension methods for the Geography operations + + + Geometry Distance + The operation result + Operand 1 + Operand 2 + + + This is definition of the GeometryPipeline api + + + Initializes a new instance of the class. + + + Begin drawing a figure + Next position + + + Begin drawing a spatial object + The spatial type of the object + + + Ends the current figure + + + Ends the current spatial object + + + Draw a point in the specified coordinate + Next position + + + Setup the pipeline for reuse + + + Set the coordinate system + The CoordinateSystem + + + Geometry Point + + + Empty Point constructor + CoordinateSystem + The implementation that created this instance. + + + Creates the specified latitude. + The GeographyPoint that was created + The x dimension. + The y dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + The x dimension. + The y dimension. + The z dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + The x dimension. + The y dimension. + The z dimension. + The m dimension. + + + Creates the specified latitude. + The GeographyPoint that was created + the coordinate system to use + The x dimension. + The y dimension. + The z dimension. + The m dimension. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Nullable M + + + Latitude + + + Longitude + + + Nullable Z + + + Geometry polygon + + + Constructor + The CoordinateSystem + The implementation that created this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Determines whether this instance and another specified geography instance have the same value. + true if the value of the value parameter is the same as this instance; otherwise, false. + The geography to compare to this instance. + + + Get Hashcode + The hashcode + + + Set of rings + + + Represents one position in the Geometry coordinate system + + + Creates a GeometryPosition from components + x portion of position + y portion of position + + + Creates a GeometryPosition from components + x portion of position + y portion of position + altitude portion of position + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Equality comparison + true if each pair of coordinates is equal + other position + + + Computes a hash code + a hash code + + + arbitrary measure associated with a position + + + Equality comparison + true if each pair of coordinates is equal + first position + second position + + + Inequality comparison + true if left is not equal to right + first position + other position + + + Formats this instance to a readable string + The string representation of this instance + + + x portion of position + + + y portion of position + + + altitude portion of position + + + + The object to move spatial types to and from the GML format + + + Initializes a new instance of the class. + The implementation that created this instance. + + + Creates the implementation of the formatter + Returns the created GmlFormatter implementation + + + Provides access to the geography objects that this object constructs + + + Gets the geography object that was constructed most recently. + + + Fires when the provider constructs a geography object. + + + Provides access to the geometry objects that this object constructs + + + Gets the geometry object that was constructed most recently. + + + Fires when the provider constructs a geometry object. + + + + The spatial interface + + + Coordinate System + + + Is spatial type empty + + + the exception thrown on an unsuccessful parsing of the serialized format. + + + Creates a ParseErrorException + + + Creates a ParseErrorException from serialized data. + The instance that hosld the serialized object data about the exception being thrown. + The instance that contains contextual information about the source or destination. + + + Creates a ParseErrorException from a message + The message about the exception. + + + Creates a ParseErrorException from a message and previous exception + The message about the exception. + The exception that preceeded this one. + + + Creates Geometry or Geography instances from spatial data pipelines. + + + Initializes a new instance of the class. + The geography input. + The geometry input. + The geography output. + The geometry output. + + + Gets the geography object that was constructed most recently. + + + Gets the geometry object that was constructed most recently. + + + Creates an implementation of the builder + Returns the created SpatialBuilder implementation + + + Fires when the provider constructs a geography object. + + + Fires when the provider constructs a geometry object. + + + Base class for all Spatial Formats + The type of reader to be read from. + The type of reader to be read from. + + + Initializes a new instance of the <see cref="T:System.Spatial.SpatialFormatter`2" /> class. + The implementation that created this instance. + + + Creates the writerStream. + The writerStream that was created. + The stream that should be written to. + + + Creates the builder that will be called by the parser to build the new type. + the builder that was created. + + + Parses the input, and produces the object + The input to be parsed. + The type of object to produce + + + Parses the input, and produces the object + The input to be parsed. + The pipeline to call during reading. + The type of object to produce + + + Read the Geography from the readerStream and call the appopriate pipeline methods + The stream to read from. + The pipeline to call based on what is read. + + + Read the Geometry from the readerStream and call the appopriate pipeline methods + The stream to read from. + The pipeline to call based on what is read. + + + Creates a valid format from the spatial object. + The object that the format is being created for. + The stream to write the formatted object to. + + + Class responsible for knowing how to create the Geography and Geometry builders for a particular implemenation of Spatial types + + + Initializes a new instance of the class. + + + Creates a SpatialBuilder for this implemenation + The SpatialBuilder created. + + + Creates a Formatter for Json Object + The JsonObjectFormatter created + + + Creates a GmlFormatter for this implementation + The GmlFormatter created. + + + Creates a spatial Validator + The SpatialValidator created. + + + Creates a WellKnownTextSqlFormatter for this implementation + The WellKnownTextSqlFormatter created. + + + Creates a WellKnownTextSqlFormatter for this implementation + The WellKnownTextSqlFormatter created. + Controls the writing and reading of the Z and M dimension + + + Returns an instance of SpatialImplementation that is currently being used. + + + Property used to register Spatial operations implementation. + + + Class responsible for knowing how to perform operations for a particular implemenation of Spatial types + + + Initializes a new instance of the class. + + + Geography Distance + The operation result + Operand 1 + Operand 2 + + + Geometry Distance + The operation result + Operand 1 + Operand 2 + + + One link of a geospatial pipeline + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. + The geography chain. + The geometry chain. + + + Add the next pipeline + The last pipesegment in the chain, usually the one just created + the next pipleine + + + Gets the geography side of the pipeline. + + + Gets the geometry side of the pipeline. + + + + + Gets or sets the starting link. + The starting link. + + + Defines a list of allowed OpenGisTypes types. + + + Unknown + + + Point + + + Line String + + + Polygon + + + Multi-Point + + + Multi-Line-String + + + Multi-Polygon + + + Collection + + + Full Globe + + + This class provides a place to add extension methods that work with ISpatial + + + Allows the delegation of the call to the proper type (geography or Geometry) + The instance that will have SendTo called. + The pipeline that the instance will be sent to. + + + Base class for Spatial Type Validator implementations + + + Factory for creating the currently registered SpatialValidator implementation + The created SpatialValidator + + + The object to move spatial types to and from the WellKnownTextSql format + + + Initializes a new instance of the class. + The implementation that created this instance. + + + Creates the implementation of the formatter + Returns the created WellKnownTextSqlFormatter implementation + + + Creates the specified has Z. + The created WellKnownTextSqlFormatter. + Restricts the formatter to allow only two dimensions. + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/WindowsAzure.Storage.1.7.0.0/WindowsAzure.Storage.1.7.0.0.nupkg b/ApressBook SourceCode/ApressCloudService/packages/WindowsAzure.Storage.1.7.0.0/WindowsAzure.Storage.1.7.0.0.nupkg new file mode 100644 index 0000000..037a870 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/WindowsAzure.Storage.1.7.0.0/WindowsAzure.Storage.1.7.0.0.nupkg differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/WindowsAzure.Storage.1.7.0.0/WindowsAzure.Storage.1.7.0.0.nuspec b/ApressBook SourceCode/ApressCloudService/packages/WindowsAzure.Storage.1.7.0.0/WindowsAzure.Storage.1.7.0.0.nuspec new file mode 100644 index 0000000..8035146 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/WindowsAzure.Storage.1.7.0.0/WindowsAzure.Storage.1.7.0.0.nuspec @@ -0,0 +1,29 @@ + + + + WindowsAzure.Storage + 1.7.0.0 + Windows Azure Storage + Microsoft + Microsoft + http://go.microsoft.com/fwlink/?LinkId=235170 + http://go.microsoft.com/fwlink/?LinkId=235168 + http://www.gravatar.com/avatar/c24270713c524575b0308e05c7e9ff61?s=128 + true + This client library enables working with the Windows Azure storage services which include the blob service for storing binary and text data, the table service for storing structured non-relational data, and the queue service for storing messages that may be accessed by a client. + A client library for working with Windows Azure storage services including blobs, tables, and queues. + Microsoft, Azure, Storage, Table, Blob, Queue, Scalable, windowsazureofficial + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressCloudService/packages/WindowsAzure.Storage.1.7.0.0/lib/net35-full/Microsoft.WindowsAzure.StorageClient.dll b/ApressBook SourceCode/ApressCloudService/packages/WindowsAzure.Storage.1.7.0.0/lib/net35-full/Microsoft.WindowsAzure.StorageClient.dll new file mode 100644 index 0000000..a2760d4 Binary files /dev/null and b/ApressBook SourceCode/ApressCloudService/packages/WindowsAzure.Storage.1.7.0.0/lib/net35-full/Microsoft.WindowsAzure.StorageClient.dll differ diff --git a/ApressBook SourceCode/ApressCloudService/packages/repositories.config b/ApressBook SourceCode/ApressCloudService/packages/repositories.config new file mode 100644 index 0000000..f0d11a7 --- /dev/null +++ b/ApressBook SourceCode/ApressCloudService/packages/repositories.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/23cfa220-cd52-4201-a2b7-4d0fa2975690.gz b/ApressBook SourceCode/ApressDemo/$tf/0/23cfa220-cd52-4201-a2b7-4d0fa2975690.gz new file mode 100644 index 0000000..f6438e1 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/23cfa220-cd52-4201-a2b7-4d0fa2975690.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/2c69b1f0-56c6-450e-a8db-6209056506d2.gz b/ApressBook SourceCode/ApressDemo/$tf/0/2c69b1f0-56c6-450e-a8db-6209056506d2.gz new file mode 100644 index 0000000..0c2beca Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/2c69b1f0-56c6-450e-a8db-6209056506d2.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/2e5ab7c0-e1b6-45b6-969f-0f391b7644c3.gz b/ApressBook SourceCode/ApressDemo/$tf/0/2e5ab7c0-e1b6-45b6-969f-0f391b7644c3.gz new file mode 100644 index 0000000..9f94bdb Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/2e5ab7c0-e1b6-45b6-969f-0f391b7644c3.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/32b8f2b0-6939-4fd0-94aa-817318284231.gz b/ApressBook SourceCode/ApressDemo/$tf/0/32b8f2b0-6939-4fd0-94aa-817318284231.gz new file mode 100644 index 0000000..92cdc45 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/32b8f2b0-6939-4fd0-94aa-817318284231.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/3a004020-832d-4d42-b25f-71d5bdc5bcce.gz b/ApressBook SourceCode/ApressDemo/$tf/0/3a004020-832d-4d42-b25f-71d5bdc5bcce.gz new file mode 100644 index 0000000..0e055ad Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/3a004020-832d-4d42-b25f-71d5bdc5bcce.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/4ffa9a90-8abb-41e8-8f59-122c00e5a9c8.gz b/ApressBook SourceCode/ApressDemo/$tf/0/4ffa9a90-8abb-41e8-8f59-122c00e5a9c8.gz new file mode 100644 index 0000000..9828d8f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/4ffa9a90-8abb-41e8-8f59-122c00e5a9c8.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/5c24b7b0-7361-4c09-bd70-150d8fe2296d.gz b/ApressBook SourceCode/ApressDemo/$tf/0/5c24b7b0-7361-4c09-bd70-150d8fe2296d.gz new file mode 100644 index 0000000..2a3db03 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/5c24b7b0-7361-4c09-bd70-150d8fe2296d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/5df4e250-facb-4285-98c1-5379b3a47e11.gz b/ApressBook SourceCode/ApressDemo/$tf/0/5df4e250-facb-4285-98c1-5379b3a47e11.gz new file mode 100644 index 0000000..7c0a5d7 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/5df4e250-facb-4285-98c1-5379b3a47e11.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/6607cb00-5936-4fc2-8bcd-50c6c922d1e5.gz b/ApressBook SourceCode/ApressDemo/$tf/0/6607cb00-5936-4fc2-8bcd-50c6c922d1e5.gz new file mode 100644 index 0000000..9a76fc2 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/6607cb00-5936-4fc2-8bcd-50c6c922d1e5.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/6b24ea70-0fca-4c88-b39b-afba9c3f9fca.gz b/ApressBook SourceCode/ApressDemo/$tf/0/6b24ea70-0fca-4c88-b39b-afba9c3f9fca.gz new file mode 100644 index 0000000..4e9083a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/6b24ea70-0fca-4c88-b39b-afba9c3f9fca.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/6d2ed570-ed06-460a-a3cc-438c8c433119.gz b/ApressBook SourceCode/ApressDemo/$tf/0/6d2ed570-ed06-460a-a3cc-438c8c433119.gz new file mode 100644 index 0000000..1e13ba8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/6d2ed570-ed06-460a-a3cc-438c8c433119.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/6d950750-32d1-4747-83cf-5af305af82e4.gz b/ApressBook SourceCode/ApressDemo/$tf/0/6d950750-32d1-4747-83cf-5af305af82e4.gz new file mode 100644 index 0000000..88686e5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/6d950750-32d1-4747-83cf-5af305af82e4.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/78517940-58ce-42a9-9e58-965fbd636d70.gz b/ApressBook SourceCode/ApressDemo/$tf/0/78517940-58ce-42a9-9e58-965fbd636d70.gz new file mode 100644 index 0000000..6feec1c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/78517940-58ce-42a9-9e58-965fbd636d70.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/85e150f0-6773-4517-83fd-69a3abd541cd.gz b/ApressBook SourceCode/ApressDemo/$tf/0/85e150f0-6773-4517-83fd-69a3abd541cd.gz new file mode 100644 index 0000000..7a88acf Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/85e150f0-6773-4517-83fd-69a3abd541cd.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/8af66d80-214d-414c-a3d1-74b1614cb6d0.gz b/ApressBook SourceCode/ApressDemo/$tf/0/8af66d80-214d-414c-a3d1-74b1614cb6d0.gz new file mode 100644 index 0000000..529fdd3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/8af66d80-214d-414c-a3d1-74b1614cb6d0.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/98666c20-ca8f-4ed5-9fad-89bb5d1282da.gz b/ApressBook SourceCode/ApressDemo/$tf/0/98666c20-ca8f-4ed5-9fad-89bb5d1282da.gz new file mode 100644 index 0000000..c7ec58d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/98666c20-ca8f-4ed5-9fad-89bb5d1282da.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/9ac75ea0-2a94-49ee-9f58-e5df761e39c0.gz b/ApressBook SourceCode/ApressDemo/$tf/0/9ac75ea0-2a94-49ee-9f58-e5df761e39c0.gz new file mode 100644 index 0000000..0c2abe0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/9ac75ea0-2a94-49ee-9f58-e5df761e39c0.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/a4ccf6e0-51bd-442f-bb80-f9aed9d6b8c9.gz b/ApressBook SourceCode/ApressDemo/$tf/0/a4ccf6e0-51bd-442f-bb80-f9aed9d6b8c9.gz new file mode 100644 index 0000000..7b483e5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/a4ccf6e0-51bd-442f-bb80-f9aed9d6b8c9.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/a4e3f6d0-75ff-451e-abed-daf430401ef6.gz b/ApressBook SourceCode/ApressDemo/$tf/0/a4e3f6d0-75ff-451e-abed-daf430401ef6.gz new file mode 100644 index 0000000..d71f913 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/a4e3f6d0-75ff-451e-abed-daf430401ef6.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/a5d8be70-1fe1-4088-8222-80a953518c85.gz b/ApressBook SourceCode/ApressDemo/$tf/0/a5d8be70-1fe1-4088-8222-80a953518c85.gz new file mode 100644 index 0000000..39918c4 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/a5d8be70-1fe1-4088-8222-80a953518c85.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/cafefe60-e06b-42bd-9ba9-73df5c39021e.gz b/ApressBook SourceCode/ApressDemo/$tf/0/cafefe60-e06b-42bd-9ba9-73df5c39021e.gz new file mode 100644 index 0000000..aabdcc7 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/cafefe60-e06b-42bd-9ba9-73df5c39021e.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/d689ed30-1593-4740-be20-02e16d99e390.gz b/ApressBook SourceCode/ApressDemo/$tf/0/d689ed30-1593-4740-be20-02e16d99e390.gz new file mode 100644 index 0000000..7f8c0f2 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/d689ed30-1593-4740-be20-02e16d99e390.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/dc202a50-c886-481b-953d-1ec5d6d70894.gz b/ApressBook SourceCode/ApressDemo/$tf/0/dc202a50-c886-481b-953d-1ec5d6d70894.gz new file mode 100644 index 0000000..b353343 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/dc202a50-c886-481b-953d-1ec5d6d70894.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/defa87f0-150c-4e9c-9919-b56f39048d3c.gz b/ApressBook SourceCode/ApressDemo/$tf/0/defa87f0-150c-4e9c-9919-b56f39048d3c.gz new file mode 100644 index 0000000..4f3913b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/defa87f0-150c-4e9c-9919-b56f39048d3c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/df2d3c90-a6f4-4ac8-8f4f-faa4966a4411.gz b/ApressBook SourceCode/ApressDemo/$tf/0/df2d3c90-a6f4-4ac8-8f4f-faa4966a4411.gz new file mode 100644 index 0000000..0eb9b20 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/df2d3c90-a6f4-4ac8-8f4f-faa4966a4411.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/dfa6d620-d775-492d-9d58-00fbc494f86a.gz b/ApressBook SourceCode/ApressDemo/$tf/0/dfa6d620-d775-492d-9d58-00fbc494f86a.gz new file mode 100644 index 0000000..86b6315 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/dfa6d620-d775-492d-9d58-00fbc494f86a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/e21f9c30-3a96-41cd-9c96-f0e8cdd0965f.gz b/ApressBook SourceCode/ApressDemo/$tf/0/e21f9c30-3a96-41cd-9c96-f0e8cdd0965f.gz new file mode 100644 index 0000000..4044101 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/e21f9c30-3a96-41cd-9c96-f0e8cdd0965f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/e26d0950-f7a1-47ea-bbd8-57a5d6a61cca.gz b/ApressBook SourceCode/ApressDemo/$tf/0/e26d0950-f7a1-47ea-bbd8-57a5d6a61cca.gz new file mode 100644 index 0000000..88686e5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/e26d0950-f7a1-47ea-bbd8-57a5d6a61cca.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/f0818f30-187d-410f-a8ee-1706f8a58a0d.gz b/ApressBook SourceCode/ApressDemo/$tf/0/f0818f30-187d-410f-a8ee-1706f8a58a0d.gz new file mode 100644 index 0000000..831d4c3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/f0818f30-187d-410f-a8ee-1706f8a58a0d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/f64b05c0-0b19-4289-96c4-ed28c3bf4c2e.gz b/ApressBook SourceCode/ApressDemo/$tf/0/f64b05c0-0b19-4289-96c4-ed28c3bf4c2e.gz new file mode 100644 index 0000000..8980568 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/f64b05c0-0b19-4289-96c4-ed28c3bf4c2e.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/0/f85ed3a0-cd42-462c-99ee-189821b2496a.gz b/ApressBook SourceCode/ApressDemo/$tf/0/f85ed3a0-cd42-462c-99ee-189821b2496a.gz new file mode 100644 index 0000000..6fb0162 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/0/f85ed3a0-cd42-462c-99ee-189821b2496a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/01da1cb1-7c82-4adb-a225-ba4ec9dfb279.gz b/ApressBook SourceCode/ApressDemo/$tf/1/01da1cb1-7c82-4adb-a225-ba4ec9dfb279.gz new file mode 100644 index 0000000..702849a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/01da1cb1-7c82-4adb-a225-ba4ec9dfb279.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/0981a751-356c-4bdb-8a2c-c06753073067.gz b/ApressBook SourceCode/ApressDemo/$tf/1/0981a751-356c-4bdb-8a2c-c06753073067.gz new file mode 100644 index 0000000..f58a96d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/0981a751-356c-4bdb-8a2c-c06753073067.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/11fe2801-3859-4469-8306-76c8640f9ae0.gz b/ApressBook SourceCode/ApressDemo/$tf/1/11fe2801-3859-4469-8306-76c8640f9ae0.gz new file mode 100644 index 0000000..d591dc3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/11fe2801-3859-4469-8306-76c8640f9ae0.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/1755b4a1-7315-4cda-97d3-74e65a1984f7.gz b/ApressBook SourceCode/ApressDemo/$tf/1/1755b4a1-7315-4cda-97d3-74e65a1984f7.gz new file mode 100644 index 0000000..08c94e3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/1755b4a1-7315-4cda-97d3-74e65a1984f7.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/1b780751-c285-442b-b77b-5a7e8a1236bc.gz b/ApressBook SourceCode/ApressDemo/$tf/1/1b780751-c285-442b-b77b-5a7e8a1236bc.gz new file mode 100644 index 0000000..de221f6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/1b780751-c285-442b-b77b-5a7e8a1236bc.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/21169a01-566f-459f-942b-fa572992d95b.gz b/ApressBook SourceCode/ApressDemo/$tf/1/21169a01-566f-459f-942b-fa572992d95b.gz new file mode 100644 index 0000000..4810e4d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/21169a01-566f-459f-942b-fa572992d95b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/370157c1-057f-44d3-84cb-685996b2d086.gz b/ApressBook SourceCode/ApressDemo/$tf/1/370157c1-057f-44d3-84cb-685996b2d086.gz new file mode 100644 index 0000000..80fb730 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/370157c1-057f-44d3-84cb-685996b2d086.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/3c1c2181-16c4-49ca-8750-f8ee2856ce70.gz b/ApressBook SourceCode/ApressDemo/$tf/1/3c1c2181-16c4-49ca-8750-f8ee2856ce70.gz new file mode 100644 index 0000000..c951f16 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/3c1c2181-16c4-49ca-8750-f8ee2856ce70.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/3cdccb01-e9e9-46f8-8cd4-2a831126c413.gz b/ApressBook SourceCode/ApressDemo/$tf/1/3cdccb01-e9e9-46f8-8cd4-2a831126c413.gz new file mode 100644 index 0000000..47865cd Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/3cdccb01-e9e9-46f8-8cd4-2a831126c413.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/48437171-5b41-4e50-b196-0cf31c52e7f1.gz b/ApressBook SourceCode/ApressDemo/$tf/1/48437171-5b41-4e50-b196-0cf31c52e7f1.gz new file mode 100644 index 0000000..8c016c3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/48437171-5b41-4e50-b196-0cf31c52e7f1.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/5f079041-28ca-4a98-ab79-54b4a27f4deb.gz b/ApressBook SourceCode/ApressDemo/$tf/1/5f079041-28ca-4a98-ab79-54b4a27f4deb.gz new file mode 100644 index 0000000..d932f3a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/5f079041-28ca-4a98-ab79-54b4a27f4deb.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/6739d5f1-f339-4473-80e3-3716a1506987.gz b/ApressBook SourceCode/ApressDemo/$tf/1/6739d5f1-f339-4473-80e3-3716a1506987.gz new file mode 100644 index 0000000..b4e459c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/6739d5f1-f339-4473-80e3-3716a1506987.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/767283f1-fa64-4dea-bf2c-0a9fd9cfd238.gz b/ApressBook SourceCode/ApressDemo/$tf/1/767283f1-fa64-4dea-bf2c-0a9fd9cfd238.gz new file mode 100644 index 0000000..15308dc Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/767283f1-fa64-4dea-bf2c-0a9fd9cfd238.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/769534c1-1e32-4e3e-8763-c17fccc5d0bf.gz b/ApressBook SourceCode/ApressDemo/$tf/1/769534c1-1e32-4e3e-8763-c17fccc5d0bf.gz new file mode 100644 index 0000000..6dc5707 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/769534c1-1e32-4e3e-8763-c17fccc5d0bf.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/864df3a1-aeee-4f2b-a364-568251e442d6.gz b/ApressBook SourceCode/ApressDemo/$tf/1/864df3a1-aeee-4f2b-a364-568251e442d6.gz new file mode 100644 index 0000000..4e3bbb6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/864df3a1-aeee-4f2b-a364-568251e442d6.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/8d9b2d61-8112-48df-bed6-39deb8044c3c.gz b/ApressBook SourceCode/ApressDemo/$tf/1/8d9b2d61-8112-48df-bed6-39deb8044c3c.gz new file mode 100644 index 0000000..71c21e6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/8d9b2d61-8112-48df-bed6-39deb8044c3c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/91c64491-dc55-4ea7-80cc-182a9efa3281.gz b/ApressBook SourceCode/ApressDemo/$tf/1/91c64491-dc55-4ea7-80cc-182a9efa3281.gz new file mode 100644 index 0000000..97d692a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/91c64491-dc55-4ea7-80cc-182a9efa3281.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/97272061-8c9e-4cea-aea6-bb3580bebfec.gz b/ApressBook SourceCode/ApressDemo/$tf/1/97272061-8c9e-4cea-aea6-bb3580bebfec.gz new file mode 100644 index 0000000..4810e4d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/97272061-8c9e-4cea-aea6-bb3580bebfec.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/a325ce61-4c1b-4e75-a35c-837ef931d4df.gz b/ApressBook SourceCode/ApressDemo/$tf/1/a325ce61-4c1b-4e75-a35c-837ef931d4df.gz new file mode 100644 index 0000000..f580326 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/a325ce61-4c1b-4e75-a35c-837ef931d4df.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/c1686511-71c6-4c28-a5cd-6ea1a21a8b6d.gz b/ApressBook SourceCode/ApressDemo/$tf/1/c1686511-71c6-4c28-a5cd-6ea1a21a8b6d.gz new file mode 100644 index 0000000..6fdc2fb Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/c1686511-71c6-4c28-a5cd-6ea1a21a8b6d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/c9cb44d1-eef1-4ff0-a298-6499ee933b6c.gz b/ApressBook SourceCode/ApressDemo/$tf/1/c9cb44d1-eef1-4ff0-a298-6499ee933b6c.gz new file mode 100644 index 0000000..9ddce9d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/c9cb44d1-eef1-4ff0-a298-6499ee933b6c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/cf9b6fc1-9149-4004-9250-36c85ba9acda.gz b/ApressBook SourceCode/ApressDemo/$tf/1/cf9b6fc1-9149-4004-9250-36c85ba9acda.gz new file mode 100644 index 0000000..d5da557 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/cf9b6fc1-9149-4004-9250-36c85ba9acda.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/dacc5591-1b51-4f77-9311-30a84d186f9f.gz b/ApressBook SourceCode/ApressDemo/$tf/1/dacc5591-1b51-4f77-9311-30a84d186f9f.gz new file mode 100644 index 0000000..71c15a0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/dacc5591-1b51-4f77-9311-30a84d186f9f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/dc48b301-d23e-44bc-9ace-addd0d847b88.gz b/ApressBook SourceCode/ApressDemo/$tf/1/dc48b301-d23e-44bc-9ace-addd0d847b88.gz new file mode 100644 index 0000000..9789233 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/dc48b301-d23e-44bc-9ace-addd0d847b88.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/e1c6c3f1-1389-4a77-892a-acab322cf491.gz b/ApressBook SourceCode/ApressDemo/$tf/1/e1c6c3f1-1389-4a77-892a-acab322cf491.gz new file mode 100644 index 0000000..4857be7 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/e1c6c3f1-1389-4a77-892a-acab322cf491.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/f5454df1-0337-4153-9d6c-e2f9c897c429.gz b/ApressBook SourceCode/ApressDemo/$tf/1/f5454df1-0337-4153-9d6c-e2f9c897c429.gz new file mode 100644 index 0000000..7a7171d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/f5454df1-0337-4153-9d6c-e2f9c897c429.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/1/f5ec55c1-1f84-4eed-b7c5-a97d5af0b295.gz b/ApressBook SourceCode/ApressDemo/$tf/1/f5ec55c1-1f84-4eed-b7c5-a97d5af0b295.gz new file mode 100644 index 0000000..cc22eaf Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/1/f5ec55c1-1f84-4eed-b7c5-a97d5af0b295.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/002438da-2f56-4da3-a20b-aa54f93c244d.gz b/ApressBook SourceCode/ApressDemo/$tf/10/002438da-2f56-4da3-a20b-aa54f93c244d.gz new file mode 100644 index 0000000..9e5d681 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/002438da-2f56-4da3-a20b-aa54f93c244d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/0c50ce7a-fff0-43a9-b4c8-a72f702c4e5f.gz b/ApressBook SourceCode/ApressDemo/$tf/10/0c50ce7a-fff0-43a9-b4c8-a72f702c4e5f.gz new file mode 100644 index 0000000..c1f5a0e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/0c50ce7a-fff0-43a9-b4c8-a72f702c4e5f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/0d67f32a-ae11-4bf9-a105-374f153d2a9f.gz b/ApressBook SourceCode/ApressDemo/$tf/10/0d67f32a-ae11-4bf9-a105-374f153d2a9f.gz new file mode 100644 index 0000000..34c9542 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/0d67f32a-ae11-4bf9-a105-374f153d2a9f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/1e26eeea-dfb7-43df-b40e-4bdaa8b857e5.gz b/ApressBook SourceCode/ApressDemo/$tf/10/1e26eeea-dfb7-43df-b40e-4bdaa8b857e5.gz new file mode 100644 index 0000000..f58a6ae Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/1e26eeea-dfb7-43df-b40e-4bdaa8b857e5.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/30d31e2a-474d-4fcf-96bd-dbe11e2bb873.gz b/ApressBook SourceCode/ApressDemo/$tf/10/30d31e2a-474d-4fcf-96bd-dbe11e2bb873.gz new file mode 100644 index 0000000..85e6bf1 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/30d31e2a-474d-4fcf-96bd-dbe11e2bb873.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/3df70cfa-a599-468e-9376-4bbd51b22c59.gz b/ApressBook SourceCode/ApressDemo/$tf/10/3df70cfa-a599-468e-9376-4bbd51b22c59.gz new file mode 100644 index 0000000..f3aad98 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/3df70cfa-a599-468e-9376-4bbd51b22c59.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/4e54ca7a-57a4-49bd-8258-25989ad3a417.gz b/ApressBook SourceCode/ApressDemo/$tf/10/4e54ca7a-57a4-49bd-8258-25989ad3a417.gz new file mode 100644 index 0000000..53adcac Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/4e54ca7a-57a4-49bd-8258-25989ad3a417.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/6d92d9ea-74e3-4644-b154-2c5ef5244739.gz b/ApressBook SourceCode/ApressDemo/$tf/10/6d92d9ea-74e3-4644-b154-2c5ef5244739.gz new file mode 100644 index 0000000..e12a60b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/6d92d9ea-74e3-4644-b154-2c5ef5244739.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/6db78f3a-e4b8-4bf4-b162-0546f627189c.gz b/ApressBook SourceCode/ApressDemo/$tf/10/6db78f3a-e4b8-4bf4-b162-0546f627189c.gz new file mode 100644 index 0000000..56981cb Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/6db78f3a-e4b8-4bf4-b162-0546f627189c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/7344115a-4a5a-482b-978c-e3a573da428f.gz b/ApressBook SourceCode/ApressDemo/$tf/10/7344115a-4a5a-482b-978c-e3a573da428f.gz new file mode 100644 index 0000000..4d19e2f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/7344115a-4a5a-482b-978c-e3a573da428f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/7bf3512a-a89f-4fec-8d0b-e0bfad66ea41.gz b/ApressBook SourceCode/ApressDemo/$tf/10/7bf3512a-a89f-4fec-8d0b-e0bfad66ea41.gz new file mode 100644 index 0000000..ec7a703 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/7bf3512a-a89f-4fec-8d0b-e0bfad66ea41.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/821df24a-482b-4eb9-be08-4beae7e13f3c.gz b/ApressBook SourceCode/ApressDemo/$tf/10/821df24a-482b-4eb9-be08-4beae7e13f3c.gz new file mode 100644 index 0000000..7f387e0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/821df24a-482b-4eb9-be08-4beae7e13f3c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/84b280aa-0b92-4637-8544-85283b6de9dc.gz b/ApressBook SourceCode/ApressDemo/$tf/10/84b280aa-0b92-4637-8544-85283b6de9dc.gz new file mode 100644 index 0000000..6a4a2c4 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/84b280aa-0b92-4637-8544-85283b6de9dc.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/8d6ef52a-d798-496d-9b4d-f5e72bbfcd61.gz b/ApressBook SourceCode/ApressDemo/$tf/10/8d6ef52a-d798-496d-9b4d-f5e72bbfcd61.gz new file mode 100644 index 0000000..30da8e2 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/8d6ef52a-d798-496d-9b4d-f5e72bbfcd61.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/980ac0ea-34f7-4d03-a10d-37ba951422cc.gz b/ApressBook SourceCode/ApressDemo/$tf/10/980ac0ea-34f7-4d03-a10d-37ba951422cc.gz new file mode 100644 index 0000000..4d9440b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/980ac0ea-34f7-4d03-a10d-37ba951422cc.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/994f789a-d61b-4f93-9ac5-f1268ea0fdc9.gz b/ApressBook SourceCode/ApressDemo/$tf/10/994f789a-d61b-4f93-9ac5-f1268ea0fdc9.gz new file mode 100644 index 0000000..64966e9 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/994f789a-d61b-4f93-9ac5-f1268ea0fdc9.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/ab21fc2a-8055-4c6f-9fff-e87b178ff7b4.gz b/ApressBook SourceCode/ApressDemo/$tf/10/ab21fc2a-8055-4c6f-9fff-e87b178ff7b4.gz new file mode 100644 index 0000000..8d04376 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/ab21fc2a-8055-4c6f-9fff-e87b178ff7b4.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/be3017ca-d3fb-4f9b-ab17-77fad4af08c0.gz b/ApressBook SourceCode/ApressDemo/$tf/10/be3017ca-d3fb-4f9b-ab17-77fad4af08c0.gz new file mode 100644 index 0000000..deba5f6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/be3017ca-d3fb-4f9b-ab17-77fad4af08c0.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/ce61ff1a-2fac-4fdc-a07a-69a04bf84411.gz b/ApressBook SourceCode/ApressDemo/$tf/10/ce61ff1a-2fac-4fdc-a07a-69a04bf84411.gz new file mode 100644 index 0000000..8011dd0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/ce61ff1a-2fac-4fdc-a07a-69a04bf84411.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/cfd976ca-55d9-46c1-a0f9-5dc1189519d0.gz b/ApressBook SourceCode/ApressDemo/$tf/10/cfd976ca-55d9-46c1-a0f9-5dc1189519d0.gz new file mode 100644 index 0000000..b1526fa Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/cfd976ca-55d9-46c1-a0f9-5dc1189519d0.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/de20619a-9648-4eda-9bac-a47892f9360d.gz b/ApressBook SourceCode/ApressDemo/$tf/10/de20619a-9648-4eda-9bac-a47892f9360d.gz new file mode 100644 index 0000000..7b0f8fa Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/de20619a-9648-4eda-9bac-a47892f9360d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/10/e62da0ca-e0bc-41a4-8def-195c59991d08.gz b/ApressBook SourceCode/ApressDemo/$tf/10/e62da0ca-e0bc-41a4-8def-195c59991d08.gz new file mode 100644 index 0000000..29f5a75 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/10/e62da0ca-e0bc-41a4-8def-195c59991d08.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/20a46deb-8e61-4a6b-8925-d50d846d0f8c.gz b/ApressBook SourceCode/ApressDemo/$tf/11/20a46deb-8e61-4a6b-8925-d50d846d0f8c.gz new file mode 100644 index 0000000..39eda7f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/20a46deb-8e61-4a6b-8925-d50d846d0f8c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/30c29fab-b356-4d74-8984-70f1bb7bfc2e.gz b/ApressBook SourceCode/ApressDemo/$tf/11/30c29fab-b356-4d74-8984-70f1bb7bfc2e.gz new file mode 100644 index 0000000..132e669 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/30c29fab-b356-4d74-8984-70f1bb7bfc2e.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/418dc47b-e6fe-4ddf-9d1d-92f3e7d2a041.gz b/ApressBook SourceCode/ApressDemo/$tf/11/418dc47b-e6fe-4ddf-9d1d-92f3e7d2a041.gz new file mode 100644 index 0000000..934c419 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/418dc47b-e6fe-4ddf-9d1d-92f3e7d2a041.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/50b82e5b-c8bd-45c8-ae9a-8802a13e3343.gz b/ApressBook SourceCode/ApressDemo/$tf/11/50b82e5b-c8bd-45c8-ae9a-8802a13e3343.gz new file mode 100644 index 0000000..a8cfa0b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/50b82e5b-c8bd-45c8-ae9a-8802a13e3343.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/5846c7cb-b597-4a80-b9b8-ae10055876ea.gz b/ApressBook SourceCode/ApressDemo/$tf/11/5846c7cb-b597-4a80-b9b8-ae10055876ea.gz new file mode 100644 index 0000000..f520d1a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/5846c7cb-b597-4a80-b9b8-ae10055876ea.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/587bcc0b-c494-4090-90b4-b94b7cad643b.gz b/ApressBook SourceCode/ApressDemo/$tf/11/587bcc0b-c494-4090-90b4-b94b7cad643b.gz new file mode 100644 index 0000000..74c4cf6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/587bcc0b-c494-4090-90b4-b94b7cad643b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/5ecb8feb-9666-4268-aaf6-acd502bfc38a.gz b/ApressBook SourceCode/ApressDemo/$tf/11/5ecb8feb-9666-4268-aaf6-acd502bfc38a.gz new file mode 100644 index 0000000..c7ecbd6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/5ecb8feb-9666-4268-aaf6-acd502bfc38a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/63c3522b-b3ae-4f27-92d7-2f5efbf3ef55.gz b/ApressBook SourceCode/ApressDemo/$tf/11/63c3522b-b3ae-4f27-92d7-2f5efbf3ef55.gz new file mode 100644 index 0000000..978d175 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/63c3522b-b3ae-4f27-92d7-2f5efbf3ef55.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/63d0979b-ec63-49dc-8598-67076111bb16.gz b/ApressBook SourceCode/ApressDemo/$tf/11/63d0979b-ec63-49dc-8598-67076111bb16.gz new file mode 100644 index 0000000..25d1413 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/63d0979b-ec63-49dc-8598-67076111bb16.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/735c01bb-5db2-4e2a-9abf-7ff6e322eaae.gz b/ApressBook SourceCode/ApressDemo/$tf/11/735c01bb-5db2-4e2a-9abf-7ff6e322eaae.gz new file mode 100644 index 0000000..e038e20 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/735c01bb-5db2-4e2a-9abf-7ff6e322eaae.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/748e352b-0638-47a1-8929-2adcb696d683.gz b/ApressBook SourceCode/ApressDemo/$tf/11/748e352b-0638-47a1-8929-2adcb696d683.gz new file mode 100644 index 0000000..6af8341 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/748e352b-0638-47a1-8929-2adcb696d683.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/852b42bb-1b7d-48fc-84d2-fa1e00691141.gz b/ApressBook SourceCode/ApressDemo/$tf/11/852b42bb-1b7d-48fc-84d2-fa1e00691141.gz new file mode 100644 index 0000000..0f87c6c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/852b42bb-1b7d-48fc-84d2-fa1e00691141.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/865b03bb-2ccc-4442-a04a-ee2404370eab.gz b/ApressBook SourceCode/ApressDemo/$tf/11/865b03bb-2ccc-4442-a04a-ee2404370eab.gz new file mode 100644 index 0000000..4ce4204 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/865b03bb-2ccc-4442-a04a-ee2404370eab.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/8824ae0b-4ede-4cbd-8879-0268413499df.gz b/ApressBook SourceCode/ApressDemo/$tf/11/8824ae0b-4ede-4cbd-8879-0268413499df.gz new file mode 100644 index 0000000..145225a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/8824ae0b-4ede-4cbd-8879-0268413499df.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/9722049b-d282-4a9b-83ed-12fc8365eebf.gz b/ApressBook SourceCode/ApressDemo/$tf/11/9722049b-d282-4a9b-83ed-12fc8365eebf.gz new file mode 100644 index 0000000..9762175 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/9722049b-d282-4a9b-83ed-12fc8365eebf.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/98270c8b-4156-4b80-9e53-16cacf6532c4.gz b/ApressBook SourceCode/ApressDemo/$tf/11/98270c8b-4156-4b80-9e53-16cacf6532c4.gz new file mode 100644 index 0000000..af5712e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/98270c8b-4156-4b80-9e53-16cacf6532c4.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/9b68e4cb-dc79-4592-add3-fa95369b0997.gz b/ApressBook SourceCode/ApressDemo/$tf/11/9b68e4cb-dc79-4592-add3-fa95369b0997.gz new file mode 100644 index 0000000..f8327ed Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/9b68e4cb-dc79-4592-add3-fa95369b0997.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/9e9458db-6f8f-4474-ac87-2afca79e2c30.gz b/ApressBook SourceCode/ApressDemo/$tf/11/9e9458db-6f8f-4474-ac87-2afca79e2c30.gz new file mode 100644 index 0000000..7264bbf Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/9e9458db-6f8f-4474-ac87-2afca79e2c30.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/a0e3d3eb-ec31-4bc0-8ced-0ccca69607ea.gz b/ApressBook SourceCode/ApressDemo/$tf/11/a0e3d3eb-ec31-4bc0-8ced-0ccca69607ea.gz new file mode 100644 index 0000000..55d4db4 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/a0e3d3eb-ec31-4bc0-8ced-0ccca69607ea.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/c622970b-9aee-438e-9d10-e3e9a09dc7da.gz b/ApressBook SourceCode/ApressDemo/$tf/11/c622970b-9aee-438e-9d10-e3e9a09dc7da.gz new file mode 100644 index 0000000..31d2e25 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/c622970b-9aee-438e-9d10-e3e9a09dc7da.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/ce241f2b-2c27-4afb-9110-a8f633b2351b.gz b/ApressBook SourceCode/ApressDemo/$tf/11/ce241f2b-2c27-4afb-9110-a8f633b2351b.gz new file mode 100644 index 0000000..a7aac20 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/ce241f2b-2c27-4afb-9110-a8f633b2351b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/d3f2a49b-5abf-490a-bc1f-e77bdd36e431.gz b/ApressBook SourceCode/ApressDemo/$tf/11/d3f2a49b-5abf-490a-bc1f-e77bdd36e431.gz new file mode 100644 index 0000000..ab9e236 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/d3f2a49b-5abf-490a-bc1f-e77bdd36e431.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/d94d230b-6088-47a8-943c-75959724699d.gz b/ApressBook SourceCode/ApressDemo/$tf/11/d94d230b-6088-47a8-943c-75959724699d.gz new file mode 100644 index 0000000..ae15d0c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/d94d230b-6088-47a8-943c-75959724699d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/e234cc5b-5935-47a6-8e89-103c5b0b2ded.gz b/ApressBook SourceCode/ApressDemo/$tf/11/e234cc5b-5935-47a6-8e89-103c5b0b2ded.gz new file mode 100644 index 0000000..a525779 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/e234cc5b-5935-47a6-8e89-103c5b0b2ded.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/e2c4392b-e867-4b34-9525-cc382a714ac7.gz b/ApressBook SourceCode/ApressDemo/$tf/11/e2c4392b-e867-4b34-9525-cc382a714ac7.gz new file mode 100644 index 0000000..5a27b54 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/e2c4392b-e867-4b34-9525-cc382a714ac7.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/e4270b9b-9c37-4c66-93bd-7d6ed9659dbb.gz b/ApressBook SourceCode/ApressDemo/$tf/11/e4270b9b-9c37-4c66-93bd-7d6ed9659dbb.gz new file mode 100644 index 0000000..a22d627 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/e4270b9b-9c37-4c66-93bd-7d6ed9659dbb.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/11/ef7d4d3b-0ced-4ba9-b8be-5fecbc0bc59d.gz b/ApressBook SourceCode/ApressDemo/$tf/11/ef7d4d3b-0ced-4ba9-b8be-5fecbc0bc59d.gz new file mode 100644 index 0000000..d591dc3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/11/ef7d4d3b-0ced-4ba9-b8be-5fecbc0bc59d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/09ad72ec-9bc4-4424-8a46-9a3627d9bd3d.gz b/ApressBook SourceCode/ApressDemo/$tf/12/09ad72ec-9bc4-4424-8a46-9a3627d9bd3d.gz new file mode 100644 index 0000000..c915c4c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/09ad72ec-9bc4-4424-8a46-9a3627d9bd3d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/192ace6c-66e9-4f8d-9582-132b5764895d.gz b/ApressBook SourceCode/ApressDemo/$tf/12/192ace6c-66e9-4f8d-9582-132b5764895d.gz new file mode 100644 index 0000000..00dec5a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/192ace6c-66e9-4f8d-9582-132b5764895d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/2242c93c-4efe-4bc5-9262-f2c9b6e5fe9a.gz b/ApressBook SourceCode/ApressDemo/$tf/12/2242c93c-4efe-4bc5-9262-f2c9b6e5fe9a.gz new file mode 100644 index 0000000..9e7c2cf Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/2242c93c-4efe-4bc5-9262-f2c9b6e5fe9a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/36695f8c-dc97-43c8-aef1-a092e26c029c.gz b/ApressBook SourceCode/ApressDemo/$tf/12/36695f8c-dc97-43c8-aef1-a092e26c029c.gz new file mode 100644 index 0000000..7ea2ba0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/36695f8c-dc97-43c8-aef1-a092e26c029c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/4074b9bc-f929-4333-b894-9fa5c70cda64.gz b/ApressBook SourceCode/ApressDemo/$tf/12/4074b9bc-f929-4333-b894-9fa5c70cda64.gz new file mode 100644 index 0000000..c0e3c82 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/4074b9bc-f929-4333-b894-9fa5c70cda64.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/41aff23c-e5f2-4bdc-b074-0ee0b54229ae.gz b/ApressBook SourceCode/ApressDemo/$tf/12/41aff23c-e5f2-4bdc-b074-0ee0b54229ae.gz new file mode 100644 index 0000000..8de27b8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/41aff23c-e5f2-4bdc-b074-0ee0b54229ae.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/50eca31c-3026-40da-b691-e9066bd115fe.gz b/ApressBook SourceCode/ApressDemo/$tf/12/50eca31c-3026-40da-b691-e9066bd115fe.gz new file mode 100644 index 0000000..03f6461 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/50eca31c-3026-40da-b691-e9066bd115fe.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/557eeabc-9325-4df8-b834-d461091b2ff0.gz b/ApressBook SourceCode/ApressDemo/$tf/12/557eeabc-9325-4df8-b834-d461091b2ff0.gz new file mode 100644 index 0000000..1b6ba20 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/557eeabc-9325-4df8-b834-d461091b2ff0.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/58e9b6bc-7b7a-4b99-b72b-575125890c7b.gz b/ApressBook SourceCode/ApressDemo/$tf/12/58e9b6bc-7b7a-4b99-b72b-575125890c7b.gz new file mode 100644 index 0000000..96f9a72 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/58e9b6bc-7b7a-4b99-b72b-575125890c7b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/6dcd61cc-ff3a-4419-9873-87c1febbe53f.gz b/ApressBook SourceCode/ApressDemo/$tf/12/6dcd61cc-ff3a-4419-9873-87c1febbe53f.gz new file mode 100644 index 0000000..a04d5cb Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/6dcd61cc-ff3a-4419-9873-87c1febbe53f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/7d23748c-ba4b-4343-afde-a7a3c497fd7d.gz b/ApressBook SourceCode/ApressDemo/$tf/12/7d23748c-ba4b-4343-afde-a7a3c497fd7d.gz new file mode 100644 index 0000000..4bd421c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/7d23748c-ba4b-4343-afde-a7a3c497fd7d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/846a64dc-a7ac-4abb-a7b5-6b3cd6fdad51.gz b/ApressBook SourceCode/ApressDemo/$tf/12/846a64dc-a7ac-4abb-a7b5-6b3cd6fdad51.gz new file mode 100644 index 0000000..2d71ef3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/846a64dc-a7ac-4abb-a7b5-6b3cd6fdad51.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/91cab71c-6f26-4d5f-9ab1-f44cc243acb4.gz b/ApressBook SourceCode/ApressDemo/$tf/12/91cab71c-6f26-4d5f-9ab1-f44cc243acb4.gz new file mode 100644 index 0000000..0ae89a4 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/91cab71c-6f26-4d5f-9ab1-f44cc243acb4.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/91e2004c-8a5b-42c5-bbde-33681169f5cf.gz b/ApressBook SourceCode/ApressDemo/$tf/12/91e2004c-8a5b-42c5-bbde-33681169f5cf.gz new file mode 100644 index 0000000..03e97c3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/91e2004c-8a5b-42c5-bbde-33681169f5cf.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/92a3f79c-120e-45c5-b53f-42d6cf83b973.gz b/ApressBook SourceCode/ApressDemo/$tf/12/92a3f79c-120e-45c5-b53f-42d6cf83b973.gz new file mode 100644 index 0000000..3e825b7 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/92a3f79c-120e-45c5-b53f-42d6cf83b973.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/9af8318c-f12a-49aa-828c-24e6c2133946.gz b/ApressBook SourceCode/ApressDemo/$tf/12/9af8318c-f12a-49aa-828c-24e6c2133946.gz new file mode 100644 index 0000000..e2e11c8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/9af8318c-f12a-49aa-828c-24e6c2133946.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/9c9df59c-c2fe-46b4-bd5a-cf5ccdc23719.gz b/ApressBook SourceCode/ApressDemo/$tf/12/9c9df59c-c2fe-46b4-bd5a-cf5ccdc23719.gz new file mode 100644 index 0000000..3b0faa2 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/9c9df59c-c2fe-46b4-bd5a-cf5ccdc23719.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/a24b8d1c-88f9-41aa-b028-bd412bcf04bc.gz b/ApressBook SourceCode/ApressDemo/$tf/12/a24b8d1c-88f9-41aa-b028-bd412bcf04bc.gz new file mode 100644 index 0000000..2a2d0c2 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/a24b8d1c-88f9-41aa-b028-bd412bcf04bc.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/aa4192dc-919e-4644-8e3d-abf69ca3b40d.gz b/ApressBook SourceCode/ApressDemo/$tf/12/aa4192dc-919e-4644-8e3d-abf69ca3b40d.gz new file mode 100644 index 0000000..d67b180 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/aa4192dc-919e-4644-8e3d-abf69ca3b40d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/b7cb148c-4b94-481a-86be-09c555dd776d.gz b/ApressBook SourceCode/ApressDemo/$tf/12/b7cb148c-4b94-481a-86be-09c555dd776d.gz new file mode 100644 index 0000000..6fb0162 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/b7cb148c-4b94-481a-86be-09c555dd776d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/c4f7544c-9bd5-4427-96ef-8df1736d44b8.gz b/ApressBook SourceCode/ApressDemo/$tf/12/c4f7544c-9bd5-4427-96ef-8df1736d44b8.gz new file mode 100644 index 0000000..bc7dc54 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/c4f7544c-9bd5-4427-96ef-8df1736d44b8.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/c5f7be3c-cfc9-43fe-b08e-987ebbc6556b.gz b/ApressBook SourceCode/ApressDemo/$tf/12/c5f7be3c-cfc9-43fe-b08e-987ebbc6556b.gz new file mode 100644 index 0000000..787a899 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/c5f7be3c-cfc9-43fe-b08e-987ebbc6556b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/d123fddc-51c0-45f8-9af0-fbc20bc78720.gz b/ApressBook SourceCode/ApressDemo/$tf/12/d123fddc-51c0-45f8-9af0-fbc20bc78720.gz new file mode 100644 index 0000000..d8af32e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/d123fddc-51c0-45f8-9af0-fbc20bc78720.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/d26887ec-c4d1-4509-8841-710d2a4cc761.gz b/ApressBook SourceCode/ApressDemo/$tf/12/d26887ec-c4d1-4509-8841-710d2a4cc761.gz new file mode 100644 index 0000000..05678fb Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/d26887ec-c4d1-4509-8841-710d2a4cc761.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/dcff418c-ca90-41a2-8862-46ce30b383c5.gz b/ApressBook SourceCode/ApressDemo/$tf/12/dcff418c-ca90-41a2-8862-46ce30b383c5.gz new file mode 100644 index 0000000..771c37d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/dcff418c-ca90-41a2-8862-46ce30b383c5.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/df14f2ec-7b89-4094-93ba-c20fc982e4c8.gz b/ApressBook SourceCode/ApressDemo/$tf/12/df14f2ec-7b89-4094-93ba-c20fc982e4c8.gz new file mode 100644 index 0000000..1b9fe25 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/df14f2ec-7b89-4094-93ba-c20fc982e4c8.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/f514f2bc-e835-43f4-9075-fc0cc867e08d.gz b/ApressBook SourceCode/ApressDemo/$tf/12/f514f2bc-e835-43f4-9075-fc0cc867e08d.gz new file mode 100644 index 0000000..d10e6ac Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/f514f2bc-e835-43f4-9075-fc0cc867e08d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/12/f892f14c-d5dd-46e5-9a7b-7246746b9963.gz b/ApressBook SourceCode/ApressDemo/$tf/12/f892f14c-d5dd-46e5-9a7b-7246746b9963.gz new file mode 100644 index 0000000..778368c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/12/f892f14c-d5dd-46e5-9a7b-7246746b9963.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/01b50d4d-cce8-41d5-9cf5-aa86ad0f0058.gz b/ApressBook SourceCode/ApressDemo/$tf/13/01b50d4d-cce8-41d5-9cf5-aa86ad0f0058.gz new file mode 100644 index 0000000..da45a99 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/01b50d4d-cce8-41d5-9cf5-aa86ad0f0058.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/0a0fbf5d-dc8d-41c1-b195-373cc1648cea.gz b/ApressBook SourceCode/ApressDemo/$tf/13/0a0fbf5d-dc8d-41c1-b195-373cc1648cea.gz new file mode 100644 index 0000000..5df09d8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/0a0fbf5d-dc8d-41c1-b195-373cc1648cea.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/116df55d-7230-4209-a9fc-227b5f00bd7d.gz b/ApressBook SourceCode/ApressDemo/$tf/13/116df55d-7230-4209-a9fc-227b5f00bd7d.gz new file mode 100644 index 0000000..ac36479 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/116df55d-7230-4209-a9fc-227b5f00bd7d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/12cca1fd-5ed5-4623-b0b5-a9896584ed6b.gz b/ApressBook SourceCode/ApressDemo/$tf/13/12cca1fd-5ed5-4623-b0b5-a9896584ed6b.gz new file mode 100644 index 0000000..5c97fdf Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/12cca1fd-5ed5-4623-b0b5-a9896584ed6b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/168c3bad-51be-4f62-aa0f-eaf1190d93a8.gz b/ApressBook SourceCode/ApressDemo/$tf/13/168c3bad-51be-4f62-aa0f-eaf1190d93a8.gz new file mode 100644 index 0000000..22cf973 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/168c3bad-51be-4f62-aa0f-eaf1190d93a8.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/31523e4d-501e-4c0c-b9e2-9b3a90d72073.gz b/ApressBook SourceCode/ApressDemo/$tf/13/31523e4d-501e-4c0c-b9e2-9b3a90d72073.gz new file mode 100644 index 0000000..6b4a502 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/31523e4d-501e-4c0c-b9e2-9b3a90d72073.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/3f8dd0ed-32fb-4fc6-babd-f2fce774bbae.gz b/ApressBook SourceCode/ApressDemo/$tf/13/3f8dd0ed-32fb-4fc6-babd-f2fce774bbae.gz new file mode 100644 index 0000000..ec768ab Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/3f8dd0ed-32fb-4fc6-babd-f2fce774bbae.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/3ffb6b5d-4295-4842-8dea-67153c180932.gz b/ApressBook SourceCode/ApressDemo/$tf/13/3ffb6b5d-4295-4842-8dea-67153c180932.gz new file mode 100644 index 0000000..542296b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/3ffb6b5d-4295-4842-8dea-67153c180932.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/491e9a6d-37ea-4a46-bdca-f4eab3d6ca05.gz b/ApressBook SourceCode/ApressDemo/$tf/13/491e9a6d-37ea-4a46-bdca-f4eab3d6ca05.gz new file mode 100644 index 0000000..6d10fc5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/491e9a6d-37ea-4a46-bdca-f4eab3d6ca05.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/505fef4d-d04a-494a-ac13-cb602aed789b.gz b/ApressBook SourceCode/ApressDemo/$tf/13/505fef4d-d04a-494a-ac13-cb602aed789b.gz new file mode 100644 index 0000000..7e476b5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/505fef4d-d04a-494a-ac13-cb602aed789b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/506be0ad-0755-4989-8391-490381844646.gz b/ApressBook SourceCode/ApressDemo/$tf/13/506be0ad-0755-4989-8391-490381844646.gz new file mode 100644 index 0000000..37244a6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/506be0ad-0755-4989-8391-490381844646.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/551885bd-4a49-4a9c-bef4-c73163720b2b.gz b/ApressBook SourceCode/ApressDemo/$tf/13/551885bd-4a49-4a9c-bef4-c73163720b2b.gz new file mode 100644 index 0000000..ebb167f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/551885bd-4a49-4a9c-bef4-c73163720b2b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/629d6edd-a6d6-4450-b9dc-f1e8b152e863.gz b/ApressBook SourceCode/ApressDemo/$tf/13/629d6edd-a6d6-4450-b9dc-f1e8b152e863.gz new file mode 100644 index 0000000..9828d8f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/629d6edd-a6d6-4450-b9dc-f1e8b152e863.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/6e11ab0d-dc91-4323-8fbd-5dc90af19c4c.gz b/ApressBook SourceCode/ApressDemo/$tf/13/6e11ab0d-dc91-4323-8fbd-5dc90af19c4c.gz new file mode 100644 index 0000000..a22d627 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/6e11ab0d-dc91-4323-8fbd-5dc90af19c4c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/6fe4710d-923d-44e5-92c8-ff61cf6b1f14.gz b/ApressBook SourceCode/ApressDemo/$tf/13/6fe4710d-923d-44e5-92c8-ff61cf6b1f14.gz new file mode 100644 index 0000000..1cd1071 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/6fe4710d-923d-44e5-92c8-ff61cf6b1f14.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/7217eb1d-9a1f-456e-9038-e8f01c2167cd.gz b/ApressBook SourceCode/ApressDemo/$tf/13/7217eb1d-9a1f-456e-9038-e8f01c2167cd.gz new file mode 100644 index 0000000..df53538 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/7217eb1d-9a1f-456e-9038-e8f01c2167cd.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/82e66d8d-1fc6-4537-8371-16a43154d18c.gz b/ApressBook SourceCode/ApressDemo/$tf/13/82e66d8d-1fc6-4537-8371-16a43154d18c.gz new file mode 100644 index 0000000..cc4080f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/82e66d8d-1fc6-4537-8371-16a43154d18c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/8e9ec51d-0e68-4e4b-8caf-6249dfa485ad.gz b/ApressBook SourceCode/ApressDemo/$tf/13/8e9ec51d-0e68-4e4b-8caf-6249dfa485ad.gz new file mode 100644 index 0000000..352cf45 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/8e9ec51d-0e68-4e4b-8caf-6249dfa485ad.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/980e5b2d-64fa-4514-8ec4-47944ed916c2.gz b/ApressBook SourceCode/ApressDemo/$tf/13/980e5b2d-64fa-4514-8ec4-47944ed916c2.gz new file mode 100644 index 0000000..f5e71bc Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/980e5b2d-64fa-4514-8ec4-47944ed916c2.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/9bcd028d-4a06-4cd7-a323-9bc5f1dd397a.gz b/ApressBook SourceCode/ApressDemo/$tf/13/9bcd028d-4a06-4cd7-a323-9bc5f1dd397a.gz new file mode 100644 index 0000000..de4441f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/9bcd028d-4a06-4cd7-a323-9bc5f1dd397a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/9cbe1ebd-23dc-4eb6-9284-5d3842304b20.gz b/ApressBook SourceCode/ApressDemo/$tf/13/9cbe1ebd-23dc-4eb6-9284-5d3842304b20.gz new file mode 100644 index 0000000..ebedd88 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/9cbe1ebd-23dc-4eb6-9284-5d3842304b20.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/9eec99ad-8564-4bb9-871d-db42e3995f80.gz b/ApressBook SourceCode/ApressDemo/$tf/13/9eec99ad-8564-4bb9-871d-db42e3995f80.gz new file mode 100644 index 0000000..83936f5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/9eec99ad-8564-4bb9-871d-db42e3995f80.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/b930198d-d0fb-4cb1-9cee-0c11d1a71af7.gz b/ApressBook SourceCode/ApressDemo/$tf/13/b930198d-d0fb-4cb1-9cee-0c11d1a71af7.gz new file mode 100644 index 0000000..81b4914 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/b930198d-d0fb-4cb1-9cee-0c11d1a71af7.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/baa0c23d-844c-4878-9f39-ea5b5c4de7c3.gz b/ApressBook SourceCode/ApressDemo/$tf/13/baa0c23d-844c-4878-9f39-ea5b5c4de7c3.gz new file mode 100644 index 0000000..9c7218d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/baa0c23d-844c-4878-9f39-ea5b5c4de7c3.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/cc600fbd-96ef-467f-b9a2-17d3b764ecc5.gz b/ApressBook SourceCode/ApressDemo/$tf/13/cc600fbd-96ef-467f-b9a2-17d3b764ecc5.gz new file mode 100644 index 0000000..da45a99 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/cc600fbd-96ef-467f-b9a2-17d3b764ecc5.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/d2ecad2d-4d9f-4abb-85a2-58ecec0c1bcd.gz b/ApressBook SourceCode/ApressDemo/$tf/13/d2ecad2d-4d9f-4abb-85a2-58ecec0c1bcd.gz new file mode 100644 index 0000000..d0ea6b1 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/d2ecad2d-4d9f-4abb-85a2-58ecec0c1bcd.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/e2f5d1fd-1e91-467e-9b8d-cb6aefc8b936.gz b/ApressBook SourceCode/ApressDemo/$tf/13/e2f5d1fd-1e91-467e-9b8d-cb6aefc8b936.gz new file mode 100644 index 0000000..12a05e2 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/e2f5d1fd-1e91-467e-9b8d-cb6aefc8b936.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/f3a71bad-14d8-4037-8cf1-a7cbff82a002.gz b/ApressBook SourceCode/ApressDemo/$tf/13/f3a71bad-14d8-4037-8cf1-a7cbff82a002.gz new file mode 100644 index 0000000..878cfea Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/f3a71bad-14d8-4037-8cf1-a7cbff82a002.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/13/fed0880d-48b8-4078-817d-e987c1338f94.gz b/ApressBook SourceCode/ApressDemo/$tf/13/fed0880d-48b8-4078-817d-e987c1338f94.gz new file mode 100644 index 0000000..e297a18 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/13/fed0880d-48b8-4078-817d-e987c1338f94.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/0366c27e-c436-4a7e-a750-67f96954e3d3.gz b/ApressBook SourceCode/ApressDemo/$tf/14/0366c27e-c436-4a7e-a750-67f96954e3d3.gz new file mode 100644 index 0000000..d136fce Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/0366c27e-c436-4a7e-a750-67f96954e3d3.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/037f564e-099f-4933-8c2f-b68e045a0877.gz b/ApressBook SourceCode/ApressDemo/$tf/14/037f564e-099f-4933-8c2f-b68e045a0877.gz new file mode 100644 index 0000000..2ff336a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/037f564e-099f-4933-8c2f-b68e045a0877.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/0415c3be-ce57-4c72-806f-d88a9ceb4f30.gz b/ApressBook SourceCode/ApressDemo/$tf/14/0415c3be-ce57-4c72-806f-d88a9ceb4f30.gz new file mode 100644 index 0000000..83ec983 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/0415c3be-ce57-4c72-806f-d88a9ceb4f30.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/12256dce-dbd1-491f-b4cb-86f453339c34.gz b/ApressBook SourceCode/ApressDemo/$tf/14/12256dce-dbd1-491f-b4cb-86f453339c34.gz new file mode 100644 index 0000000..7a88acf Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/12256dce-dbd1-491f-b4cb-86f453339c34.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/13c1bede-c1d2-4943-8dea-870bece04f3a.gz b/ApressBook SourceCode/ApressDemo/$tf/14/13c1bede-c1d2-4943-8dea-870bece04f3a.gz new file mode 100644 index 0000000..32a99f2 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/13c1bede-c1d2-4943-8dea-870bece04f3a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/20789b7e-d8d2-4c0a-8095-b00c66d562dd.gz b/ApressBook SourceCode/ApressDemo/$tf/14/20789b7e-d8d2-4c0a-8095-b00c66d562dd.gz new file mode 100644 index 0000000..f746555 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/20789b7e-d8d2-4c0a-8095-b00c66d562dd.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/211df2de-f5b2-4207-b63a-66d709f40d7b.gz b/ApressBook SourceCode/ApressDemo/$tf/14/211df2de-f5b2-4207-b63a-66d709f40d7b.gz new file mode 100644 index 0000000..fd29e54 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/211df2de-f5b2-4207-b63a-66d709f40d7b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/224fa84e-7507-4563-89c0-7bec9d87c03d.gz b/ApressBook SourceCode/ApressDemo/$tf/14/224fa84e-7507-4563-89c0-7bec9d87c03d.gz new file mode 100644 index 0000000..a3a588f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/224fa84e-7507-4563-89c0-7bec9d87c03d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/52a637ee-6d42-4366-ac7d-a2ea62049ceb.gz b/ApressBook SourceCode/ApressDemo/$tf/14/52a637ee-6d42-4366-ac7d-a2ea62049ceb.gz new file mode 100644 index 0000000..cb6cebd Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/52a637ee-6d42-4366-ac7d-a2ea62049ceb.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/5462855e-b1de-48b3-b7f5-161bab0aff1e.gz b/ApressBook SourceCode/ApressDemo/$tf/14/5462855e-b1de-48b3-b7f5-161bab0aff1e.gz new file mode 100644 index 0000000..f1d98ce Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/5462855e-b1de-48b3-b7f5-161bab0aff1e.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/638bbd6e-6e60-4633-8313-109ecd86baf7.gz b/ApressBook SourceCode/ApressDemo/$tf/14/638bbd6e-6e60-4633-8313-109ecd86baf7.gz new file mode 100644 index 0000000..6f9681e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/638bbd6e-6e60-4633-8313-109ecd86baf7.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/6b8dfffe-64fa-472d-81f6-2bb891d88e37.gz b/ApressBook SourceCode/ApressDemo/$tf/14/6b8dfffe-64fa-472d-81f6-2bb891d88e37.gz new file mode 100644 index 0000000..345685a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/6b8dfffe-64fa-472d-81f6-2bb891d88e37.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/705de0ee-61d9-4626-a7e0-0e55878c717c.gz b/ApressBook SourceCode/ApressDemo/$tf/14/705de0ee-61d9-4626-a7e0-0e55878c717c.gz new file mode 100644 index 0000000..ce55994 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/705de0ee-61d9-4626-a7e0-0e55878c717c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/7223263e-fc99-4bc3-af73-1058f9ef1f2b.gz b/ApressBook SourceCode/ApressDemo/$tf/14/7223263e-fc99-4bc3-af73-1058f9ef1f2b.gz new file mode 100644 index 0000000..f7883a8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/7223263e-fc99-4bc3-af73-1058f9ef1f2b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/7a3f42de-f0fa-4ed5-94d9-4a0f69cfe154.gz b/ApressBook SourceCode/ApressDemo/$tf/14/7a3f42de-f0fa-4ed5-94d9-4a0f69cfe154.gz new file mode 100644 index 0000000..9909c21 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/7a3f42de-f0fa-4ed5-94d9-4a0f69cfe154.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/7c2233ce-26fb-471b-af3f-4712cf385240.gz b/ApressBook SourceCode/ApressDemo/$tf/14/7c2233ce-26fb-471b-af3f-4712cf385240.gz new file mode 100644 index 0000000..308008f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/7c2233ce-26fb-471b-af3f-4712cf385240.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/7f06ad3e-35f0-4735-8ba1-a62c9fe9ef68.gz b/ApressBook SourceCode/ApressDemo/$tf/14/7f06ad3e-35f0-4735-8ba1-a62c9fe9ef68.gz new file mode 100644 index 0000000..dc766b0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/7f06ad3e-35f0-4735-8ba1-a62c9fe9ef68.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/84216a9e-9832-4a66-82a6-1487a7268016.gz b/ApressBook SourceCode/ApressDemo/$tf/14/84216a9e-9832-4a66-82a6-1487a7268016.gz new file mode 100644 index 0000000..4b73479 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/84216a9e-9832-4a66-82a6-1487a7268016.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/878180fe-c522-480f-8a98-afa67800dc4d.gz b/ApressBook SourceCode/ApressDemo/$tf/14/878180fe-c522-480f-8a98-afa67800dc4d.gz new file mode 100644 index 0000000..14eff02 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/878180fe-c522-480f-8a98-afa67800dc4d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/9822357e-4ebe-46a7-ab7a-6ef85386f2f0.gz b/ApressBook SourceCode/ApressDemo/$tf/14/9822357e-4ebe-46a7-ab7a-6ef85386f2f0.gz new file mode 100644 index 0000000..d24902e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/9822357e-4ebe-46a7-ab7a-6ef85386f2f0.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/abfafd4e-8aee-4cfb-afbb-ef66e95f230c.gz b/ApressBook SourceCode/ApressDemo/$tf/14/abfafd4e-8aee-4cfb-afbb-ef66e95f230c.gz new file mode 100644 index 0000000..e2e11c8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/abfafd4e-8aee-4cfb-afbb-ef66e95f230c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/ac25eade-132e-4e19-ac53-86feb8bcd985.gz b/ApressBook SourceCode/ApressDemo/$tf/14/ac25eade-132e-4e19-ac53-86feb8bcd985.gz new file mode 100644 index 0000000..f5bf0d4 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/ac25eade-132e-4e19-ac53-86feb8bcd985.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/b57d0d9e-75e0-4cc9-8dde-5785bf87a5c2.gz b/ApressBook SourceCode/ApressDemo/$tf/14/b57d0d9e-75e0-4cc9-8dde-5785bf87a5c2.gz new file mode 100644 index 0000000..1eba289 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/b57d0d9e-75e0-4cc9-8dde-5785bf87a5c2.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/bc88c7ce-f145-447e-9c1a-b95ff2d2a2e1.gz b/ApressBook SourceCode/ApressDemo/$tf/14/bc88c7ce-f145-447e-9c1a-b95ff2d2a2e1.gz new file mode 100644 index 0000000..44e3e86 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/bc88c7ce-f145-447e-9c1a-b95ff2d2a2e1.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/bf9cd21e-d241-40fd-953c-710a88b2f7f5.gz b/ApressBook SourceCode/ApressDemo/$tf/14/bf9cd21e-d241-40fd-953c-710a88b2f7f5.gz new file mode 100644 index 0000000..1950112 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/bf9cd21e-d241-40fd-953c-710a88b2f7f5.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/cec682ee-67c8-47ba-ac98-5734b72d601b.gz b/ApressBook SourceCode/ApressDemo/$tf/14/cec682ee-67c8-47ba-ac98-5734b72d601b.gz new file mode 100644 index 0000000..5a49c6c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/cec682ee-67c8-47ba-ac98-5734b72d601b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/d5feb6fe-f1b1-415a-b465-74f89c7d754b.gz b/ApressBook SourceCode/ApressDemo/$tf/14/d5feb6fe-f1b1-415a-b465-74f89c7d754b.gz new file mode 100644 index 0000000..eb4a6c7 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/d5feb6fe-f1b1-415a-b465-74f89c7d754b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/14/f0d2b23e-abaf-4d97-ad2a-9b1f0ce89249.gz b/ApressBook SourceCode/ApressDemo/$tf/14/f0d2b23e-abaf-4d97-ad2a-9b1f0ce89249.gz new file mode 100644 index 0000000..aca54dc Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/14/f0d2b23e-abaf-4d97-ad2a-9b1f0ce89249.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/011cdaff-56e1-4760-a463-99eceab00f94.gz b/ApressBook SourceCode/ApressDemo/$tf/15/011cdaff-56e1-4760-a463-99eceab00f94.gz new file mode 100644 index 0000000..e3c0551 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/011cdaff-56e1-4760-a463-99eceab00f94.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/08e2c63f-b1a2-4fe9-bfa6-a29c23352e60.gz b/ApressBook SourceCode/ApressDemo/$tf/15/08e2c63f-b1a2-4fe9-bfa6-a29c23352e60.gz new file mode 100644 index 0000000..da45a99 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/08e2c63f-b1a2-4fe9-bfa6-a29c23352e60.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/0de1f38f-cb0e-4b44-8ff9-788b75ce880f.gz b/ApressBook SourceCode/ApressDemo/$tf/15/0de1f38f-cb0e-4b44-8ff9-788b75ce880f.gz new file mode 100644 index 0000000..dfbcbe6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/0de1f38f-cb0e-4b44-8ff9-788b75ce880f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/1be4795f-dffb-4b6c-9624-4fadb07c6111.gz b/ApressBook SourceCode/ApressDemo/$tf/15/1be4795f-dffb-4b6c-9624-4fadb07c6111.gz new file mode 100644 index 0000000..e2e11c8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/1be4795f-dffb-4b6c-9624-4fadb07c6111.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/1ecbec3f-79e9-417c-ae0c-f6609f5bd1ad.gz b/ApressBook SourceCode/ApressDemo/$tf/15/1ecbec3f-79e9-417c-ae0c-f6609f5bd1ad.gz new file mode 100644 index 0000000..6fb0162 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/1ecbec3f-79e9-417c-ae0c-f6609f5bd1ad.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/3e5716af-5478-4079-969e-f3d729d2342f.gz b/ApressBook SourceCode/ApressDemo/$tf/15/3e5716af-5478-4079-969e-f3d729d2342f.gz new file mode 100644 index 0000000..7e117ab Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/3e5716af-5478-4079-969e-f3d729d2342f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/65aff36f-fc56-4fb1-98c6-61196c0bc7fa.gz b/ApressBook SourceCode/ApressDemo/$tf/15/65aff36f-fc56-4fb1-98c6-61196c0bc7fa.gz new file mode 100644 index 0000000..9c80182 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/65aff36f-fc56-4fb1-98c6-61196c0bc7fa.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/68286baf-1b17-4e0d-a904-f2e1dd43d8fa.gz b/ApressBook SourceCode/ApressDemo/$tf/15/68286baf-1b17-4e0d-a904-f2e1dd43d8fa.gz new file mode 100644 index 0000000..ab685c0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/68286baf-1b17-4e0d-a904-f2e1dd43d8fa.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/72e457bf-6fec-4c94-bb9a-478f5e917cd2.gz b/ApressBook SourceCode/ApressDemo/$tf/15/72e457bf-6fec-4c94-bb9a-478f5e917cd2.gz new file mode 100644 index 0000000..ef6fb56 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/72e457bf-6fec-4c94-bb9a-478f5e917cd2.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/80c0beff-3e7f-4ba5-abde-487a1806dd66.gz b/ApressBook SourceCode/ApressDemo/$tf/15/80c0beff-3e7f-4ba5-abde-487a1806dd66.gz new file mode 100644 index 0000000..903c401 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/80c0beff-3e7f-4ba5-abde-487a1806dd66.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/9a8a1e2f-884c-400c-b23a-c76bf971a9bc.gz b/ApressBook SourceCode/ApressDemo/$tf/15/9a8a1e2f-884c-400c-b23a-c76bf971a9bc.gz new file mode 100644 index 0000000..b2fcfdd Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/9a8a1e2f-884c-400c-b23a-c76bf971a9bc.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/9f2d0d2f-5877-4307-b1ab-525ea5c0cb72.gz b/ApressBook SourceCode/ApressDemo/$tf/15/9f2d0d2f-5877-4307-b1ab-525ea5c0cb72.gz new file mode 100644 index 0000000..3f81f7d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/9f2d0d2f-5877-4307-b1ab-525ea5c0cb72.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/a787c80f-2f9f-423f-90e7-921fffd268c6.gz b/ApressBook SourceCode/ApressDemo/$tf/15/a787c80f-2f9f-423f-90e7-921fffd268c6.gz new file mode 100644 index 0000000..55a8fda Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/a787c80f-2f9f-423f-90e7-921fffd268c6.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/ac4721cf-57ce-481e-a27a-405fe880ef43.gz b/ApressBook SourceCode/ApressDemo/$tf/15/ac4721cf-57ce-481e-a27a-405fe880ef43.gz new file mode 100644 index 0000000..a63c635 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/ac4721cf-57ce-481e-a27a-405fe880ef43.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/c64c55cf-b5d9-4dbc-94d0-9fac02bddea4.gz b/ApressBook SourceCode/ApressDemo/$tf/15/c64c55cf-b5d9-4dbc-94d0-9fac02bddea4.gz new file mode 100644 index 0000000..2f5511f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/c64c55cf-b5d9-4dbc-94d0-9fac02bddea4.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/da0492cf-bf8e-4a2c-8984-e30281922978.gz b/ApressBook SourceCode/ApressDemo/$tf/15/da0492cf-bf8e-4a2c-8984-e30281922978.gz new file mode 100644 index 0000000..f2729e8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/da0492cf-bf8e-4a2c-8984-e30281922978.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/ddec626f-2f93-4b00-a71d-1fdc69db7695.gz b/ApressBook SourceCode/ApressDemo/$tf/15/ddec626f-2f93-4b00-a71d-1fdc69db7695.gz new file mode 100644 index 0000000..69fa04f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/ddec626f-2f93-4b00-a71d-1fdc69db7695.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/e383f15f-2bb3-4db3-8f76-972c37160a41.gz b/ApressBook SourceCode/ApressDemo/$tf/15/e383f15f-2bb3-4db3-8f76-972c37160a41.gz new file mode 100644 index 0000000..57b75f8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/e383f15f-2bb3-4db3-8f76-972c37160a41.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/15/f64a7d9f-2389-4e65-a7ca-a309d6fc4ef7.gz b/ApressBook SourceCode/ApressDemo/$tf/15/f64a7d9f-2389-4e65-a7ca-a309d6fc4ef7.gz new file mode 100644 index 0000000..9ac997d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/15/f64a7d9f-2389-4e65-a7ca-a309d6fc4ef7.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/17006a42-7f49-430a-8378-0e5a7cbb6158.gz b/ApressBook SourceCode/ApressDemo/$tf/2/17006a42-7f49-430a-8378-0e5a7cbb6158.gz new file mode 100644 index 0000000..09ad00d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/17006a42-7f49-430a-8378-0e5a7cbb6158.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/19688072-91ea-4ee1-a139-c238d53ff960.gz b/ApressBook SourceCode/ApressDemo/$tf/2/19688072-91ea-4ee1-a139-c238d53ff960.gz new file mode 100644 index 0000000..82708be Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/19688072-91ea-4ee1-a139-c238d53ff960.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/3a22bd02-01e3-4449-b6a1-4e37448473e1.gz b/ApressBook SourceCode/ApressDemo/$tf/2/3a22bd02-01e3-4449-b6a1-4e37448473e1.gz new file mode 100644 index 0000000..787a899 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/3a22bd02-01e3-4449-b6a1-4e37448473e1.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/5dfbbf62-5ced-4102-b644-e711941c9af7.gz b/ApressBook SourceCode/ApressDemo/$tf/2/5dfbbf62-5ced-4102-b644-e711941c9af7.gz new file mode 100644 index 0000000..805f580 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/5dfbbf62-5ced-4102-b644-e711941c9af7.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/63f80892-3c0b-40b0-8234-a11c4e3c4d11.gz b/ApressBook SourceCode/ApressDemo/$tf/2/63f80892-3c0b-40b0-8234-a11c4e3c4d11.gz new file mode 100644 index 0000000..7540852 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/63f80892-3c0b-40b0-8234-a11c4e3c4d11.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/7a015802-cdd9-4e59-a63d-e98fbf29c909.gz b/ApressBook SourceCode/ApressDemo/$tf/2/7a015802-cdd9-4e59-a63d-e98fbf29c909.gz new file mode 100644 index 0000000..26cc7de Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/7a015802-cdd9-4e59-a63d-e98fbf29c909.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/7a720772-dfd4-4cb4-9282-69e1d6b5b61e.gz b/ApressBook SourceCode/ApressDemo/$tf/2/7a720772-dfd4-4cb4-9282-69e1d6b5b61e.gz new file mode 100644 index 0000000..4857be7 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/7a720772-dfd4-4cb4-9282-69e1d6b5b61e.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/9470af02-19f6-46b8-9130-b3a1ad4f1bc6.gz b/ApressBook SourceCode/ApressDemo/$tf/2/9470af02-19f6-46b8-9130-b3a1ad4f1bc6.gz new file mode 100644 index 0000000..6feec1c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/9470af02-19f6-46b8-9130-b3a1ad4f1bc6.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/9c4153e2-ed18-404f-842f-aac683099c85.gz b/ApressBook SourceCode/ApressDemo/$tf/2/9c4153e2-ed18-404f-842f-aac683099c85.gz new file mode 100644 index 0000000..e453a35 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/9c4153e2-ed18-404f-842f-aac683099c85.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/a7e2e162-7b9d-4094-948f-ef905c93acf8.gz b/ApressBook SourceCode/ApressDemo/$tf/2/a7e2e162-7b9d-4094-948f-ef905c93acf8.gz new file mode 100644 index 0000000..d3b5166 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/a7e2e162-7b9d-4094-948f-ef905c93acf8.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/b1892cf2-0968-49b2-ab27-69894b520595.gz b/ApressBook SourceCode/ApressDemo/$tf/2/b1892cf2-0968-49b2-ab27-69894b520595.gz new file mode 100644 index 0000000..be0f539 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/b1892cf2-0968-49b2-ab27-69894b520595.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/bc2dae62-53ea-4285-90f5-a0baa5d22c33.gz b/ApressBook SourceCode/ApressDemo/$tf/2/bc2dae62-53ea-4285-90f5-a0baa5d22c33.gz new file mode 100644 index 0000000..f5d3eef Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/bc2dae62-53ea-4285-90f5-a0baa5d22c33.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/c4b80992-a507-43f8-be56-c0f70fcdc503.gz b/ApressBook SourceCode/ApressDemo/$tf/2/c4b80992-a507-43f8-be56-c0f70fcdc503.gz new file mode 100644 index 0000000..771c37d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/c4b80992-a507-43f8-be56-c0f70fcdc503.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/cf38a922-f59f-441c-8976-d3bd33388dd8.gz b/ApressBook SourceCode/ApressDemo/$tf/2/cf38a922-f59f-441c-8976-d3bd33388dd8.gz new file mode 100644 index 0000000..c6362e9 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/cf38a922-f59f-441c-8976-d3bd33388dd8.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/d134d852-91cc-4f12-aa74-6a1c024cba68.gz b/ApressBook SourceCode/ApressDemo/$tf/2/d134d852-91cc-4f12-aa74-6a1c024cba68.gz new file mode 100644 index 0000000..66b9ac8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/d134d852-91cc-4f12-aa74-6a1c024cba68.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/d9e8be92-9dd4-4935-b683-46cd5525ff6d.gz b/ApressBook SourceCode/ApressDemo/$tf/2/d9e8be92-9dd4-4935-b683-46cd5525ff6d.gz new file mode 100644 index 0000000..6fb0162 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/d9e8be92-9dd4-4935-b683-46cd5525ff6d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/db5041a2-d723-4367-be9b-c28de1e9ff37.gz b/ApressBook SourceCode/ApressDemo/$tf/2/db5041a2-d723-4367-be9b-c28de1e9ff37.gz new file mode 100644 index 0000000..1065a0c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/db5041a2-d723-4367-be9b-c28de1e9ff37.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/e2fcb622-b039-4105-886c-8f8d7af933b1.gz b/ApressBook SourceCode/ApressDemo/$tf/2/e2fcb622-b039-4105-886c-8f8d7af933b1.gz new file mode 100644 index 0000000..b88b9ad Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/e2fcb622-b039-4105-886c-8f8d7af933b1.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/e74461f2-942a-48ba-9872-4e80de58a378.gz b/ApressBook SourceCode/ApressDemo/$tf/2/e74461f2-942a-48ba-9872-4e80de58a378.gz new file mode 100644 index 0000000..c9ac4db Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/e74461f2-942a-48ba-9872-4e80de58a378.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/fc8152d2-3adb-48fc-8054-c87c3db07d7d.gz b/ApressBook SourceCode/ApressDemo/$tf/2/fc8152d2-3adb-48fc-8054-c87c3db07d7d.gz new file mode 100644 index 0000000..7a4ae24 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/fc8152d2-3adb-48fc-8054-c87c3db07d7d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/2/fdab5462-08e1-4595-8c53-a71607a125b2.gz b/ApressBook SourceCode/ApressDemo/$tf/2/fdab5462-08e1-4595-8c53-a71607a125b2.gz new file mode 100644 index 0000000..5beab42 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/2/fdab5462-08e1-4595-8c53-a71607a125b2.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/155178d3-881f-4363-a712-b85514496ac5.gz b/ApressBook SourceCode/ApressDemo/$tf/3/155178d3-881f-4363-a712-b85514496ac5.gz new file mode 100644 index 0000000..590eba2 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/155178d3-881f-4363-a712-b85514496ac5.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/1be356f3-782b-4cdf-bcc7-1f66784530f5.gz b/ApressBook SourceCode/ApressDemo/$tf/3/1be356f3-782b-4cdf-bcc7-1f66784530f5.gz new file mode 100644 index 0000000..7c97497 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/1be356f3-782b-4cdf-bcc7-1f66784530f5.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/1f700773-bacf-4eeb-9f82-f13ca7aaf75f.gz b/ApressBook SourceCode/ApressDemo/$tf/3/1f700773-bacf-4eeb-9f82-f13ca7aaf75f.gz new file mode 100644 index 0000000..770aa15 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/1f700773-bacf-4eeb-9f82-f13ca7aaf75f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/25274df3-9f47-4fb3-a2af-07aaa6418414.gz b/ApressBook SourceCode/ApressDemo/$tf/3/25274df3-9f47-4fb3-a2af-07aaa6418414.gz new file mode 100644 index 0000000..e71cbfa Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/25274df3-9f47-4fb3-a2af-07aaa6418414.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/4231f003-56d7-43c1-863c-9bf7e430b464.gz b/ApressBook SourceCode/ApressDemo/$tf/3/4231f003-56d7-43c1-863c-9bf7e430b464.gz new file mode 100644 index 0000000..7f8c0f2 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/4231f003-56d7-43c1-863c-9bf7e430b464.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/4ef0d343-990a-4230-a170-f8a6de4590f4.gz b/ApressBook SourceCode/ApressDemo/$tf/3/4ef0d343-990a-4230-a170-f8a6de4590f4.gz new file mode 100644 index 0000000..98d3d6b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/4ef0d343-990a-4230-a170-f8a6de4590f4.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/503990a3-39d1-4f51-92e0-b78b3cca90f1.gz b/ApressBook SourceCode/ApressDemo/$tf/3/503990a3-39d1-4f51-92e0-b78b3cca90f1.gz new file mode 100644 index 0000000..2438f9a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/503990a3-39d1-4f51-92e0-b78b3cca90f1.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/5235a143-8521-4d44-a629-7a02c6ab31df.gz b/ApressBook SourceCode/ApressDemo/$tf/3/5235a143-8521-4d44-a629-7a02c6ab31df.gz new file mode 100644 index 0000000..a612865 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/5235a143-8521-4d44-a629-7a02c6ab31df.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/554d6233-b077-438a-b09b-429397cbc219.gz b/ApressBook SourceCode/ApressDemo/$tf/3/554d6233-b077-438a-b09b-429397cbc219.gz new file mode 100644 index 0000000..bc94b1a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/554d6233-b077-438a-b09b-429397cbc219.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/57cf9303-57c0-411d-b166-079c75ab6168.gz b/ApressBook SourceCode/ApressDemo/$tf/3/57cf9303-57c0-411d-b166-079c75ab6168.gz new file mode 100644 index 0000000..5e259a0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/57cf9303-57c0-411d-b166-079c75ab6168.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/5c496cc3-2497-443c-8476-630599b5feea.gz b/ApressBook SourceCode/ApressDemo/$tf/3/5c496cc3-2497-443c-8476-630599b5feea.gz new file mode 100644 index 0000000..4922e55 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/5c496cc3-2497-443c-8476-630599b5feea.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/5e83e9d3-d215-4fc4-a858-5e7c4608c911.gz b/ApressBook SourceCode/ApressDemo/$tf/3/5e83e9d3-d215-4fc4-a858-5e7c4608c911.gz new file mode 100644 index 0000000..7615cdb Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/5e83e9d3-d215-4fc4-a858-5e7c4608c911.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/5ea3b443-4e77-4c91-9ceb-ff0a2987f325.gz b/ApressBook SourceCode/ApressDemo/$tf/3/5ea3b443-4e77-4c91-9ceb-ff0a2987f325.gz new file mode 100644 index 0000000..15e6603 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/5ea3b443-4e77-4c91-9ceb-ff0a2987f325.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/60f89073-cfaf-4356-913b-f46874218843.gz b/ApressBook SourceCode/ApressDemo/$tf/3/60f89073-cfaf-4356-913b-f46874218843.gz new file mode 100644 index 0000000..f5d41b6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/60f89073-cfaf-4356-913b-f46874218843.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/6f60afc3-6acb-4730-9d0c-669c9369c822.gz b/ApressBook SourceCode/ApressDemo/$tf/3/6f60afc3-6acb-4730-9d0c-669c9369c822.gz new file mode 100644 index 0000000..433a485 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/6f60afc3-6acb-4730-9d0c-669c9369c822.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/704ef063-b7da-4be6-ba69-26ac5fab2c38.gz b/ApressBook SourceCode/ApressDemo/$tf/3/704ef063-b7da-4be6-ba69-26ac5fab2c38.gz new file mode 100644 index 0000000..0da0d81 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/704ef063-b7da-4be6-ba69-26ac5fab2c38.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/73dbde73-b949-4f79-8c9c-581e250cad41.gz b/ApressBook SourceCode/ApressDemo/$tf/3/73dbde73-b949-4f79-8c9c-581e250cad41.gz new file mode 100644 index 0000000..c12351b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/73dbde73-b949-4f79-8c9c-581e250cad41.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/7b9061a3-f22a-40e2-9d14-2d8accbc5fd0.gz b/ApressBook SourceCode/ApressDemo/$tf/3/7b9061a3-f22a-40e2-9d14-2d8accbc5fd0.gz new file mode 100644 index 0000000..9828d8f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/7b9061a3-f22a-40e2-9d14-2d8accbc5fd0.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/86282cd3-8a91-47b2-a48b-31292d17a9ab.gz b/ApressBook SourceCode/ApressDemo/$tf/3/86282cd3-8a91-47b2-a48b-31292d17a9ab.gz new file mode 100644 index 0000000..1753507 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/86282cd3-8a91-47b2-a48b-31292d17a9ab.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/8af3bc43-afa2-4dfd-89f9-b524e45635ad.gz b/ApressBook SourceCode/ApressDemo/$tf/3/8af3bc43-afa2-4dfd-89f9-b524e45635ad.gz new file mode 100644 index 0000000..5edff9b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/8af3bc43-afa2-4dfd-89f9-b524e45635ad.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/9cf45753-baef-4bec-896c-d9ecfbd39672.gz b/ApressBook SourceCode/ApressDemo/$tf/3/9cf45753-baef-4bec-896c-d9ecfbd39672.gz new file mode 100644 index 0000000..3213b72 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/9cf45753-baef-4bec-896c-d9ecfbd39672.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/a38257e3-62d9-4fe8-a5ff-23af3bb94735.gz b/ApressBook SourceCode/ApressDemo/$tf/3/a38257e3-62d9-4fe8-a5ff-23af3bb94735.gz new file mode 100644 index 0000000..b674b2b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/a38257e3-62d9-4fe8-a5ff-23af3bb94735.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/a3e17253-5d6e-4b5f-8d42-10beddbe5f3b.gz b/ApressBook SourceCode/ApressDemo/$tf/3/a3e17253-5d6e-4b5f-8d42-10beddbe5f3b.gz new file mode 100644 index 0000000..c3db545 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/a3e17253-5d6e-4b5f-8d42-10beddbe5f3b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/be3ad9d3-99c8-43c9-bf8e-82c4f04a55e2.gz b/ApressBook SourceCode/ApressDemo/$tf/3/be3ad9d3-99c8-43c9-bf8e-82c4f04a55e2.gz new file mode 100644 index 0000000..300f084 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/be3ad9d3-99c8-43c9-bf8e-82c4f04a55e2.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/d12dcad3-0e2e-4203-a1e8-47209a39dd1d.gz b/ApressBook SourceCode/ApressDemo/$tf/3/d12dcad3-0e2e-4203-a1e8-47209a39dd1d.gz new file mode 100644 index 0000000..43374c2 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/d12dcad3-0e2e-4203-a1e8-47209a39dd1d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/d914b5a3-dbc6-44a2-94d3-da9b27f05879.gz b/ApressBook SourceCode/ApressDemo/$tf/3/d914b5a3-dbc6-44a2-94d3-da9b27f05879.gz new file mode 100644 index 0000000..a033fcb Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/d914b5a3-dbc6-44a2-94d3-da9b27f05879.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/dce226b3-e119-4a5a-b225-98b8426fc71d.gz b/ApressBook SourceCode/ApressDemo/$tf/3/dce226b3-e119-4a5a-b225-98b8426fc71d.gz new file mode 100644 index 0000000..8a327c4 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/dce226b3-e119-4a5a-b225-98b8426fc71d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/3/ec967603-5297-4951-bf93-50eaf38ee07b.gz b/ApressBook SourceCode/ApressDemo/$tf/3/ec967603-5297-4951-bf93-50eaf38ee07b.gz new file mode 100644 index 0000000..d252550 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/3/ec967603-5297-4951-bf93-50eaf38ee07b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/174f6f14-b874-4606-80ef-bd080897e56e.gz b/ApressBook SourceCode/ApressDemo/$tf/4/174f6f14-b874-4606-80ef-bd080897e56e.gz new file mode 100644 index 0000000..fadb732 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/174f6f14-b874-4606-80ef-bd080897e56e.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/1d532fd4-d41e-420f-bd4c-8f45cd44be07.gz b/ApressBook SourceCode/ApressDemo/$tf/4/1d532fd4-d41e-420f-bd4c-8f45cd44be07.gz new file mode 100644 index 0000000..5ed0672 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/1d532fd4-d41e-420f-bd4c-8f45cd44be07.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/23c1e394-b6ea-4036-855f-994ba94b1a28.gz b/ApressBook SourceCode/ApressDemo/$tf/4/23c1e394-b6ea-4036-855f-994ba94b1a28.gz new file mode 100644 index 0000000..55bd9ba Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/23c1e394-b6ea-4036-855f-994ba94b1a28.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/27ef9c84-78b5-426c-bcbf-b4514bf80bd1.gz b/ApressBook SourceCode/ApressDemo/$tf/4/27ef9c84-78b5-426c-bcbf-b4514bf80bd1.gz new file mode 100644 index 0000000..9525963 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/27ef9c84-78b5-426c-bcbf-b4514bf80bd1.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/2cd872e4-ce8e-4ddb-88da-54b658679422.gz b/ApressBook SourceCode/ApressDemo/$tf/4/2cd872e4-ce8e-4ddb-88da-54b658679422.gz new file mode 100644 index 0000000..842cef0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/2cd872e4-ce8e-4ddb-88da-54b658679422.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/3fb8b954-fd16-4db8-878d-710c4e89246d.gz b/ApressBook SourceCode/ApressDemo/$tf/4/3fb8b954-fd16-4db8-878d-710c4e89246d.gz new file mode 100644 index 0000000..82c2c94 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/3fb8b954-fd16-4db8-878d-710c4e89246d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/400d0754-afed-44d7-a4d3-6a9e402e772c.gz b/ApressBook SourceCode/ApressDemo/$tf/4/400d0754-afed-44d7-a4d3-6a9e402e772c.gz new file mode 100644 index 0000000..fd3eb40 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/400d0754-afed-44d7-a4d3-6a9e402e772c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/4b1234e4-d0f7-480d-8824-579a66d4e595.gz b/ApressBook SourceCode/ApressDemo/$tf/4/4b1234e4-d0f7-480d-8824-579a66d4e595.gz new file mode 100644 index 0000000..85c54b6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/4b1234e4-d0f7-480d-8824-579a66d4e595.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/4f8afde4-c4f1-4c2e-97e1-77c15a9efd20.gz b/ApressBook SourceCode/ApressDemo/$tf/4/4f8afde4-c4f1-4c2e-97e1-77c15a9efd20.gz new file mode 100644 index 0000000..80fb730 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/4f8afde4-c4f1-4c2e-97e1-77c15a9efd20.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/4fc412b4-86c7-4ed4-abb3-0cf686d4606f.gz b/ApressBook SourceCode/ApressDemo/$tf/4/4fc412b4-86c7-4ed4-abb3-0cf686d4606f.gz new file mode 100644 index 0000000..43e44fb Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/4fc412b4-86c7-4ed4-abb3-0cf686d4606f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/50f78334-cfc7-4bcb-9579-795577aef58d.gz b/ApressBook SourceCode/ApressDemo/$tf/4/50f78334-cfc7-4bcb-9579-795577aef58d.gz new file mode 100644 index 0000000..e8b92c6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/50f78334-cfc7-4bcb-9579-795577aef58d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/581c4cc4-3309-440d-8d14-c6c313853bf6.gz b/ApressBook SourceCode/ApressDemo/$tf/4/581c4cc4-3309-440d-8d14-c6c313853bf6.gz new file mode 100644 index 0000000..92ae4e3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/581c4cc4-3309-440d-8d14-c6c313853bf6.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/600d2144-f747-4cd9-b4ad-6c8b5f79fa43.gz b/ApressBook SourceCode/ApressDemo/$tf/4/600d2144-f747-4cd9-b4ad-6c8b5f79fa43.gz new file mode 100644 index 0000000..ebf8434 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/600d2144-f747-4cd9-b4ad-6c8b5f79fa43.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/78ebf594-e679-42dd-9455-7ce3d4061762.gz b/ApressBook SourceCode/ApressDemo/$tf/4/78ebf594-e679-42dd-9455-7ce3d4061762.gz new file mode 100644 index 0000000..d8fb0c9 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/78ebf594-e679-42dd-9455-7ce3d4061762.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/8ad75cc4-8f9c-4cc1-98a4-13af86d0f270.gz b/ApressBook SourceCode/ApressDemo/$tf/4/8ad75cc4-8f9c-4cc1-98a4-13af86d0f270.gz new file mode 100644 index 0000000..95b000e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/8ad75cc4-8f9c-4cc1-98a4-13af86d0f270.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/8bbd0084-44a1-4a51-8166-2dfde5c27672.gz b/ApressBook SourceCode/ApressDemo/$tf/4/8bbd0084-44a1-4a51-8166-2dfde5c27672.gz new file mode 100644 index 0000000..14c43d8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/8bbd0084-44a1-4a51-8166-2dfde5c27672.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/908e3514-f1da-4d69-a852-a5aa21a4a556.gz b/ApressBook SourceCode/ApressDemo/$tf/4/908e3514-f1da-4d69-a852-a5aa21a4a556.gz new file mode 100644 index 0000000..47221c5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/908e3514-f1da-4d69-a852-a5aa21a4a556.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/a783c664-7a0d-4dce-955f-6c380571d77c.gz b/ApressBook SourceCode/ApressDemo/$tf/4/a783c664-7a0d-4dce-955f-6c380571d77c.gz new file mode 100644 index 0000000..04afd44 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/a783c664-7a0d-4dce-955f-6c380571d77c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/bb15a804-c414-45a0-b8ca-fbdcab9d42bc.gz b/ApressBook SourceCode/ApressDemo/$tf/4/bb15a804-c414-45a0-b8ca-fbdcab9d42bc.gz new file mode 100644 index 0000000..33b658a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/bb15a804-c414-45a0-b8ca-fbdcab9d42bc.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/c7be8144-8f5b-44a1-aa99-722d3ef0ac6d.gz b/ApressBook SourceCode/ApressDemo/$tf/4/c7be8144-8f5b-44a1-aa99-722d3ef0ac6d.gz new file mode 100644 index 0000000..479606e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/c7be8144-8f5b-44a1-aa99-722d3ef0ac6d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/cd5d2eb4-088f-4822-af76-c77e77c66638.gz b/ApressBook SourceCode/ApressDemo/$tf/4/cd5d2eb4-088f-4822-af76-c77e77c66638.gz new file mode 100644 index 0000000..cfb3816 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/cd5d2eb4-088f-4822-af76-c77e77c66638.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/d629bbe4-0a77-42de-b737-7b16ef0f7c69.gz b/ApressBook SourceCode/ApressDemo/$tf/4/d629bbe4-0a77-42de-b737-7b16ef0f7c69.gz new file mode 100644 index 0000000..cd9f65e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/d629bbe4-0a77-42de-b737-7b16ef0f7c69.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/dd716a14-6636-4b63-a9de-5732b6cacf3b.gz b/ApressBook SourceCode/ApressDemo/$tf/4/dd716a14-6636-4b63-a9de-5732b6cacf3b.gz new file mode 100644 index 0000000..57b75f8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/dd716a14-6636-4b63-a9de-5732b6cacf3b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/e562eee4-2401-42b9-ad29-49277b132979.gz b/ApressBook SourceCode/ApressDemo/$tf/4/e562eee4-2401-42b9-ad29-49277b132979.gz new file mode 100644 index 0000000..ceaa3ea Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/e562eee4-2401-42b9-ad29-49277b132979.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/e86d7df4-09b4-4f77-8e24-86c167e28f79.gz b/ApressBook SourceCode/ApressDemo/$tf/4/e86d7df4-09b4-4f77-8e24-86c167e28f79.gz new file mode 100644 index 0000000..e99865e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/e86d7df4-09b4-4f77-8e24-86c167e28f79.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/4/ef501564-d686-401b-88fb-cf92378a2fe2.gz b/ApressBook SourceCode/ApressDemo/$tf/4/ef501564-d686-401b-88fb-cf92378a2fe2.gz new file mode 100644 index 0000000..98b18e9 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/4/ef501564-d686-401b-88fb-cf92378a2fe2.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/057f2ec5-3e75-498a-8d20-aa4c040ae026.gz b/ApressBook SourceCode/ApressDemo/$tf/5/057f2ec5-3e75-498a-8d20-aa4c040ae026.gz new file mode 100644 index 0000000..817a9d1 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/057f2ec5-3e75-498a-8d20-aa4c040ae026.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/0cd1acf5-ce5e-45d4-b27a-42f11c7a3374.gz b/ApressBook SourceCode/ApressDemo/$tf/5/0cd1acf5-ce5e-45d4-b27a-42f11c7a3374.gz new file mode 100644 index 0000000..cec9ab5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/0cd1acf5-ce5e-45d4-b27a-42f11c7a3374.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/131a3f45-2807-4cc6-81c7-8ff8115a87b8.gz b/ApressBook SourceCode/ApressDemo/$tf/5/131a3f45-2807-4cc6-81c7-8ff8115a87b8.gz new file mode 100644 index 0000000..6fb0162 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/131a3f45-2807-4cc6-81c7-8ff8115a87b8.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/275781e5-7e30-4dd7-8529-53425bac53d7.gz b/ApressBook SourceCode/ApressDemo/$tf/5/275781e5-7e30-4dd7-8529-53425bac53d7.gz new file mode 100644 index 0000000..61d04f3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/275781e5-7e30-4dd7-8529-53425bac53d7.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/28f27115-076c-4dee-b4f4-f78875b1d226.gz b/ApressBook SourceCode/ApressDemo/$tf/5/28f27115-076c-4dee-b4f4-f78875b1d226.gz new file mode 100644 index 0000000..9f61df4 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/28f27115-076c-4dee-b4f4-f78875b1d226.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/32985eb5-ceaf-41dc-8a06-c91fe42b0285.gz b/ApressBook SourceCode/ApressDemo/$tf/5/32985eb5-ceaf-41dc-8a06-c91fe42b0285.gz new file mode 100644 index 0000000..79a0782 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/32985eb5-ceaf-41dc-8a06-c91fe42b0285.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/34ae2f25-3ebe-42fd-b364-7f675e36e3f6.gz b/ApressBook SourceCode/ApressDemo/$tf/5/34ae2f25-3ebe-42fd-b364-7f675e36e3f6.gz new file mode 100644 index 0000000..80f7a2f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/34ae2f25-3ebe-42fd-b364-7f675e36e3f6.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/4535a225-7afc-4583-b17c-3cbc8e311063.gz b/ApressBook SourceCode/ApressDemo/$tf/5/4535a225-7afc-4583-b17c-3cbc8e311063.gz new file mode 100644 index 0000000..14d1af3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/4535a225-7afc-4583-b17c-3cbc8e311063.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/4ecc2915-10ee-4f56-a516-933140b9bf72.gz b/ApressBook SourceCode/ApressDemo/$tf/5/4ecc2915-10ee-4f56-a516-933140b9bf72.gz new file mode 100644 index 0000000..ee89e37 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/4ecc2915-10ee-4f56-a516-933140b9bf72.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/53aa1095-53fb-47b3-8e02-f6133e17c497.gz b/ApressBook SourceCode/ApressDemo/$tf/5/53aa1095-53fb-47b3-8e02-f6133e17c497.gz new file mode 100644 index 0000000..2514e30 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/53aa1095-53fb-47b3-8e02-f6133e17c497.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/59567c85-a9ba-4dc9-8d26-7f76660478a5.gz b/ApressBook SourceCode/ApressDemo/$tf/5/59567c85-a9ba-4dc9-8d26-7f76660478a5.gz new file mode 100644 index 0000000..8c3ced1 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/59567c85-a9ba-4dc9-8d26-7f76660478a5.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/72c91eb5-3308-4707-807c-6ed7d32b2cb0.gz b/ApressBook SourceCode/ApressDemo/$tf/5/72c91eb5-3308-4707-807c-6ed7d32b2cb0.gz new file mode 100644 index 0000000..f8b7f9e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/72c91eb5-3308-4707-807c-6ed7d32b2cb0.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/803c37e5-e05b-46b9-bce8-9f0206f7ef3c.gz b/ApressBook SourceCode/ApressDemo/$tf/5/803c37e5-e05b-46b9-bce8-9f0206f7ef3c.gz new file mode 100644 index 0000000..b028a93 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/803c37e5-e05b-46b9-bce8-9f0206f7ef3c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/873f9235-f42f-4468-a78c-43c033c7d953.gz b/ApressBook SourceCode/ApressDemo/$tf/5/873f9235-f42f-4468-a78c-43c033c7d953.gz new file mode 100644 index 0000000..85c54b6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/873f9235-f42f-4468-a78c-43c033c7d953.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/927331b5-6e96-4331-9aa0-89f6893b5fac.gz b/ApressBook SourceCode/ApressDemo/$tf/5/927331b5-6e96-4331-9aa0-89f6893b5fac.gz new file mode 100644 index 0000000..6e4cc20 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/927331b5-6e96-4331-9aa0-89f6893b5fac.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/962156d5-ac13-44d1-87f4-3e068e2c31f6.gz b/ApressBook SourceCode/ApressDemo/$tf/5/962156d5-ac13-44d1-87f4-3e068e2c31f6.gz new file mode 100644 index 0000000..cb4ca51 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/962156d5-ac13-44d1-87f4-3e068e2c31f6.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/99f5cf85-a4d7-4dc5-9422-fe68e9037488.gz b/ApressBook SourceCode/ApressDemo/$tf/5/99f5cf85-a4d7-4dc5-9422-fe68e9037488.gz new file mode 100644 index 0000000..72ab19d Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/99f5cf85-a4d7-4dc5-9422-fe68e9037488.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/a8b6c605-b89e-421e-8102-29179cb5439a.gz b/ApressBook SourceCode/ApressDemo/$tf/5/a8b6c605-b89e-421e-8102-29179cb5439a.gz new file mode 100644 index 0000000..44c219b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/a8b6c605-b89e-421e-8102-29179cb5439a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/b1be6235-6eaa-41fa-9e29-6784290d0354.gz b/ApressBook SourceCode/ApressDemo/$tf/5/b1be6235-6eaa-41fa-9e29-6784290d0354.gz new file mode 100644 index 0000000..2a3f44f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/b1be6235-6eaa-41fa-9e29-6784290d0354.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/bfde4c35-58dd-4527-b7ce-22c0c30df028.gz b/ApressBook SourceCode/ApressDemo/$tf/5/bfde4c35-58dd-4527-b7ce-22c0c30df028.gz new file mode 100644 index 0000000..bd9d8a1 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/bfde4c35-58dd-4527-b7ce-22c0c30df028.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/ce915e75-2d17-4d2c-81d9-e5c434cfa2dd.gz b/ApressBook SourceCode/ApressDemo/$tf/5/ce915e75-2d17-4d2c-81d9-e5c434cfa2dd.gz new file mode 100644 index 0000000..029eee5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/ce915e75-2d17-4d2c-81d9-e5c434cfa2dd.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/d3867ec5-84b5-4a7b-ae38-f9125c30e0ce.gz b/ApressBook SourceCode/ApressDemo/$tf/5/d3867ec5-84b5-4a7b-ae38-f9125c30e0ce.gz new file mode 100644 index 0000000..4ca4ca8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/d3867ec5-84b5-4a7b-ae38-f9125c30e0ce.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/d5f9b685-4e4c-4474-8b00-17756b959f75.gz b/ApressBook SourceCode/ApressDemo/$tf/5/d5f9b685-4e4c-4474-8b00-17756b959f75.gz new file mode 100644 index 0000000..a6fbd90 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/d5f9b685-4e4c-4474-8b00-17756b959f75.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/e2a15ac5-707f-411c-a1ab-e99d1818db62.gz b/ApressBook SourceCode/ApressDemo/$tf/5/e2a15ac5-707f-411c-a1ab-e99d1818db62.gz new file mode 100644 index 0000000..ed07c79 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/e2a15ac5-707f-411c-a1ab-e99d1818db62.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/5/fdc83425-8eba-4d37-9d2d-a6f844f62598.gz b/ApressBook SourceCode/ApressDemo/$tf/5/fdc83425-8eba-4d37-9d2d-a6f844f62598.gz new file mode 100644 index 0000000..c99f637 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/5/fdc83425-8eba-4d37-9d2d-a6f844f62598.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/0756b686-e84d-4d43-8654-5f1a3984f0d6.gz b/ApressBook SourceCode/ApressDemo/$tf/6/0756b686-e84d-4d43-8654-5f1a3984f0d6.gz new file mode 100644 index 0000000..7018b16 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/0756b686-e84d-4d43-8654-5f1a3984f0d6.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/1bc5e926-f618-41c1-9167-a1cb5a9e6857.gz b/ApressBook SourceCode/ApressDemo/$tf/6/1bc5e926-f618-41c1-9167-a1cb5a9e6857.gz new file mode 100644 index 0000000..8f82114 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/1bc5e926-f618-41c1-9167-a1cb5a9e6857.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/213e18e6-a5ce-4d4a-b28b-d93c1272609f.gz b/ApressBook SourceCode/ApressDemo/$tf/6/213e18e6-a5ce-4d4a-b28b-d93c1272609f.gz new file mode 100644 index 0000000..7993b5b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/213e18e6-a5ce-4d4a-b28b-d93c1272609f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/2a7c74f6-4f54-4b67-92fb-0576928237d7.gz b/ApressBook SourceCode/ApressDemo/$tf/6/2a7c74f6-4f54-4b67-92fb-0576928237d7.gz new file mode 100644 index 0000000..1c0a221 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/2a7c74f6-4f54-4b67-92fb-0576928237d7.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/3ecd4e76-3b5c-4efe-a12d-8ad8f30ae849.gz b/ApressBook SourceCode/ApressDemo/$tf/6/3ecd4e76-3b5c-4efe-a12d-8ad8f30ae849.gz new file mode 100644 index 0000000..8570fa8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/3ecd4e76-3b5c-4efe-a12d-8ad8f30ae849.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/41103056-ad74-4fd9-8caa-8c67f020aca6.gz b/ApressBook SourceCode/ApressDemo/$tf/6/41103056-ad74-4fd9-8caa-8c67f020aca6.gz new file mode 100644 index 0000000..3c91e34 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/41103056-ad74-4fd9-8caa-8c67f020aca6.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/47fbd586-cd22-4468-ae49-fc97257ecd78.gz b/ApressBook SourceCode/ApressDemo/$tf/6/47fbd586-cd22-4468-ae49-fc97257ecd78.gz new file mode 100644 index 0000000..2a3f44f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/47fbd586-cd22-4468-ae49-fc97257ecd78.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/4a0a5ac6-6e9d-41ca-b553-5eb92d18b051.gz b/ApressBook SourceCode/ApressDemo/$tf/6/4a0a5ac6-6e9d-41ca-b553-5eb92d18b051.gz new file mode 100644 index 0000000..9e7c2cf Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/4a0a5ac6-6e9d-41ca-b553-5eb92d18b051.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/65918946-b110-49cf-b7cb-acdae84a7354.gz b/ApressBook SourceCode/ApressDemo/$tf/6/65918946-b110-49cf-b7cb-acdae84a7354.gz new file mode 100644 index 0000000..a1dac3a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/65918946-b110-49cf-b7cb-acdae84a7354.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/6b147e56-6f3a-452a-8e81-41975e8f3395.gz b/ApressBook SourceCode/ApressDemo/$tf/6/6b147e56-6f3a-452a-8e81-41975e8f3395.gz new file mode 100644 index 0000000..f3cc3ea Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/6b147e56-6f3a-452a-8e81-41975e8f3395.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/748199c6-e203-4727-9dac-7c96c55d2a5f.gz b/ApressBook SourceCode/ApressDemo/$tf/6/748199c6-e203-4727-9dac-7c96c55d2a5f.gz new file mode 100644 index 0000000..3277b85 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/748199c6-e203-4727-9dac-7c96c55d2a5f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/9027cde6-7407-45d4-ae15-c1285a31299d.gz b/ApressBook SourceCode/ApressDemo/$tf/6/9027cde6-7407-45d4-ae15-c1285a31299d.gz new file mode 100644 index 0000000..44b51de Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/9027cde6-7407-45d4-ae15-c1285a31299d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/9da95596-ae5e-4899-9a6a-b280516b24f8.gz b/ApressBook SourceCode/ApressDemo/$tf/6/9da95596-ae5e-4899-9a6a-b280516b24f8.gz new file mode 100644 index 0000000..108a92b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/9da95596-ae5e-4899-9a6a-b280516b24f8.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/a08e03e6-3055-40a4-ad6f-a8d820b6e5ff.gz b/ApressBook SourceCode/ApressDemo/$tf/6/a08e03e6-3055-40a4-ad6f-a8d820b6e5ff.gz new file mode 100644 index 0000000..74f1b2b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/a08e03e6-3055-40a4-ad6f-a8d820b6e5ff.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/b6865a46-3bb3-4dd3-8c86-4940f8a2344f.gz b/ApressBook SourceCode/ApressDemo/$tf/6/b6865a46-3bb3-4dd3-8c86-4940f8a2344f.gz new file mode 100644 index 0000000..60bc78e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/b6865a46-3bb3-4dd3-8c86-4940f8a2344f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/b87dfaf6-5c04-40e2-821c-fbf1fc792466.gz b/ApressBook SourceCode/ApressDemo/$tf/6/b87dfaf6-5c04-40e2-821c-fbf1fc792466.gz new file mode 100644 index 0000000..c9f1ec5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/b87dfaf6-5c04-40e2-821c-fbf1fc792466.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/b9d9cb06-261d-4c76-b402-d263801136b0.gz b/ApressBook SourceCode/ApressDemo/$tf/6/b9d9cb06-261d-4c76-b402-d263801136b0.gz new file mode 100644 index 0000000..d97600c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/b9d9cb06-261d-4c76-b402-d263801136b0.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/c6feae76-19a4-46e2-b647-d18c6626bf8d.gz b/ApressBook SourceCode/ApressDemo/$tf/6/c6feae76-19a4-46e2-b647-d18c6626bf8d.gz new file mode 100644 index 0000000..661a7de Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/c6feae76-19a4-46e2-b647-d18c6626bf8d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/ebb4b696-5de3-4b00-854a-536a2fdf5bef.gz b/ApressBook SourceCode/ApressDemo/$tf/6/ebb4b696-5de3-4b00-854a-536a2fdf5bef.gz new file mode 100644 index 0000000..9f94bdb Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/ebb4b696-5de3-4b00-854a-536a2fdf5bef.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/6/fa63ff56-0f3a-4d62-8ae4-832210c3be69.gz b/ApressBook SourceCode/ApressDemo/$tf/6/fa63ff56-0f3a-4d62-8ae4-832210c3be69.gz new file mode 100644 index 0000000..edce096 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/6/fa63ff56-0f3a-4d62-8ae4-832210c3be69.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/03878547-116b-4a27-bc3b-fb9542c40161.gz b/ApressBook SourceCode/ApressDemo/$tf/7/03878547-116b-4a27-bc3b-fb9542c40161.gz new file mode 100644 index 0000000..ee4bdc8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/03878547-116b-4a27-bc3b-fb9542c40161.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/03ac2ac7-6418-447f-8e06-f9ad1f9f2db9.gz b/ApressBook SourceCode/ApressDemo/$tf/7/03ac2ac7-6418-447f-8e06-f9ad1f9f2db9.gz new file mode 100644 index 0000000..fa1fc75 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/03ac2ac7-6418-447f-8e06-f9ad1f9f2db9.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/0a945317-fe11-4730-a33c-3f1c61572282.gz b/ApressBook SourceCode/ApressDemo/$tf/7/0a945317-fe11-4730-a33c-3f1c61572282.gz new file mode 100644 index 0000000..0eb9b20 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/0a945317-fe11-4730-a33c-3f1c61572282.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/2a938fa7-9a36-47ba-9ed9-9d9bb5c2543b.gz b/ApressBook SourceCode/ApressDemo/$tf/7/2a938fa7-9a36-47ba-9ed9-9d9bb5c2543b.gz new file mode 100644 index 0000000..b9409d8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/2a938fa7-9a36-47ba-9ed9-9d9bb5c2543b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/2b315ce7-5340-42c9-88fc-11493d5f528e.gz b/ApressBook SourceCode/ApressDemo/$tf/7/2b315ce7-5340-42c9-88fc-11493d5f528e.gz new file mode 100644 index 0000000..d82eb39 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/2b315ce7-5340-42c9-88fc-11493d5f528e.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/39728387-d55b-4387-a54a-ccfca1e14163.gz b/ApressBook SourceCode/ApressDemo/$tf/7/39728387-d55b-4387-a54a-ccfca1e14163.gz new file mode 100644 index 0000000..62b814e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/39728387-d55b-4387-a54a-ccfca1e14163.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/41d66f87-45c2-4e75-9454-4a63b2ac4f2a.gz b/ApressBook SourceCode/ApressDemo/$tf/7/41d66f87-45c2-4e75-9454-4a63b2ac4f2a.gz new file mode 100644 index 0000000..d252550 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/41d66f87-45c2-4e75-9454-4a63b2ac4f2a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/4bb9de47-9f29-4b07-98c7-00652ca73968.gz b/ApressBook SourceCode/ApressDemo/$tf/7/4bb9de47-9f29-4b07-98c7-00652ca73968.gz new file mode 100644 index 0000000..f666ff8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/4bb9de47-9f29-4b07-98c7-00652ca73968.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/526580e7-be49-4952-98d6-857639ed6120.gz b/ApressBook SourceCode/ApressDemo/$tf/7/526580e7-be49-4952-98d6-857639ed6120.gz new file mode 100644 index 0000000..539d289 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/526580e7-be49-4952-98d6-857639ed6120.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/64c03b07-9471-4dab-ab09-6b0517ade7dc.gz b/ApressBook SourceCode/ApressDemo/$tf/7/64c03b07-9471-4dab-ab09-6b0517ade7dc.gz new file mode 100644 index 0000000..64e3930 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/64c03b07-9471-4dab-ab09-6b0517ade7dc.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/675adf07-6e1e-499e-87dd-03719156741e.gz b/ApressBook SourceCode/ApressDemo/$tf/7/675adf07-6e1e-499e-87dd-03719156741e.gz new file mode 100644 index 0000000..4aa7820 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/675adf07-6e1e-499e-87dd-03719156741e.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/67bd9c67-ba9f-4d13-abe1-0b90b4f01668.gz b/ApressBook SourceCode/ApressDemo/$tf/7/67bd9c67-ba9f-4d13-abe1-0b90b4f01668.gz new file mode 100644 index 0000000..569972e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/67bd9c67-ba9f-4d13-abe1-0b90b4f01668.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/6b2512b7-c92b-4353-a36d-ef6aefd332d4.gz b/ApressBook SourceCode/ApressDemo/$tf/7/6b2512b7-c92b-4353-a36d-ef6aefd332d4.gz new file mode 100644 index 0000000..505e0c0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/6b2512b7-c92b-4353-a36d-ef6aefd332d4.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/746cecd7-64dd-442b-973e-aa07340bea43.gz b/ApressBook SourceCode/ApressDemo/$tf/7/746cecd7-64dd-442b-973e-aa07340bea43.gz new file mode 100644 index 0000000..2f1c659 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/746cecd7-64dd-442b-973e-aa07340bea43.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/74e86e97-f7b1-4efb-86d8-02ee4c825191.gz b/ApressBook SourceCode/ApressDemo/$tf/7/74e86e97-f7b1-4efb-86d8-02ee4c825191.gz new file mode 100644 index 0000000..884213c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/74e86e97-f7b1-4efb-86d8-02ee4c825191.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/7b81cc07-12f7-4ee6-a4c4-75e46637899e.gz b/ApressBook SourceCode/ApressDemo/$tf/7/7b81cc07-12f7-4ee6-a4c4-75e46637899e.gz new file mode 100644 index 0000000..9762175 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/7b81cc07-12f7-4ee6-a4c4-75e46637899e.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/8498af97-f4cb-4826-bf07-f118d32b62ee.gz b/ApressBook SourceCode/ApressDemo/$tf/7/8498af97-f4cb-4826-bf07-f118d32b62ee.gz new file mode 100644 index 0000000..8338ac5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/8498af97-f4cb-4826-bf07-f118d32b62ee.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/8d20bb17-a708-455f-b151-75a1b1321812.gz b/ApressBook SourceCode/ApressDemo/$tf/7/8d20bb17-a708-455f-b151-75a1b1321812.gz new file mode 100644 index 0000000..1177197 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/8d20bb17-a708-455f-b151-75a1b1321812.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/91431747-164b-4e98-9250-aa0f665e987a.gz b/ApressBook SourceCode/ApressDemo/$tf/7/91431747-164b-4e98-9250-aa0f665e987a.gz new file mode 100644 index 0000000..991b9bc Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/91431747-164b-4e98-9250-aa0f665e987a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/a35cad57-d4cf-477e-b585-466ed7036fe7.gz b/ApressBook SourceCode/ApressDemo/$tf/7/a35cad57-d4cf-477e-b585-466ed7036fe7.gz new file mode 100644 index 0000000..98a25e5 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/a35cad57-d4cf-477e-b585-466ed7036fe7.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/b9f85b17-1eca-4fcb-abb9-4d1d43c3b880.gz b/ApressBook SourceCode/ApressDemo/$tf/7/b9f85b17-1eca-4fcb-abb9-4d1d43c3b880.gz new file mode 100644 index 0000000..5ba7036 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/b9f85b17-1eca-4fcb-abb9-4d1d43c3b880.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/cd36e047-e9ed-4f6e-9bf6-34186d42f06a.gz b/ApressBook SourceCode/ApressDemo/$tf/7/cd36e047-e9ed-4f6e-9bf6-34186d42f06a.gz new file mode 100644 index 0000000..470c6f9 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/cd36e047-e9ed-4f6e-9bf6-34186d42f06a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/d01f4587-d6de-4bea-b795-5d4deda22a50.gz b/ApressBook SourceCode/ApressDemo/$tf/7/d01f4587-d6de-4bea-b795-5d4deda22a50.gz new file mode 100644 index 0000000..e592d48 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/d01f4587-d6de-4bea-b795-5d4deda22a50.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/d085bd57-3d27-42c8-bf28-9dae2c70eafc.gz b/ApressBook SourceCode/ApressDemo/$tf/7/d085bd57-3d27-42c8-bf28-9dae2c70eafc.gz new file mode 100644 index 0000000..f428110 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/d085bd57-3d27-42c8-bf28-9dae2c70eafc.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/d4a4b587-4286-4a74-81f4-11c334dc7e01.gz b/ApressBook SourceCode/ApressDemo/$tf/7/d4a4b587-4286-4a74-81f4-11c334dc7e01.gz new file mode 100644 index 0000000..407b76e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/d4a4b587-4286-4a74-81f4-11c334dc7e01.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/d6375b07-0704-42c9-9022-5943d18d653d.gz b/ApressBook SourceCode/ApressDemo/$tf/7/d6375b07-0704-42c9-9022-5943d18d653d.gz new file mode 100644 index 0000000..035b51a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/d6375b07-0704-42c9-9022-5943d18d653d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/eb5dbd57-4577-4fa9-becf-4921481381a0.gz b/ApressBook SourceCode/ApressDemo/$tf/7/eb5dbd57-4577-4fa9-becf-4921481381a0.gz new file mode 100644 index 0000000..9720431 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/eb5dbd57-4577-4fa9-becf-4921481381a0.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/7/fbf09397-2111-4a2a-8dd2-9d78f4a28340.gz b/ApressBook SourceCode/ApressDemo/$tf/7/fbf09397-2111-4a2a-8dd2-9d78f4a28340.gz new file mode 100644 index 0000000..fa1afc1 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/7/fbf09397-2111-4a2a-8dd2-9d78f4a28340.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/05045758-5bc0-4a31-8e84-6ca7bbc16408.gz b/ApressBook SourceCode/ApressDemo/$tf/8/05045758-5bc0-4a31-8e84-6ca7bbc16408.gz new file mode 100644 index 0000000..11e5d28 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/05045758-5bc0-4a31-8e84-6ca7bbc16408.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/08701c08-765e-41ef-8e9f-ba7e6474e433.gz b/ApressBook SourceCode/ApressDemo/$tf/8/08701c08-765e-41ef-8e9f-ba7e6474e433.gz new file mode 100644 index 0000000..2a62a73 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/08701c08-765e-41ef-8e9f-ba7e6474e433.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/13c1c6a8-3453-4ac3-94a1-64bf1d2987de.gz b/ApressBook SourceCode/ApressDemo/$tf/8/13c1c6a8-3453-4ac3-94a1-64bf1d2987de.gz new file mode 100644 index 0000000..6e39568 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/13c1c6a8-3453-4ac3-94a1-64bf1d2987de.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/2cd9b718-f642-4e39-92a5-35908322ea5b.gz b/ApressBook SourceCode/ApressDemo/$tf/8/2cd9b718-f642-4e39-92a5-35908322ea5b.gz new file mode 100644 index 0000000..28c7461 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/2cd9b718-f642-4e39-92a5-35908322ea5b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/342d6e28-e6da-4cbb-9010-75d04da0a4f5.gz b/ApressBook SourceCode/ApressDemo/$tf/8/342d6e28-e6da-4cbb-9010-75d04da0a4f5.gz new file mode 100644 index 0000000..8a3d473 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/342d6e28-e6da-4cbb-9010-75d04da0a4f5.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/412e4358-f649-413f-b07e-8ff3691f0b77.gz b/ApressBook SourceCode/ApressDemo/$tf/8/412e4358-f649-413f-b07e-8ff3691f0b77.gz new file mode 100644 index 0000000..bc94b1a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/412e4358-f649-413f-b07e-8ff3691f0b77.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/57d40528-bd3a-4bb2-93d4-fdb583187975.gz b/ApressBook SourceCode/ApressDemo/$tf/8/57d40528-bd3a-4bb2-93d4-fdb583187975.gz new file mode 100644 index 0000000..a76a2cb Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/57d40528-bd3a-4bb2-93d4-fdb583187975.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/5dbd1168-e178-4c3b-bc0b-30fe304cc213.gz b/ApressBook SourceCode/ApressDemo/$tf/8/5dbd1168-e178-4c3b-bc0b-30fe304cc213.gz new file mode 100644 index 0000000..da45a99 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/5dbd1168-e178-4c3b-bc0b-30fe304cc213.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/5e6ddb38-0351-49b2-a59b-c16d4f054d68.gz b/ApressBook SourceCode/ApressDemo/$tf/8/5e6ddb38-0351-49b2-a59b-c16d4f054d68.gz new file mode 100644 index 0000000..bc0bbf7 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/5e6ddb38-0351-49b2-a59b-c16d4f054d68.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/68a82048-2c22-401c-94e3-3044981f6e2f.gz b/ApressBook SourceCode/ApressDemo/$tf/8/68a82048-2c22-401c-94e3-3044981f6e2f.gz new file mode 100644 index 0000000..b3ea407 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/68a82048-2c22-401c-94e3-3044981f6e2f.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/7873fb18-2ee7-4b9b-9f72-6d9a1bd0d1ed.gz b/ApressBook SourceCode/ApressDemo/$tf/8/7873fb18-2ee7-4b9b-9f72-6d9a1bd0d1ed.gz new file mode 100644 index 0000000..3e2d300 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/7873fb18-2ee7-4b9b-9f72-6d9a1bd0d1ed.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/7a460d08-0b0b-4aba-a8cd-35c79e5c5c4b.gz b/ApressBook SourceCode/ApressDemo/$tf/8/7a460d08-0b0b-4aba-a8cd-35c79e5c5c4b.gz new file mode 100644 index 0000000..8d04b93 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/7a460d08-0b0b-4aba-a8cd-35c79e5c5c4b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/81978b68-913c-460b-a57f-4edb89eaee95.gz b/ApressBook SourceCode/ApressDemo/$tf/8/81978b68-913c-460b-a57f-4edb89eaee95.gz new file mode 100644 index 0000000..0eb9b20 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/81978b68-913c-460b-a57f-4edb89eaee95.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/958b1d08-dce6-4848-80f9-a130b8a85e56.gz b/ApressBook SourceCode/ApressDemo/$tf/8/958b1d08-dce6-4848-80f9-a130b8a85e56.gz new file mode 100644 index 0000000..2951b52 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/958b1d08-dce6-4848-80f9-a130b8a85e56.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/9f7b44c8-7173-4aa8-ac54-817a64054a70.gz b/ApressBook SourceCode/ApressDemo/$tf/8/9f7b44c8-7173-4aa8-ac54-817a64054a70.gz new file mode 100644 index 0000000..dd879fc Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/9f7b44c8-7173-4aa8-ac54-817a64054a70.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/aef60398-8b0c-441a-9f60-755acbc8f953.gz b/ApressBook SourceCode/ApressDemo/$tf/8/aef60398-8b0c-441a-9f60-755acbc8f953.gz new file mode 100644 index 0000000..b422e24 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/aef60398-8b0c-441a-9f60-755acbc8f953.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/ba1f7038-0ed6-4935-a0c7-6424db479597.gz b/ApressBook SourceCode/ApressDemo/$tf/8/ba1f7038-0ed6-4935-a0c7-6424db479597.gz new file mode 100644 index 0000000..0079922 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/ba1f7038-0ed6-4935-a0c7-6424db479597.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/bfb98448-48c7-4f1a-9797-1e5b199add9e.gz b/ApressBook SourceCode/ApressDemo/$tf/8/bfb98448-48c7-4f1a-9797-1e5b199add9e.gz new file mode 100644 index 0000000..3c8fcef Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/bfb98448-48c7-4f1a-9797-1e5b199add9e.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/c740a0d8-d30d-48b6-9eb2-8ac3403631c5.gz b/ApressBook SourceCode/ApressDemo/$tf/8/c740a0d8-d30d-48b6-9eb2-8ac3403631c5.gz new file mode 100644 index 0000000..32eb34a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/c740a0d8-d30d-48b6-9eb2-8ac3403631c5.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/d22ece38-cb27-4215-be2c-5ffc214ddeda.gz b/ApressBook SourceCode/ApressDemo/$tf/8/d22ece38-cb27-4215-be2c-5ffc214ddeda.gz new file mode 100644 index 0000000..5f0c262 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/d22ece38-cb27-4215-be2c-5ffc214ddeda.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/d84f78a8-ad89-44f9-8edb-2f4d698afa26.gz b/ApressBook SourceCode/ApressDemo/$tf/8/d84f78a8-ad89-44f9-8edb-2f4d698afa26.gz new file mode 100644 index 0000000..f4c5efe Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/d84f78a8-ad89-44f9-8edb-2f4d698afa26.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/de779818-1d90-4704-ac8d-22a22511d899.gz b/ApressBook SourceCode/ApressDemo/$tf/8/de779818-1d90-4704-ac8d-22a22511d899.gz new file mode 100644 index 0000000..264a7ea Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/de779818-1d90-4704-ac8d-22a22511d899.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/ded66748-0617-4672-93b0-dc0292ad17d4.gz b/ApressBook SourceCode/ApressDemo/$tf/8/ded66748-0617-4672-93b0-dc0292ad17d4.gz new file mode 100644 index 0000000..c188ad4 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/ded66748-0617-4672-93b0-dc0292ad17d4.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/e5991218-8d5c-406c-ac05-e302af2381af.gz b/ApressBook SourceCode/ApressDemo/$tf/8/e5991218-8d5c-406c-ac05-e302af2381af.gz new file mode 100644 index 0000000..f1ea199 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/e5991218-8d5c-406c-ac05-e302af2381af.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/e795ad28-ac32-496a-a0eb-fa04dbb6c27a.gz b/ApressBook SourceCode/ApressDemo/$tf/8/e795ad28-ac32-496a-a0eb-fa04dbb6c27a.gz new file mode 100644 index 0000000..b043eec Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/e795ad28-ac32-496a-a0eb-fa04dbb6c27a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/ed456218-c8dc-42e5-bac6-d7cbbfb31884.gz b/ApressBook SourceCode/ApressDemo/$tf/8/ed456218-c8dc-42e5-bac6-d7cbbfb31884.gz new file mode 100644 index 0000000..eef8d3c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/ed456218-c8dc-42e5-bac6-d7cbbfb31884.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/f0b6e598-ed29-4c6a-a176-cfcc07d2562d.gz b/ApressBook SourceCode/ApressDemo/$tf/8/f0b6e598-ed29-4c6a-a176-cfcc07d2562d.gz new file mode 100644 index 0000000..f1ea199 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/f0b6e598-ed29-4c6a-a176-cfcc07d2562d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/8/fb0f6288-fff7-48e5-ae18-4efa773d8bb8.gz b/ApressBook SourceCode/ApressDemo/$tf/8/fb0f6288-fff7-48e5-ae18-4efa773d8bb8.gz new file mode 100644 index 0000000..2fb273f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/8/fb0f6288-fff7-48e5-ae18-4efa773d8bb8.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/145ab829-5aee-482e-99d3-a075c8f7c402.gz b/ApressBook SourceCode/ApressDemo/$tf/9/145ab829-5aee-482e-99d3-a075c8f7c402.gz new file mode 100644 index 0000000..7cffa27 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/145ab829-5aee-482e-99d3-a075c8f7c402.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/167a83f9-54d6-43ba-bc6a-334b2a0f5e3e.gz b/ApressBook SourceCode/ApressDemo/$tf/9/167a83f9-54d6-43ba-bc6a-334b2a0f5e3e.gz new file mode 100644 index 0000000..edc4b6c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/167a83f9-54d6-43ba-bc6a-334b2a0f5e3e.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/181ede19-e29d-4ad2-be33-f5083a20535b.gz b/ApressBook SourceCode/ApressDemo/$tf/9/181ede19-e29d-4ad2-be33-f5083a20535b.gz new file mode 100644 index 0000000..d4e7b73 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/181ede19-e29d-4ad2-be33-f5083a20535b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/30495fd9-47e8-4370-86cd-06206f1bfebc.gz b/ApressBook SourceCode/ApressDemo/$tf/9/30495fd9-47e8-4370-86cd-06206f1bfebc.gz new file mode 100644 index 0000000..e45eac2 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/30495fd9-47e8-4370-86cd-06206f1bfebc.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/31de5529-c8f5-49d8-a2da-1eae64ceed8d.gz b/ApressBook SourceCode/ApressDemo/$tf/9/31de5529-c8f5-49d8-a2da-1eae64ceed8d.gz new file mode 100644 index 0000000..0d47115 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/31de5529-c8f5-49d8-a2da-1eae64ceed8d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/38773f49-9051-4c03-8786-397816e00a8b.gz b/ApressBook SourceCode/ApressDemo/$tf/9/38773f49-9051-4c03-8786-397816e00a8b.gz new file mode 100644 index 0000000..6786135 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/38773f49-9051-4c03-8786-397816e00a8b.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/454e3c59-675a-4c5f-93d8-055259b7aae9.gz b/ApressBook SourceCode/ApressDemo/$tf/9/454e3c59-675a-4c5f-93d8-055259b7aae9.gz new file mode 100644 index 0000000..6fb0162 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/454e3c59-675a-4c5f-93d8-055259b7aae9.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/75f17019-cbdd-4eca-8d75-71047cab0f2c.gz b/ApressBook SourceCode/ApressDemo/$tf/9/75f17019-cbdd-4eca-8d75-71047cab0f2c.gz new file mode 100644 index 0000000..9f0f7e3 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/75f17019-cbdd-4eca-8d75-71047cab0f2c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/7f379c69-9489-47fd-9c95-219015c79feb.gz b/ApressBook SourceCode/ApressDemo/$tf/9/7f379c69-9489-47fd-9c95-219015c79feb.gz new file mode 100644 index 0000000..4444f43 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/7f379c69-9489-47fd-9c95-219015c79feb.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/896cfd79-593f-4249-9423-dba41885be32.gz b/ApressBook SourceCode/ApressDemo/$tf/9/896cfd79-593f-4249-9423-dba41885be32.gz new file mode 100644 index 0000000..b40bdf1 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/896cfd79-593f-4249-9423-dba41885be32.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/9418cb29-9ca7-4289-812f-c3d1099f63ec.gz b/ApressBook SourceCode/ApressDemo/$tf/9/9418cb29-9ca7-4289-812f-c3d1099f63ec.gz new file mode 100644 index 0000000..4f2711e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/9418cb29-9ca7-4289-812f-c3d1099f63ec.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/97fd9049-d575-4922-8b1e-3a928e2420bc.gz b/ApressBook SourceCode/ApressDemo/$tf/9/97fd9049-d575-4922-8b1e-3a928e2420bc.gz new file mode 100644 index 0000000..4c7b2ac Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/97fd9049-d575-4922-8b1e-3a928e2420bc.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/a1081759-9982-49b1-8a91-b2b8e9f05500.gz b/ApressBook SourceCode/ApressDemo/$tf/9/a1081759-9982-49b1-8a91-b2b8e9f05500.gz new file mode 100644 index 0000000..fc7ae10 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/a1081759-9982-49b1-8a91-b2b8e9f05500.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/a2978a79-465f-4d46-b2f3-ed509b9bf58c.gz b/ApressBook SourceCode/ApressDemo/$tf/9/a2978a79-465f-4d46-b2f3-ed509b9bf58c.gz new file mode 100644 index 0000000..4f9a578 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/a2978a79-465f-4d46-b2f3-ed509b9bf58c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/b0271869-e2a2-4f0c-a155-a018fa267051.gz b/ApressBook SourceCode/ApressDemo/$tf/9/b0271869-e2a2-4f0c-a155-a018fa267051.gz new file mode 100644 index 0000000..8aea53f Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/b0271869-e2a2-4f0c-a155-a018fa267051.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/b0b09119-c272-4470-89ab-b6461e84665c.gz b/ApressBook SourceCode/ApressDemo/$tf/9/b0b09119-c272-4470-89ab-b6461e84665c.gz new file mode 100644 index 0000000..bc21ec4 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/b0b09119-c272-4470-89ab-b6461e84665c.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/b87f70f9-e24c-46a3-b2c0-68f5f7b7607d.gz b/ApressBook SourceCode/ApressDemo/$tf/9/b87f70f9-e24c-46a3-b2c0-68f5f7b7607d.gz new file mode 100644 index 0000000..bf501c7 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/b87f70f9-e24c-46a3-b2c0-68f5f7b7607d.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/cbff3839-dc30-4349-8bbb-9648b9629adc.gz b/ApressBook SourceCode/ApressDemo/$tf/9/cbff3839-dc30-4349-8bbb-9648b9629adc.gz new file mode 100644 index 0000000..3f21029 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/cbff3839-dc30-4349-8bbb-9648b9629adc.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/d17f51f9-5aa4-4d44-896b-08cf3534bb32.gz b/ApressBook SourceCode/ApressDemo/$tf/9/d17f51f9-5aa4-4d44-896b-08cf3534bb32.gz new file mode 100644 index 0000000..352cf45 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/d17f51f9-5aa4-4d44-896b-08cf3534bb32.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/d2dc0519-0763-4fe3-96e9-53e588d4c3dd.gz b/ApressBook SourceCode/ApressDemo/$tf/9/d2dc0519-0763-4fe3-96e9-53e588d4c3dd.gz new file mode 100644 index 0000000..2f8d8a6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/d2dc0519-0763-4fe3-96e9-53e588d4c3dd.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/f07ffe89-4864-496c-a858-ac34c762def7.gz b/ApressBook SourceCode/ApressDemo/$tf/9/f07ffe89-4864-496c-a858-ac34c762def7.gz new file mode 100644 index 0000000..cfc4f03 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/f07ffe89-4864-496c-a858-ac34c762def7.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/9/f44f4ba9-9d0c-4e19-8e42-746b1771104a.gz b/ApressBook SourceCode/ApressDemo/$tf/9/f44f4ba9-9d0c-4e19-8e42-746b1771104a.gz new file mode 100644 index 0000000..4857be7 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/9/f44f4ba9-9d0c-4e19-8e42-746b1771104a.gz differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/localversion.tf1 b/ApressBook SourceCode/ApressDemo/$tf/localversion.tf1 new file mode 100644 index 0000000..3477118 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/localversion.tf1 differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/localversion.tfb b/ApressBook SourceCode/ApressDemo/$tf/localversion.tfb new file mode 100644 index 0000000..768931e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/localversion.tfb differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/pendingchanges.tf1 b/ApressBook SourceCode/ApressDemo/$tf/pendingchanges.tf1 new file mode 100644 index 0000000..9e13d31 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/pendingchanges.tf1 differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/pendingchanges.tfb b/ApressBook SourceCode/ApressDemo/$tf/pendingchanges.tfb new file mode 100644 index 0000000..3149608 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/pendingchanges.tfb differ diff --git a/ApressBook SourceCode/ApressDemo/$tf/properties.tf1 b/ApressBook SourceCode/ApressDemo/$tf/properties.tf1 new file mode 100644 index 0000000..a87f963 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/$tf/properties.tf1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo.psess b/ApressBook SourceCode/ApressDemo/ApressDemo.psess new file mode 100644 index 0000000..8dd686c --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo.psess @@ -0,0 +1,75 @@ + + + + ApressDemo.sln + Sampling + None + true + true + Timestamp + Cycles + 10000000 + 10 + 10 + + false + + + + false + 500 + + \Memory\Pages/sec + \PhysicalDisk(_Total)\Avg. Disk Queue Length + \Processor(_Total)\% Processor Time + + + + true + false + false + + false + + + false + + + + ApressDemo\obj\x64\Debug\ApressDemo.exe + 01/01/0001 00:00:00 + true + true + false + false + false + true + false + true + false + Executable + ApressDemo\bin\x64\Debug\ApressDemo.exe + ApressDemo\bin\x64\Debug\ + + + IIS + InternetExplorer + true + false + + false + + + false + + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}|ApressDemo\ApressDemo.csproj + ApressDemo\ApressDemo.csproj + ApressDemo + + + + + :PB:{BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}|ApressDemo\ApressDemo.csproj + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo.sln b/ApressBook SourceCode/ApressDemo/ApressDemo.sln new file mode 100644 index 0000000..4372ae2 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo.sln @@ -0,0 +1,79 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ApressDemo", "ApressDemo\ApressDemo.csproj", "{BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BackgroundAgentDemo", "BackgroundAgentDemo\BackgroundAgentDemo.csproj", "{60282593-9954-434D-A19F-08CC0F601A11}" +EndProject +Global + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 3 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = https://samidipbasu.visualstudio.com/defaultcollection + SccLocalPath0 = . + SccProjectUniqueName1 = ApressDemo\\ApressDemo.csproj + SccProjectName1 = ApressDemo + SccLocalPath1 = ApressDemo + SccProjectUniqueName2 = BackgroundAgentDemo\\BackgroundAgentDemo.csproj + SccProjectName2 = BackgroundAgentDemo + SccLocalPath2 = BackgroundAgentDemo + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|Any CPU.ActiveCfg = Debug|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|Any CPU.Build.0 = Debug|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|Any CPU.Deploy.0 = Debug|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|ARM.ActiveCfg = Debug|ARM + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|ARM.Build.0 = Debug|ARM + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|ARM.Deploy.0 = Debug|ARM + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|x64.ActiveCfg = Debug|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|x64.Build.0 = Debug|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|x64.Deploy.0 = Debug|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|x86.ActiveCfg = Debug|x86 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|x86.Build.0 = Debug|x86 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Debug|x86.Deploy.0 = Debug|x86 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|Any CPU.ActiveCfg = Release|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|Any CPU.Build.0 = Release|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|Any CPU.Deploy.0 = Release|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|ARM.ActiveCfg = Release|ARM + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|ARM.Build.0 = Release|ARM + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|ARM.Deploy.0 = Release|ARM + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|x64.ActiveCfg = Release|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|x64.Build.0 = Release|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|x64.Deploy.0 = Release|x64 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|x86.ActiveCfg = Release|x86 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|x86.Build.0 = Release|x86 + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF}.Release|x86.Deploy.0 = Release|x86 + {60282593-9954-434D-A19F-08CC0F601A11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60282593-9954-434D-A19F-08CC0F601A11}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60282593-9954-434D-A19F-08CC0F601A11}.Debug|ARM.ActiveCfg = Debug|ARM + {60282593-9954-434D-A19F-08CC0F601A11}.Debug|ARM.Build.0 = Debug|ARM + {60282593-9954-434D-A19F-08CC0F601A11}.Debug|x64.ActiveCfg = Debug|x64 + {60282593-9954-434D-A19F-08CC0F601A11}.Debug|x64.Build.0 = Debug|x64 + {60282593-9954-434D-A19F-08CC0F601A11}.Debug|x86.ActiveCfg = Debug|x86 + {60282593-9954-434D-A19F-08CC0F601A11}.Debug|x86.Build.0 = Debug|x86 + {60282593-9954-434D-A19F-08CC0F601A11}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60282593-9954-434D-A19F-08CC0F601A11}.Release|Any CPU.Build.0 = Release|Any CPU + {60282593-9954-434D-A19F-08CC0F601A11}.Release|ARM.ActiveCfg = Release|ARM + {60282593-9954-434D-A19F-08CC0F601A11}.Release|ARM.Build.0 = Release|ARM + {60282593-9954-434D-A19F-08CC0F601A11}.Release|x64.ActiveCfg = Release|x64 + {60282593-9954-434D-A19F-08CC0F601A11}.Release|x64.Build.0 = Release|x64 + {60282593-9954-434D-A19F-08CC0F601A11}.Release|x86.ActiveCfg = Release|x86 + {60282593-9954-434D-A19F-08CC0F601A11}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(Performance) = preSolution + HasPerformanceSessions = true + EndGlobalSection +EndGlobal diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo.v11.suo b/ApressBook SourceCode/ApressDemo/ApressDemo.v11.suo new file mode 100644 index 0000000..9f7f73a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo.v11.suo differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo.vssscc b/ApressBook SourceCode/ApressDemo/ApressDemo.vssscc new file mode 100644 index 0000000..6cb031b --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo.vssscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT" +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/App.xaml b/ApressBook SourceCode/ApressDemo/ApressDemo/App.xaml new file mode 100644 index 0000000..55c5527 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/App.xaml @@ -0,0 +1,25 @@ + + + + + + + + + + + Apress Featured Books Demo + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/App.xaml.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/App.xaml.cs new file mode 100644 index 0000000..0d46684 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/App.xaml.cs @@ -0,0 +1,585 @@ +using ApressDemo.Common; +using ApressDemo.Models; +using ApressDemo.ViewModels; +using ApressDemo.Views; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Threading.Tasks; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.ApplicationModel.Background; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.Storage; +using Windows.Storage.Streams; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; +using Windows.ApplicationModel.Search; +using Windows.UI.Notifications; +using Windows.Data.Xml.Dom; +using Windows.Networking.PushNotifications; +using Microsoft.WindowsAzure.MobileServices; + +using Microsoft.Live; +using MC.MetroGridHelper; + + +namespace ApressDemo +{ + sealed partial class App : Application + { + #region "Global Members" + + private FlipViewDemoViewModel _flipViewDemoVM; + private FeaturedApressBookListViewModel _featuredBookListVM; + private LiveConnectSession _session = null; + + public static PushNotificationChannel CurrentChannel { get; private set; } + public static MobileServiceClient ZumoClient = new MobileServiceClient("https://apresszumo.azure-mobile.net/", "pWnmnZYMQEnkguLnbOJdTdSFdjBsuV34"); + + #endregion + + #region "Local Members" + + // Reference to Local Application Settings. + Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; + + // Reference to Roaming Application Settings. + Windows.Storage.ApplicationDataContainer roamingSettings = Windows.Storage.ApplicationData.Current.RoamingSettings; + + // Reference to Local Folder. + Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder; + + #endregion + + #region "Properties" + + public FlipViewDemoViewModel FlipViewDemoVM + { + get { return _flipViewDemoVM; } + set { _flipViewDemoVM = value; } + } + + public FeaturedApressBookListViewModel FeaturedBookListVM + { + get { return _featuredBookListVM; } + set { _featuredBookListVM = value; } + } + + public LiveConnectSession LiveSession + { + get { return _session; } + set {_session = value; } + } + + #endregion + + #region "Constructor" + + public App() + { + this.InitializeComponent(); + this.Suspending += OnSuspending; + this.Resuming += OnResuming; + + FlipViewDemoVM = new FlipViewDemoViewModel(); + FlipViewDemoVM.LoadFlipViewDemoVM(FlipViewDemoVM); + + FeaturedBookListVM = new FeaturedApressBookListViewModel(); + + // DemoDataPersistenceCodeThroughSettings(); + // DemoDataPersistenceCodeThroughFiles(); + // SaveCustomData(); + // ReadCustomData(); + // SQLiteDemo(); + + // Windows.Storage.ApplicationData.Current.DataChanged += new TypedEventHandler(DataChangeHandler); + + // this.BackgroundAgentRegistration(); + this.UpdateTiles(); + // this.UpdateSecondaryTile(); + this.UpdateBadge(); + // this.SendToasts(); + } + + #endregion + + #region "Event Handlers" + + protected override async void OnLaunched(LaunchActivatedEventArgs args) + { + // EstablishPushNotificationChannel(); + + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + + if (rootFrame == null) + { + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame(); + //Associate the frame with a SuspensionManager key + SuspensionManager.RegisterFrame(rootFrame, "AppFrame"); + + if (args.PreviousExecutionState == ApplicationExecutionState.Terminated || args.PreviousExecutionState == ApplicationExecutionState.NotRunning) + { + // Restore the saved session state only when appropriate. + try + { + // Hydrate with sample data. + FeaturedBookListVM.LoadFeaturedBooksDemoVM(FeaturedBookListVM); + + await SuspensionManager.RestoreAsync(); + } + catch (SuspensionManagerException) + { + //Something went wrong restoring state. + //Assume there is no state and continue + } + } + else + { + // Hydrate with sample data. + FeaturedBookListVM.LoadFeaturedBooksDemoVM(FeaturedBookListVM); + } + + // MetroGridHelper.IsVisible = true; + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + if (rootFrame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + if (!rootFrame.Navigate(typeof(FeaturedBookList))) + { + throw new Exception("Failed to create initial page"); + } + } + + // Ensure the current window is active + Window.Current.Activate(); + } + + private async void OnSuspending(object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral(); + + // Save regular settings or App level data. + SuspensionManager.SessionState["LastViewedTimeStamp"] = DateTime.Now.ToString(); + await SuspensionManager.SaveAsync(); + + // Save custom data. + this.SaveCustomData(); + + deferral.Complete(); + } + + private void OnResuming(object sender, object e) + { + string lastViewTimeStamp = (string)SuspensionManager.SessionState["LastViewedTimeStamp"]; + } + + private void DataChangeHandler(Windows.Storage.ApplicationData appData, object someObject) + { + // Refresh local data here. + } + + protected async override void OnSearchActivated(Windows.ApplicationModel.Activation.SearchActivatedEventArgs args) + { + // TODO: Register the Windows.ApplicationModel.Search.SearchPane.GetForCurrentView().QuerySubmitted + // event in OnWindowCreated to speed up searches once the application is already running + + // If the Window isn't already using Frame navigation, insert our own Frame + var previousContent = Window.Current.Content; + var frame = previousContent as Frame; + + // If the app does not contain a top-level frame, it is possible that this + // is the initial launch of the app. Typically this method and OnLaunched + // in App.xaml.cs can call a common method. + if (frame == null) + { + // Create a Frame to act as the navigation context and associate it with + // a SuspensionManager key + frame = new Frame(); + ApressDemo.Common.SuspensionManager.RegisterFrame(frame, "AppFrame"); + + if (args.PreviousExecutionState == ApplicationExecutionState.Terminated) + { + // Restore the saved session state only when appropriate + try + { + await ApressDemo.Common.SuspensionManager.RestoreAsync(); + } + catch (ApressDemo.Common.SuspensionManagerException) + { + //Something went wrong restoring state. + //Assume there is no state and continue + } + } + } + + frame.Navigate(typeof(SearchResultsPage), args.QueryText); + Window.Current.Content = frame; + + // Ensure the current window is active + Window.Current.Activate(); + } + + #endregion + + #region "Methods" + + private void DemoDataPersistenceCodeThroughSettings() + { + // Persisting simple Application Settings. + localSettings.Values["CurrentReadingBook"] = "Migrating to Windows Phone"; + roamingSettings.Values["LastPageReadOnCurrentBook"] = 20; + + // Organizing settings in containers. + Windows.Storage.ApplicationDataContainer container = localSettings.CreateContainer("FavoriteBooks", Windows.Storage.ApplicationDataCreateDisposition.Always); + if (localSettings.Containers.ContainsKey("FavoriteBooks")) + { + localSettings.Containers["FavoriteBooks"].Values["FavoriteWindowsPhoneBook"] = "Windows Phone Recipes"; + } + + + // Reading settings back. + string currentBook = string.Empty; + int lastPageReadOnCurrentBook; + + if (localSettings.Values["CurrentReadingBook"] != null) + currentBook = localSettings.Values["CurrentReadingBook"].ToString(); + + if (roamingSettings.Values["LastPageReadOnCurrentBook"] != null) + lastPageReadOnCurrentBook = Convert.ToInt16(roamingSettings.Values["LastPageReadOnCurrentBook"]); + + bool hasFavoritesContainer = localSettings.Containers.ContainsKey("FavoriteBooks"); + string favoriteWindowsPhoneBook = string.Empty; + + if (hasFavoritesContainer) + { + if (localSettings.Containers["FavoriteBooks"].Values.ContainsKey("FavoriteWindowsPhoneBook")) + favoriteWindowsPhoneBook = localSettings.Containers["FavoriteBooks"].Values["FavoriteWindowsPhoneBook"].ToString(); + } + + + // Deleting Settings from Storage. + localSettings.Values.Remove("CurrentReadingBook"); + roamingSettings.Values.Remove("LastPageReadOnCurrentBook"); + localSettings.DeleteContainer("FavoriteBooks"); + } + + private async void DemoDataPersistenceCodeThroughFiles() + { + StorageFile localFileToWrite = await localFolder.CreateFileAsync("FileTest.txt", CreationCollisionOption.ReplaceExisting); + await FileIO.WriteTextAsync(localFileToWrite, "This is a sample file!"); + + StorageFile localFileToRead = await localFolder.GetFileAsync("FileTest.txt"); + string textRead = await FileIO.ReadTextAsync(localFileToRead); + + StorageFile localFileToDelete = await localFolder.GetFileAsync("FileTest.txt"); + await localFileToDelete.DeleteAsync(); + } + + private async void SaveCustomData() + { + MemoryStream customDataToSave = new MemoryStream(); + DataContractSerializer serializer = new DataContractSerializer(typeof(ObservableCollection)); + serializer.WriteObject(customDataToSave, FeaturedBookListVM.FeaturedApressBooks); + + // Write serialized custom data to File on HardDisk. + StorageFile fileToWrite = await localFolder.CreateFileAsync("CustomSerializedFile.xml", CreationCollisionOption.ReplaceExisting); + using (Stream fileStream = await fileToWrite.OpenStreamForWriteAsync()) + { + customDataToSave.Seek(0, SeekOrigin.Begin); + await customDataToSave.CopyToAsync(fileStream); + await fileStream.FlushAsync(); + } + } + + private async void ReadCustomData() + { + StorageFile fileToRead = await localFolder.GetFileAsync("CustomSerializedFile.xml"); + using (IInputStream inStream = await fileToRead.OpenSequentialReadAsync()) + { + // Read data from File & Deserialize. + DataContractSerializer serializer = new DataContractSerializer(typeof(ObservableCollection)); + FeaturedBookListVM.FeaturedApressBooks = (ObservableCollection)serializer.ReadObject(inStream.AsStreamForRead()); + } + } + + public async Task> ReadCustomDataDeferred() + { + StorageFile fileToRead = await localFolder.GetFileAsync("CustomSerializedFile.xml"); + using (IInputStream inStream = await fileToRead.OpenSequentialReadAsync()) + { + // Read data from File & Deserialize. + DataContractSerializer serializer = new DataContractSerializer(typeof(ObservableCollection)); + return (ObservableCollection)serializer.ReadObject(inStream.AsStreamForRead()); + } + } + + private void SQLiteDemo() + { + string sqliteDBPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "ApressBookDB.sqlite"); + + using (var DB = new SQLite.SQLiteConnection(sqliteDBPath)) + { + // Create Table from Class. + DB.CreateTable(); + + // Instantiate & add record to table. + RelationalApressBookModel WPMigration = new RelationalApressBookModel(); + WPMigration.ApressBookISBN = "978-1-4302-3816-4"; + WPMigration.ApressBookName = "Migrating to Windows Phone"; + WPMigration.ApressBookTechnology = "Windows Phone"; + WPMigration.ApressBookAuthor = "Jesse Liberty , Jeff Blankenburg"; + WPMigration.ApressBookDescription = "This book offers everything you'll need to upgrade your existing programming knowledge and begin to develop applications for the Windows Phone."; + WPMigration.ApressBookImageURI = "/Assets/MigratingToWP.png"; + WPMigration.ApressBookPublishedDate = new DateTime(2011, 12, 28); + WPMigration.ApressBookUserLevel = "Intermediate"; + + DB.Insert(WPMigration); + + + // Read record from table using LINQ-like syntax. + var apressBookFromDB = (DB.Table().Where(book => book.ApressBookISBN == "978-1-4302-3816-4")).Single(); + } + } + + private void BackgroundAgentRegistration() + { + // Background Agent Registration. + bool isBackgroundAgentRegistered = false; + foreach (var task in BackgroundTaskRegistration.AllTasks) + { + if (task.Value.Name == "ApressBackgroundAgent") + { + isBackgroundAgentRegistered = true; + break; + } + } + if (!isBackgroundAgentRegistered) + { + var builder = new BackgroundTaskBuilder(); + + builder.Name = "ApressBackgroundAgent"; + builder.TaskEntryPoint = "BackgroundAgentDemo.ApressBackgroundAgent"; + builder.SetTrigger(new SystemTrigger(SystemTriggerType.InternetAvailable, false)); + BackgroundTaskRegistration backgroundAgent = builder.Register(); + } + } + + private void UpdateTiles() + { + //XmlDocument wideTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText03); + //XmlDocument squareTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareText03); + + //XmlNodeList wideTileTextAttributes = wideTileXml.GetElementsByTagName("text"); + //wideTileTextAttributes[0].InnerText = "Hello Apress!"; + + //XmlNodeList squareTileTextAttributes = squareTileXml.GetElementsByTagName("text"); + //squareTileTextAttributes[0].InnerText = "Line 1"; + //squareTileTextAttributes[1].InnerText = "Line 2"; + //squareTileTextAttributes[2].InnerText = "Line 3"; + + + + + XmlDocument wideTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText09); + XmlDocument squareTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareBlock); + + XmlNodeList wideTileTextAttributes = wideTileXml.GetElementsByTagName("text"); + wideTileTextAttributes[0].InnerText = "Hello Apress!"; + wideTileTextAttributes[1].InnerText = "This is our first Tile update"; + + //var bindingElement = (XmlElement)wideTileXml.GetElementsByTagName("binding").Item(0); + //bindingElement.SetAttribute("branding", "none"); + + XmlNodeList squareTileTextAttributes = squareTileXml.GetElementsByTagName("text"); + squareTileTextAttributes[0].InnerText = "12"; + squareTileTextAttributes[1].InnerText = "February"; + + + + + //XmlDocument wideTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideImageAndText01); + //XmlDocument squareTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareImage); + + //XmlNodeList wideTileTextAttributes = wideTileXml.GetElementsByTagName("text"); + //wideTileTextAttributes[0].InnerText = "Woot - Image + Text!"; + + //XmlNodeList wideTileImageAttributes = wideTileXml.GetElementsByTagName("image"); + //((XmlElement)wideTileImageAttributes[0]).SetAttribute("src", "ms-appx:///Assets/ApressBooth.png"); + //((XmlElement)wideTileImageAttributes[0]).SetAttribute("alt", "apress booth"); + + //var bindingElement = (XmlElement)wideTileXml.GetElementsByTagName("binding").Item(0); + //bindingElement.SetAttribute("branding", "none"); + + + //XmlNodeList squareTileImageAttributes = squareTileXml.GetElementsByTagName("image"); + //((XmlElement)squareTileImageAttributes[0]).SetAttribute("src", "ms-appx:///Assets/HappyHolidays.png"); + //((XmlElement)squareTileImageAttributes[0]).SetAttribute("alt", "apress booth"); + + + + //XmlDocument wideTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWidePeekImageAndText01); + //XmlDocument squareTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquarePeekImageAndText04); + + //XmlNodeList wideTileTextAttributes = wideTileXml.GetElementsByTagName("text"); + //wideTileTextAttributes[0].InnerText = "Peek-A-Boo - Image + Text!"; + + //XmlNodeList wideTileImageAttributes = wideTileXml.GetElementsByTagName("image"); + //((XmlElement)wideTileImageAttributes[0]).SetAttribute("src", "ms-appx:///Assets/ApressBooth.png"); + //((XmlElement)wideTileImageAttributes[0]).SetAttribute("alt", "apress booth"); + + //var wideBindingElement = (XmlElement)wideTileXml.GetElementsByTagName("binding").Item(0); + //wideBindingElement.SetAttribute("branding", "none"); + + + //XmlNodeList squareTileImageAttributes = squareTileXml.GetElementsByTagName("image"); + //((XmlElement)squareTileImageAttributes[0]).SetAttribute("src", "ms-appx:///Assets/HappyHolidays.png"); + //((XmlElement)squareTileImageAttributes[0]).SetAttribute("alt", "apress booth"); + + //XmlNodeList squareTileTextAttributes = squareTileXml.GetElementsByTagName("text"); + //squareTileTextAttributes[0].InnerText = "Square Peeking Text"; + + //var squareBindingElement = (XmlElement)wideTileXml.GetElementsByTagName("binding").Item(0); + //squareBindingElement.SetAttribute("branding", "none"); + + + + IXmlNode node = wideTileXml.ImportNode(squareTileXml.GetElementsByTagName("binding").Item(0), true); + wideTileXml.GetElementsByTagName("visual").Item(0).AppendChild(node); + TileNotification tileNotification = new TileNotification(wideTileXml); + tileNotification.Tag = "PeekWideTile"; + + //DateTime dueTime = DateTime.Now.AddSeconds(15); + //ScheduledTileNotification scheduledTile = new ScheduledTileNotification(wideTileXml, dueTime); + //TileUpdateManager.CreateTileUpdaterForApplication().AddToSchedule(scheduledTile); + + TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true); + tileNotification.ExpirationTime = DateTimeOffset.UtcNow.AddDays(1); + TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification); + + // TileUpdateManager.CreateTileUpdaterForApplication().Clear(); + } + + private void UpdateSecondaryTile() + { + XmlDocument squareTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareBlock); + + XmlNodeList squareTileTextAttributes = squareTileXml.GetElementsByTagName("text"); + squareTileTextAttributes[0].InnerText = "14"; + squareTileTextAttributes[1].InnerText = "February"; + + TileNotification tileNotification = new TileNotification(squareTileXml); + tileNotification.ExpirationTime = DateTimeOffset.UtcNow.AddDays(1); + TileUpdater secondaryTileUpdater = TileUpdateManager.CreateTileUpdaterForSecondaryTile("978-1-4302-3816-4"); + secondaryTileUpdater.Update(tileNotification); + } + + private void UpdateBadge() + { + XmlDocument badgeXml = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeNumber); + + XmlElement badgeElement = (XmlElement)badgeXml.SelectSingleNode("/badge"); + badgeElement.SetAttribute("value", "99"); + + //XmlDocument badgeXml = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeGlyph); + + //XmlElement badgeElement = (XmlElement)badgeXml.SelectSingleNode("/badge"); + //badgeElement.SetAttribute("value", "attention"); + + BadgeNotification badgeUpdate = new BadgeNotification(badgeXml); + BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badgeUpdate); + + // BackgroundAccessStatus status = await BackgroundExecutionManager.RequestAccessAsync(); + } + + private void SendToasts() + { + XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastImageAndText01); + + XmlNodeList toastTextElement = toastXml.GetElementsByTagName("text"); + toastTextElement[0].AppendChild(toastXml.CreateTextNode("First Toast: Happy Holidays from Apress!")); + + XmlNodeList toastImageAttribute = toastXml.GetElementsByTagName("image"); + ((XmlElement)toastImageAttribute[0]).SetAttribute("src", "ms-appx:///Assets/HappyHolidays.png"); + ((XmlElement)toastImageAttribute[0]).SetAttribute("alt", "apress booth"); + + IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); + ((XmlElement)toastNode).SetAttribute("duration", "long"); + + ((XmlElement)toastNode).SetAttribute("launch", "{\"type\":\"toast\",\"BookISBN\":\"978-1-4302-3816-4\"}"); + + ToastNotification toast = new ToastNotification(toastXml); + ToastNotificationManager.CreateToastNotifier().Show(toast); + } + + private async void EstablishPushNotificationChannel() + { + CurrentChannel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync(); + } + + public async Task AuthenticateUserThroughLive() + { + try + { + // Open Live Connect SDK client. + LiveAuthClient LCAuth = new LiveAuthClient(); + LiveLoginResult LCLoginResult = await LCAuth.InitializeAsync(); + + try + { + LiveLoginResult loginResult = null; + loginResult = await LCAuth.LoginAsync(new string[] { "wl.signin", "wl.basic", "wl.calendars", "wl.skydrive", "wl.skydrive_update" }); + + if (loginResult.Status == LiveConnectSessionStatus.Connected) + { + this.LiveSession = loginResult.Session; + } + } + catch (LiveAuthException) + { + // Handle exceptions. + } + } + catch (LiveAuthException) + { + // Handle exceptions. + } + } + + public async Task UnAuthenticateUserThroughLive() + { + try + { + LiveAuthClient LCAuth = new LiveAuthClient(); + LiveLoginResult LCLoginResult = await LCAuth.InitializeAsync(); + + // LCAuth.Logout(); + LiveSession = null; + } + catch (LiveAuthException) + { + // Handle exceptions. + } + } + + #endregion + } +} \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64.appxupload b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64.appxupload new file mode 100644 index 0000000..27b6dcf Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64.appxupload differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.ps1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.ps1 new file mode 100644 index 0000000..9d8fb28 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.ps1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..bb478b0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/cs-CZ/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/cs-CZ/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..aac5c21 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/cs-CZ/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/de-DE/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/de-DE/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..c2591d4 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/de-DE/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/en-US/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/en-US/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..bb478b0 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/en-US/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/es-ES/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/es-ES/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..6be2c19 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/es-ES/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/fr-FR/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/fr-FR/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..fd72d58 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/fr-FR/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/it-IT/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/it-IT/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..a886f92 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/it-IT/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/ja-JP/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/ja-JP/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..e68a131 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/ja-JP/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/ko-KR/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/ko-KR/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..2a9283e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/ko-KR/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/pl-PL/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/pl-PL/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..aac5c21 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/pl-PL/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/pt-BR/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/pt-BR/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..aac5c21 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/pt-BR/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/ru-RU/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/ru-RU/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..048639c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/ru-RU/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/tr-TR/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/tr-TR/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..aac5c21 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/tr-TR/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/zh-CN/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/zh-CN/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..94718e1 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/zh-CN/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/zh-TW/Add-AppDevPackage.psd1 b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/zh-TW/Add-AppDevPackage.psd1 new file mode 100644 index 0000000..0e7123c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Add-AppDevPackage.resources/zh-TW/Add-AppDevPackage.psd1 differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/ApressDemo_1.0.0.0_x64.appx b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/ApressDemo_1.0.0.0_x64.appx new file mode 100644 index 0000000..0a6e1a1 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/ApressDemo_1.0.0.0_x64.appx differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/ApressDemo_1.0.0.0_x64.appxsym b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/ApressDemo_1.0.0.0_x64.appxsym new file mode 100644 index 0000000..4cac2fa Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/ApressDemo_1.0.0.0_x64.appxsym differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/ApressDemo_1.0.0.0_x64.cer b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/ApressDemo_1.0.0.0_x64.cer new file mode 100644 index 0000000..0f1ac9a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/ApressDemo_1.0.0.0_x64.cer differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Dependencies/ARM/Microsoft.VCLibs.ARM.11.00.appx b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Dependencies/ARM/Microsoft.VCLibs.ARM.11.00.appx new file mode 100644 index 0000000..d7fc3fa Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Dependencies/ARM/Microsoft.VCLibs.ARM.11.00.appx differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Dependencies/x64/Microsoft.VCLibs.x64.11.00.appx b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Dependencies/x64/Microsoft.VCLibs.x64.11.00.appx new file mode 100644 index 0000000..804fc50 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Dependencies/x64/Microsoft.VCLibs.x64.11.00.appx differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Dependencies/x86/Microsoft.VCLibs.x86.11.00.appx b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Dependencies/x86/Microsoft.VCLibs.x86.11.00.appx new file mode 100644 index 0000000..820acb4 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/AppPackages/ApressDemo_1.0.0.0_x64_Test/Dependencies/x86/Microsoft.VCLibs.x86.11.00.appx differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo.csproj b/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo.csproj new file mode 100644 index 0000000..3562758 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo.csproj @@ -0,0 +1,416 @@ + + + + + Debug + AnyCPU + {BD7D646A-A6E9-4FBD-82E6-691DFDB709FF} + AppContainerExe + Properties + ApressDemo + ApressDemo + en-US + 512 + {BC8A1FFA-BEE3-4634-8014-F334798102B3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + ApressDemo_StoreKey.pfx + SAK + SAK + SAK + SAK + F8516621B80C640BEB872399669EC55153C2D14A + True + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE;NETFX_CORE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE;NETFX_CORE + prompt + 4 + + + true + bin\ARM\Debug\ + DEBUG;TRACE;NETFX_CORE + ;2008 + full + ARM + false + prompt + true + + + bin\ARM\Release\ + TRACE;NETFX_CORE + true + ;2008 + pdbonly + ARM + false + prompt + true + + + true + bin\x64\Debug\ + DEBUG;TRACE;NETFX_CORE + ;2008 + full + x64 + false + prompt + true + + + bin\x64\Release\ + TRACE;NETFX_CORE + true + ;2008 + pdbonly + x64 + false + prompt + true + + + true + bin\x86\Debug\ + DEBUG;TRACE;NETFX_CORE + ;2008 + full + x86 + false + prompt + true + + + bin\x86\Release\ + TRACE;NETFX_CORE + true + ;2008 + pdbonly + x86 + false + prompt + true + + + + + Live SDK + + + Microsoft Visual C++ Runtime Package + + + Windows Azure Mobile Services Managed Client + + + SQLite for Windows Runtime + + + + + App.xaml + + + + + + + + + + + + + + + + True + True + Reference.datasvcmap + + + + + AccountPage.xaml + + + AccountSettingsFlyout.xaml + + + LiveIntegration.xaml + + + ManageCloud.xaml + + + Media.xaml + + + MVVMFeaturedBookList.xaml + + + PrivacyStatementSettingsFlyout.xaml + + + SearchResultsPage.xaml + + + + + + + BookDetails.xaml + + + BookGroupsByTechnology.xaml + + + DummySplashScreen.xaml + + + FeaturedBookList.xaml + + + FlipViewDemo.xaml + + + ListViewDemo.xaml + + + SettingsFlyout.xaml + + + SignalRChat.xaml + + + + + Designer + + + + + + + + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + + + DataServicesCoreClientGenerator + Reference.cs + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + {60282593-9954-434d-a19f-08cc0f601a11} + BackgroundAgentDemo + + + + + + + + datasvcmap + + + + + ..\packages\MvvmLightLibs.4.1.27.0\lib\netcore45\GalaSoft.MvvmLight.Extras.Win8.dll + + + ..\packages\MvvmLightLibs.4.1.27.0\lib\netcore45\GalaSoft.MvvmLight.Win8.dll + + + ..\packages\Microsoft.AspNet.SignalR.Client.1.0.1\lib\winrt\Microsoft.AspNet.SignalR.Client.dll + + + False + ..\packages\Microsoft.Data.OData.WindowsStore.5.0.0\lib\.NETCore\Microsoft.Data.Edm.WindowsStore.dll + + + False + ..\packages\Microsoft.Data.OData.WindowsStore.5.0.0\lib\.NETCore\Microsoft.Data.OData.WindowsStore.dll + + + False + ..\packages\Microsoft.Data.Services.Client.WindowsStore.5.0.0\lib\.NETCore\Microsoft.Data.Services.Client.WindowsStore.dll + + + ..\packages\MvvmLightLibs.4.1.27.0\lib\netcore45\Microsoft.Practices.ServiceLocation.dll + + + ..\packages\Newtonsoft.Json.4.5.11\lib\winrt45\Newtonsoft.Json.dll + + + False + ..\packages\Microsoft.Data.OData.WindowsStore.5.0.0\lib\.NETCore\System.Spatial.WindowsStore.dll + + + ..\packages\WinRtBehaviors.1.0.2\lib\winrt45\WinRtBehaviors.dll + + + + 11.0 + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo.csproj.user b/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo.csproj.user new file mode 100644 index 0000000..5a2c26e --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo.csproj.user @@ -0,0 +1,38 @@ + + + + True + + + True + SAMISURFACE:4016 + False + false + + + True + SAMISURFACE:4016 + False + false + + + True + + + True + SAMISURFACE:4016 + False + false + + + SAMISURFACE:4016 + False + false + True + + + False + True + x64 + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo.csproj.vspscc b/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo.csproj.vspscc new file mode 100644 index 0000000..b6d3289 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo.csproj.vspscc @@ -0,0 +1,10 @@ +"" +{ +"FILE_VERSION" = "9237" +"ENLISTMENT_CHOICE" = "NEVER" +"PROJECT_FILE_RELATIVE_PATH" = "" +"NUMBER_OF_EXCLUDED_FILES" = "0" +"ORIGINAL_PROJECT_FILE_PATH" = "" +"NUMBER_OF_NESTED_PROJECTS" = "0" +"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo_StoreKey.pfx b/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo_StoreKey.pfx new file mode 100644 index 0000000..e0c447b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo_StoreKey.pfx differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo_TemporaryKey.pfx b/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo_TemporaryKey.pfx new file mode 100644 index 0000000..c04d78e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/ApressDemo_TemporaryKey.pfx differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ASPDotNetLogo.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ASPDotNetLogo.png new file mode 100644 index 0000000..fc967fb Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ASPDotNetLogo.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ASPWebAPI.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ASPWebAPI.png new file mode 100644 index 0000000..261de76 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ASPWebAPI.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ApressBooth.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ApressBooth.png new file mode 100644 index 0000000..4a3ea0e Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ApressBooth.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ApressLogo.PNG b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ApressLogo.PNG new file mode 100644 index 0000000..835a8c1 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ApressLogo.PNG differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ApressLogoWide.PNG b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ApressLogoWide.PNG new file mode 100644 index 0000000..8f2fc55 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/ApressLogoWide.PNG differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/AzurePlatform.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/AzurePlatform.png new file mode 100644 index 0000000..9c893a8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/AzurePlatform.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/BadgeLogo.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/BadgeLogo.png new file mode 100644 index 0000000..861fb71 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/BadgeLogo.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/DarkGray.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/DarkGray.png new file mode 100644 index 0000000..6cb268a Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/DarkGray.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/HappyHolidays.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/HappyHolidays.png new file mode 100644 index 0000000..b9b9f82 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/HappyHolidays.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/LightGray.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/LightGray.png new file mode 100644 index 0000000..6ccc22b Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/LightGray.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/Logo.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/Logo.png new file mode 100644 index 0000000..4aeffaf Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/Logo.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/MediumGray.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/MediumGray.png new file mode 100644 index 0000000..cadb696 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/MediumGray.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/MigratingToWP.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/MigratingToWP.png new file mode 100644 index 0000000..db1fb03 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/MigratingToWP.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/SQLAzure.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/SQLAzure.png new file mode 100644 index 0000000..7da9c14 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/SQLAzure.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/SmallLogo.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/SmallLogo.png new file mode 100644 index 0000000..269e10c Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/SmallLogo.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/StoreLogo.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/StoreLogo.png new file mode 100644 index 0000000..dcb6727 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/StoreLogo.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/UltraFastASP.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/UltraFastASP.png new file mode 100644 index 0000000..e47ac94 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/UltraFastASP.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WPAppDev.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WPAppDev.png new file mode 100644 index 0000000..bf3b5e8 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WPAppDev.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WPRecipes.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WPRecipes.png new file mode 100644 index 0000000..200c4d6 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WPRecipes.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WindowsAzureLogo.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WindowsAzureLogo.png new file mode 100644 index 0000000..db5b120 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WindowsAzureLogo.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WindowsPhoneLogo.png b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WindowsPhoneLogo.png new file mode 100644 index 0000000..18f0534 Binary files /dev/null and b/ApressBook SourceCode/ApressDemo/ApressDemo/Assets/WindowsPhoneLogo.png differ diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Common/BindableBase.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/BindableBase.cs new file mode 100644 index 0000000..95c2d05 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/BindableBase.cs @@ -0,0 +1,55 @@ +using System; +using System.ComponentModel; +using System.Runtime.CompilerServices; +using Windows.UI.Xaml.Data; + +namespace ApressDemo.Common +{ + /// + /// Implementation of to simplify models. + /// + [Windows.Foundation.Metadata.WebHostHidden] + public abstract class BindableBase : INotifyPropertyChanged + { + /// + /// Multicast event for property change notifications. + /// + public event PropertyChangedEventHandler PropertyChanged; + + /// + /// Checks if a property already matches a desired value. Sets the property and + /// notifies listeners only when necessary. + /// + /// Type of the property. + /// Reference to a property with both getter and setter. + /// Desired value for the property. + /// Name of the property used to notify listeners. This + /// value is optional and can be provided automatically when invoked from compilers that + /// support CallerMemberName. + /// True if the value was changed, false if the existing value matched the + /// desired value. + protected bool SetProperty(ref T storage, T value, [CallerMemberName] String propertyName = null) + { + if (object.Equals(storage, value)) return false; + + storage = value; + this.OnPropertyChanged(propertyName); + return true; + } + + /// + /// Notifies listeners that a property value has changed. + /// + /// Name of the property used to notify listeners. This + /// value is optional and can be provided automatically when invoked from compilers + /// that support . + protected void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + var eventHandler = this.PropertyChanged; + if (eventHandler != null) + { + eventHandler(this, new PropertyChangedEventArgs(propertyName)); + } + } + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Common/BooleanNegationConverter.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/BooleanNegationConverter.cs new file mode 100644 index 0000000..cebaadf --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/BooleanNegationConverter.cs @@ -0,0 +1,21 @@ +using System; +using Windows.UI.Xaml.Data; + +namespace ApressDemo.Common +{ + /// + /// Value converter that translates true to false and vice versa. + /// + public sealed class BooleanNegationConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, string language) + { + return !(value is bool && (bool)value); + } + + public object ConvertBack(object value, Type targetType, object parameter, string language) + { + return !(value is bool && (bool)value); + } + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Common/BooleanToVisibilityConverter.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/BooleanToVisibilityConverter.cs new file mode 100644 index 0000000..dc31807 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/BooleanToVisibilityConverter.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.Graphics.Display; +using Windows.UI.ViewManagement; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Data; + +namespace ApressDemo.Common +{ + /// + /// Value converter that translates true to and false to + /// . + /// + public sealed class BooleanToVisibilityConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, string language) + { + return (value is bool && (bool)value) ? Visibility.Visible : Visibility.Collapsed; + } + + public object ConvertBack(object value, Type targetType, object parameter, string language) + { + return value is Visibility && (Visibility)value == Visibility.Visible; + } + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Common/LayoutAwarePage.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/LayoutAwarePage.cs new file mode 100644 index 0000000..a938d2e --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/LayoutAwarePage.cs @@ -0,0 +1,545 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.System; +using Windows.UI.Core; +using Windows.UI.ViewManagement; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Navigation; + +namespace ApressDemo.Common +{ + /// + /// Typical implementation of Page that provides several important conveniences: + /// + /// + /// Application view state to visual state mapping + /// + /// + /// GoBack, GoForward, and GoHome event handlers + /// + /// + /// Mouse and keyboard shortcuts for navigation + /// + /// + /// State management for navigation and process lifetime management + /// + /// + /// A default view model + /// + /// + /// + [Windows.Foundation.Metadata.WebHostHidden] + public class LayoutAwarePage : Page + { + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty DefaultViewModelProperty = + DependencyProperty.Register("DefaultViewModel", typeof(IObservableMap), + typeof(LayoutAwarePage), null); + + private List _layoutAwareControls; + + /// + /// Initializes a new instance of the class. + /// + public LayoutAwarePage() + { + if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) return; + + // Create an empty default view model + this.DefaultViewModel = new ObservableDictionary(); + + // When this page is part of the visual tree make two changes: + // 1) Map application view state to visual state for the page + // 2) Handle keyboard and mouse navigation requests + this.Loaded += (sender, e) => + { + this.StartLayoutUpdates(sender, e); + + // Keyboard and mouse navigation only apply when occupying the entire window + if (this.ActualHeight == Window.Current.Bounds.Height && + this.ActualWidth == Window.Current.Bounds.Width) + { + // Listen to the window directly so focus isn't required + Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated += + CoreDispatcher_AcceleratorKeyActivated; + Window.Current.CoreWindow.PointerPressed += + this.CoreWindow_PointerPressed; + } + }; + + // Undo the same changes when the page is no longer visible + this.Unloaded += (sender, e) => + { + this.StopLayoutUpdates(sender, e); + Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated -= + CoreDispatcher_AcceleratorKeyActivated; + Window.Current.CoreWindow.PointerPressed -= + this.CoreWindow_PointerPressed; + }; + } + + /// + /// An implementation of designed to be + /// used as a trivial view model. + /// + protected IObservableMap DefaultViewModel + { + get + { + return this.GetValue(DefaultViewModelProperty) as IObservableMap; + } + + set + { + this.SetValue(DefaultViewModelProperty, value); + } + } + + #region Navigation support + + /// + /// Invoked as an event handler to navigate backward in the page's associated + /// until it reaches the top of the navigation stack. + /// + /// Instance that triggered the event. + /// Event data describing the conditions that led to the event. + protected virtual void GoHome(object sender, RoutedEventArgs e) + { + // Use the navigation frame to return to the topmost page + if (this.Frame != null) + { + while (this.Frame.CanGoBack) this.Frame.GoBack(); + } + } + + /// + /// Invoked as an event handler to navigate backward in the navigation stack + /// associated with this page's . + /// + /// Instance that triggered the event. + /// Event data describing the conditions that led to the + /// event. + protected virtual void GoBack(object sender, RoutedEventArgs e) + { + // Use the navigation frame to return to the previous page + if (this.Frame != null && this.Frame.CanGoBack) this.Frame.GoBack(); + } + + /// + /// Invoked as an event handler to navigate forward in the navigation stack + /// associated with this page's . + /// + /// Instance that triggered the event. + /// Event data describing the conditions that led to the + /// event. + protected virtual void GoForward(object sender, RoutedEventArgs e) + { + // Use the navigation frame to move to the next page + if (this.Frame != null && this.Frame.CanGoForward) this.Frame.GoForward(); + } + + /// + /// Invoked on every keystroke, including system keys such as Alt key combinations, when + /// this page is active and occupies the entire window. Used to detect keyboard navigation + /// between pages even when the page itself doesn't have focus. + /// + /// Instance that triggered the event. + /// Event data describing the conditions that led to the event. + private void CoreDispatcher_AcceleratorKeyActivated(CoreDispatcher sender, + AcceleratorKeyEventArgs args) + { + var virtualKey = args.VirtualKey; + + // Only investigate further when Left, Right, or the dedicated Previous or Next keys + // are pressed + if ((args.EventType == CoreAcceleratorKeyEventType.SystemKeyDown || + args.EventType == CoreAcceleratorKeyEventType.KeyDown) && + (virtualKey == VirtualKey.Left || virtualKey == VirtualKey.Right || + (int)virtualKey == 166 || (int)virtualKey == 167)) + { + var coreWindow = Window.Current.CoreWindow; + var downState = CoreVirtualKeyStates.Down; + bool menuKey = (coreWindow.GetKeyState(VirtualKey.Menu) & downState) == downState; + bool controlKey = (coreWindow.GetKeyState(VirtualKey.Control) & downState) == downState; + bool shiftKey = (coreWindow.GetKeyState(VirtualKey.Shift) & downState) == downState; + bool noModifiers = !menuKey && !controlKey && !shiftKey; + bool onlyAlt = menuKey && !controlKey && !shiftKey; + + if (((int)virtualKey == 166 && noModifiers) || + (virtualKey == VirtualKey.Left && onlyAlt)) + { + // When the previous key or Alt+Left are pressed navigate back + args.Handled = true; + this.GoBack(this, new RoutedEventArgs()); + } + else if (((int)virtualKey == 167 && noModifiers) || + (virtualKey == VirtualKey.Right && onlyAlt)) + { + // When the next key or Alt+Right are pressed navigate forward + args.Handled = true; + this.GoForward(this, new RoutedEventArgs()); + } + } + } + + /// + /// Invoked on every mouse click, touch screen tap, or equivalent interaction when this + /// page is active and occupies the entire window. Used to detect browser-style next and + /// previous mouse button clicks to navigate between pages. + /// + /// Instance that triggered the event. + /// Event data describing the conditions that led to the event. + private void CoreWindow_PointerPressed(CoreWindow sender, + PointerEventArgs args) + { + var properties = args.CurrentPoint.Properties; + + // Ignore button chords with the left, right, and middle buttons + if (properties.IsLeftButtonPressed || properties.IsRightButtonPressed || + properties.IsMiddleButtonPressed) return; + + // If back or foward are pressed (but not both) navigate appropriately + bool backPressed = properties.IsXButton1Pressed; + bool forwardPressed = properties.IsXButton2Pressed; + if (backPressed ^ forwardPressed) + { + args.Handled = true; + if (backPressed) this.GoBack(this, new RoutedEventArgs()); + if (forwardPressed) this.GoForward(this, new RoutedEventArgs()); + } + } + + #endregion + + #region Visual state switching + + /// + /// Invoked as an event handler, typically on the + /// event of a within the page, to indicate that the sender should + /// start receiving visual state management changes that correspond to application view + /// state changes. + /// + /// Instance of that supports visual state + /// management corresponding to view states. + /// Event data that describes how the request was made. + /// The current view state will immediately be used to set the corresponding + /// visual state when layout updates are requested. A corresponding + /// event handler connected to + /// is strongly encouraged. Instances of + /// automatically invoke these handlers in their Loaded and + /// Unloaded events. + /// + /// + public void StartLayoutUpdates(object sender, RoutedEventArgs e) + { + var control = sender as Control; + if (control == null) return; + if (this._layoutAwareControls == null) + { + // Start listening to view state changes when there are controls interested in updates + Window.Current.SizeChanged += this.WindowSizeChanged; + this._layoutAwareControls = new List(); + } + this._layoutAwareControls.Add(control); + + // Set the initial visual state of the control + VisualStateManager.GoToState(control, DetermineVisualState(ApplicationView.Value), false); + } + + private void WindowSizeChanged(object sender, WindowSizeChangedEventArgs e) + { + this.InvalidateVisualState(); + } + + /// + /// Invoked as an event handler, typically on the + /// event of a , to indicate that the sender should start receiving + /// visual state management changes that correspond to application view state changes. + /// + /// Instance of that supports visual state + /// management corresponding to view states. + /// Event data that describes how the request was made. + /// The current view state will immediately be used to set the corresponding + /// visual state when layout updates are requested. + /// + public void StopLayoutUpdates(object sender, RoutedEventArgs e) + { + var control = sender as Control; + if (control == null || this._layoutAwareControls == null) return; + this._layoutAwareControls.Remove(control); + if (this._layoutAwareControls.Count == 0) + { + // Stop listening to view state changes when no controls are interested in updates + this._layoutAwareControls = null; + Window.Current.SizeChanged -= this.WindowSizeChanged; + } + } + + /// + /// Translates values into strings for visual state + /// management within the page. The default implementation uses the names of enum values. + /// Subclasses may override this method to control the mapping scheme used. + /// + /// View state for which a visual state is desired. + /// Visual state name used to drive the + /// + /// + protected virtual string DetermineVisualState(ApplicationViewState viewState) + { + return viewState.ToString(); + } + + /// + /// Updates all controls that are listening for visual state changes with the correct + /// visual state. + /// + /// + /// Typically used in conjunction with overriding to + /// signal that a different value may be returned even though the view state has not + /// changed. + /// + public void InvalidateVisualState() + { + if (this._layoutAwareControls != null) + { + string visualState = DetermineVisualState(ApplicationView.Value); + foreach (var layoutAwareControl in this._layoutAwareControls) + { + VisualStateManager.GoToState(layoutAwareControl, visualState, false); + } + } + } + + #endregion + + #region Process lifetime management + + private String _pageKey; + + /// + /// Invoked when this page is about to be displayed in a Frame. + /// + /// Event data that describes how this page was reached. The Parameter + /// property provides the group to be displayed. + protected override void OnNavigatedTo(NavigationEventArgs e) + { + // Returning to a cached page through navigation shouldn't trigger state loading + if (this._pageKey != null) return; + + var frameState = SuspensionManager.SessionStateForFrame(this.Frame); + this._pageKey = "Page-" + this.Frame.BackStackDepth; + + if (e.NavigationMode == NavigationMode.New) + { + // Clear existing state for forward navigation when adding a new page to the + // navigation stack + var nextPageKey = this._pageKey; + int nextPageIndex = this.Frame.BackStackDepth; + while (frameState.Remove(nextPageKey)) + { + nextPageIndex++; + nextPageKey = "Page-" + nextPageIndex; + } + + // Pass the navigation parameter to the new page + this.LoadState(e.Parameter, null); + } + else + { + // Pass the navigation parameter and preserved page state to the page, using + // the same strategy for loading suspended state and recreating pages discarded + // from cache + this.LoadState(e.Parameter, (Dictionary)frameState[this._pageKey]); + } + } + + /// + /// Invoked when this page will no longer be displayed in a Frame. + /// + /// Event data that describes how this page was reached. The Parameter + /// property provides the group to be displayed. + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + var frameState = SuspensionManager.SessionStateForFrame(this.Frame); + var pageState = new Dictionary(); + this.SaveState(pageState); + frameState[_pageKey] = pageState; + } + + /// + /// Populates the page with content passed during navigation. Any saved state is also + /// provided when recreating a page from a prior session. + /// + /// The parameter value passed to + /// when this page was initially requested. + /// + /// A dictionary of state preserved by this page during an earlier + /// session. This will be null the first time a page is visited. + protected virtual void LoadState(Object navigationParameter, Dictionary pageState) + { + // Populates the page with content passed during navigation. Any saved state is also provided when recreating a page from a prior session. + } + + /// + /// Preserves state associated with this page in case the application is suspended or the + /// page is discarded from the navigation cache. Values must conform to the serialization + /// requirements of . + /// + /// An empty dictionary to be populated with serializable state. + protected virtual void SaveState(Dictionary pageState) + { + // Preserves state associated with this page in case the application is suspended or the page is discarded from the navigation cache. Values must conform to the serialization requirements of SuspensionManager.SessionState. + } + + #endregion + + /// + /// Implementation of IObservableMap that supports reentrancy for use as a default view + /// model. + /// + private class ObservableDictionary : IObservableMap + { + private class ObservableDictionaryChangedEventArgs : IMapChangedEventArgs + { + public ObservableDictionaryChangedEventArgs(CollectionChange change, K key) + { + this.CollectionChange = change; + this.Key = key; + } + + public CollectionChange CollectionChange { get; private set; } + public K Key { get; private set; } + } + + private Dictionary _dictionary = new Dictionary(); + public event MapChangedEventHandler MapChanged; + + private void InvokeMapChanged(CollectionChange change, K key) + { + var eventHandler = MapChanged; + if (eventHandler != null) + { + eventHandler(this, new ObservableDictionaryChangedEventArgs(change, key)); + } + } + + public void Add(K key, V value) + { + this._dictionary.Add(key, value); + this.InvokeMapChanged(CollectionChange.ItemInserted, key); + } + + public void Add(KeyValuePair item) + { + this.Add(item.Key, item.Value); + } + + public bool Remove(K key) + { + if (this._dictionary.Remove(key)) + { + this.InvokeMapChanged(CollectionChange.ItemRemoved, key); + return true; + } + return false; + } + + public bool Remove(KeyValuePair item) + { + V currentValue; + if (this._dictionary.TryGetValue(item.Key, out currentValue) && + Object.Equals(item.Value, currentValue) && this._dictionary.Remove(item.Key)) + { + this.InvokeMapChanged(CollectionChange.ItemRemoved, item.Key); + return true; + } + return false; + } + + public V this[K key] + { + get + { + return this._dictionary[key]; + } + set + { + this._dictionary[key] = value; + this.InvokeMapChanged(CollectionChange.ItemChanged, key); + } + } + + public void Clear() + { + var priorKeys = this._dictionary.Keys.ToArray(); + this._dictionary.Clear(); + foreach (var key in priorKeys) + { + this.InvokeMapChanged(CollectionChange.ItemRemoved, key); + } + } + + public ICollection Keys + { + get { return this._dictionary.Keys; } + } + + public bool ContainsKey(K key) + { + return this._dictionary.ContainsKey(key); + } + + public bool TryGetValue(K key, out V value) + { + return this._dictionary.TryGetValue(key, out value); + } + + public ICollection Values + { + get { return this._dictionary.Values; } + } + + public bool Contains(KeyValuePair item) + { + return this._dictionary.Contains(item); + } + + public int Count + { + get { return this._dictionary.Count; } + } + + public bool IsReadOnly + { + get { return false; } + } + + public IEnumerator> GetEnumerator() + { + return this._dictionary.GetEnumerator(); + } + + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() + { + return this._dictionary.GetEnumerator(); + } + + public void CopyTo(KeyValuePair[] array, int arrayIndex) + { + int arraySize = array.Length; + foreach (var pair in this._dictionary) + { + if (arrayIndex >= arraySize) break; + array[arrayIndex++] = pair; + } + } + } + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Common/ReadMe.txt b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/ReadMe.txt new file mode 100644 index 0000000..028505a --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/ReadMe.txt @@ -0,0 +1,12 @@ +The Common directory contains classes and XAML styles that simplify application development. + +These are not merely convenient, but are required by most Visual Studio project and item templates. +If you need a variation on one of the styles in StandardStyles it is recommended that you make a +copy in your own resource dictionary. When right-clicking on a styled control in the design +surface the context menu includes an option to Edit a Copy to simplify this process. + +Classes in the Common directory form part of your project and may be further enhanced to meet your +needs. Care should be taken when altering existing methods and properties as incompatible changes +will require corresponding changes to code included in a variety of Visual Studio templates. For +example, additional pages added to your project are written assuming that the original methods and +properties in Common classes are still present and that the names of the types have not changed. \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Common/RichTextColumns.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/RichTextColumns.cs new file mode 100644 index 0000000..c5d5d66 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/RichTextColumns.cs @@ -0,0 +1,210 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Windows.Foundation; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Documents; + +namespace ApressDemo.Common +{ + /// + /// Wrapper for that creates as many additional overflow + /// columns as needed to fit the available content. + /// + /// + /// The following creates a collection of 400-pixel wide columns spaced 50 pixels apart + /// to contain arbitrary data-bound content: + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// Typically used in a horizontally scrolling region where an unbounded amount of + /// space allows for all needed columns to be created. When used in a vertically scrolling + /// space there will never be any additional columns. + [Windows.UI.Xaml.Markup.ContentProperty(Name = "RichTextContent")] + public sealed class RichTextColumns : Panel + { + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty RichTextContentProperty = + DependencyProperty.Register("RichTextContent", typeof(RichTextBlock), + typeof(RichTextColumns), new PropertyMetadata(null, ResetOverflowLayout)); + + /// + /// Identifies the dependency property. + /// + public static readonly DependencyProperty ColumnTemplateProperty = + DependencyProperty.Register("ColumnTemplate", typeof(DataTemplate), + typeof(RichTextColumns), new PropertyMetadata(null, ResetOverflowLayout)); + + /// + /// Initializes a new instance of the class. + /// + public RichTextColumns() + { + this.HorizontalAlignment = HorizontalAlignment.Left; + } + + /// + /// Gets or sets the initial rich text content to be used as the first column. + /// + public RichTextBlock RichTextContent + { + get { return (RichTextBlock)GetValue(RichTextContentProperty); } + set { SetValue(RichTextContentProperty, value); } + } + + /// + /// Gets or sets the template used to create additional + /// instances. + /// + public DataTemplate ColumnTemplate + { + get { return (DataTemplate)GetValue(ColumnTemplateProperty); } + set { SetValue(ColumnTemplateProperty, value); } + } + + /// + /// Invoked when the content or overflow template is changed to recreate the column layout. + /// + /// Instance of where the change + /// occurred. + /// Event data describing the specific change. + private static void ResetOverflowLayout(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + // When dramatic changes occur, rebuild the column layout from scratch + var target = d as RichTextColumns; + if (target != null) + { + target._overflowColumns = null; + target.Children.Clear(); + target.InvalidateMeasure(); + } + } + + /// + /// Lists overflow columns already created. Must maintain a 1:1 relationship with + /// instances in the collection following the initial + /// RichTextBlock child. + /// + private List _overflowColumns = null; + + /// + /// Determines whether additional overflow columns are needed and if existing columns can + /// be removed. + /// + /// The size of the space available, used to constrain the + /// number of additional columns that can be created. + /// The resulting size of the original content plus any extra columns. + protected override Size MeasureOverride(Size availableSize) + { + if (this.RichTextContent == null) return new Size(0, 0); + + // Make sure the RichTextBlock is a child, using the lack of + // a list of additional columns as a sign that this hasn't been + // done yet + if (this._overflowColumns == null) + { + Children.Add(this.RichTextContent); + this._overflowColumns = new List(); + } + + // Start by measuring the original RichTextBlock content + this.RichTextContent.Measure(availableSize); + var maxWidth = this.RichTextContent.DesiredSize.Width; + var maxHeight = this.RichTextContent.DesiredSize.Height; + var hasOverflow = this.RichTextContent.HasOverflowContent; + + // Make sure there are enough overflow columns + int overflowIndex = 0; + while (hasOverflow && maxWidth < availableSize.Width && this.ColumnTemplate != null) + { + // Use existing overflow columns until we run out, then create + // more from the supplied template + RichTextBlockOverflow overflow; + if (this._overflowColumns.Count > overflowIndex) + { + overflow = this._overflowColumns[overflowIndex]; + } + else + { + overflow = (RichTextBlockOverflow)this.ColumnTemplate.LoadContent(); + this._overflowColumns.Add(overflow); + this.Children.Add(overflow); + if (overflowIndex == 0) + { + this.RichTextContent.OverflowContentTarget = overflow; + } + else + { + this._overflowColumns[overflowIndex - 1].OverflowContentTarget = overflow; + } + } + + // Measure the new column and prepare to repeat as necessary + overflow.Measure(new Size(availableSize.Width - maxWidth, availableSize.Height)); + maxWidth += overflow.DesiredSize.Width; + maxHeight = Math.Max(maxHeight, overflow.DesiredSize.Height); + hasOverflow = overflow.HasOverflowContent; + overflowIndex++; + } + + // Disconnect extra columns from the overflow chain, remove them from our private list + // of columns, and remove them as children + if (this._overflowColumns.Count > overflowIndex) + { + if (overflowIndex == 0) + { + this.RichTextContent.OverflowContentTarget = null; + } + else + { + this._overflowColumns[overflowIndex - 1].OverflowContentTarget = null; + } + while (this._overflowColumns.Count > overflowIndex) + { + this._overflowColumns.RemoveAt(overflowIndex); + this.Children.RemoveAt(overflowIndex + 1); + } + } + + // Report final determined size + return new Size(maxWidth, maxHeight); + } + + /// + /// Arranges the original content and all extra columns. + /// + /// Defines the size of the area the children must be arranged + /// within. + /// The size of the area the children actually required. + protected override Size ArrangeOverride(Size finalSize) + { + double maxWidth = 0; + double maxHeight = 0; + foreach (var child in Children) + { + child.Arrange(new Rect(maxWidth, 0, child.DesiredSize.Width, finalSize.Height)); + maxWidth += child.DesiredSize.Width; + maxHeight = Math.Max(maxHeight, child.DesiredSize.Height); + } + return new Size(maxWidth, maxHeight); + } + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Common/StandardStyles.xaml b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/StandardStyles.xaml new file mode 100644 index 0000000..fc35c65 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/StandardStyles.xaml @@ -0,0 +1,2216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Mouse + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Common/SuspensionManager.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/SuspensionManager.cs new file mode 100644 index 0000000..317150a --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Common/SuspensionManager.cs @@ -0,0 +1,256 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; +using Windows.ApplicationModel; +using Windows.Storage; +using Windows.Storage.Streams; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; + +namespace ApressDemo.Common +{ + /// + /// SuspensionManager captures global session state to simplify process lifetime management + /// for an application. Note that session state will be automatically cleared under a variety + /// of conditions and should only be used to store information that would be convenient to + /// carry across sessions, but that should be discarded when an application crashes or is + /// upgraded. + /// + internal sealed class SuspensionManager + { + private static Dictionary _sessionState = new Dictionary(); + private static List _knownTypes = new List(); + private const string sessionStateFilename = "_sessionState.xml"; + + /// + /// Provides access to global session state for the current session. This state is + /// serialized by and restored by + /// , so values must be serializable by + /// and should be as compact as possible. Strings + /// and other self-contained data types are strongly recommended. + /// + public static Dictionary SessionState + { + get { return _sessionState; } + } + + /// + /// List of custom types provided to the when + /// reading and writing session state. Initially empty, additional types may be + /// added to customize the serialization process. + /// + public static List KnownTypes + { + get { return _knownTypes; } + } + + /// + /// Save the current . Any instances + /// registered with will also preserve their current + /// navigation stack, which in turn gives their active an opportunity + /// to save its state. + /// + /// An asynchronous task that reflects when session state has been saved. + public static async Task SaveAsync() + { + try + { + // Save the navigation state for all registered frames. + foreach (var weakFrameReference in _registeredFrames) + { + Frame frame; + if (weakFrameReference.TryGetTarget(out frame)) + { + SaveFrameNavigationState(frame); + } + } + + // Serialize the session state synchronously to avoid asynchronous access to shared state. + MemoryStream sessionData = new MemoryStream(); + DataContractSerializer serializer = new DataContractSerializer(typeof(Dictionary), _knownTypes); + serializer.WriteObject(sessionData, _sessionState); + + // Get an output stream for the SessionState file and write the state asynchronously. + StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync(sessionStateFilename, CreationCollisionOption.ReplaceExisting); + using (Stream fileStream = await file.OpenStreamForWriteAsync()) + { + sessionData.Seek(0, SeekOrigin.Begin); + await sessionData.CopyToAsync(fileStream); + await fileStream.FlushAsync(); + } + } + catch (Exception e) + { + throw new SuspensionManagerException(e); + } + } + + /// + /// Restores previously saved . Any instances + /// registered with will also restore their prior navigation + /// state, which in turn gives their active an opportunity restore its + /// state. + /// + /// An asynchronous task that reflects when session state has been read. The + /// content of should not be relied upon until this task + /// completes. + public static async Task RestoreAsync() + { + _sessionState = new Dictionary(); + + try + { + // Get the input stream for the SessionState file + StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync(sessionStateFilename); + using (IInputStream inStream = await file.OpenSequentialReadAsync()) + { + // Deserialize the Session State + DataContractSerializer serializer = new DataContractSerializer(typeof(Dictionary), _knownTypes); + _sessionState = (Dictionary)serializer.ReadObject(inStream.AsStreamForRead()); + } + + // Restore any registered frames to their saved state + foreach (var weakFrameReference in _registeredFrames) + { + Frame frame; + if (weakFrameReference.TryGetTarget(out frame)) + { + frame.ClearValue(FrameSessionStateProperty); + RestoreFrameNavigationState(frame); + } + } + } + catch (Exception e) + { + throw new SuspensionManagerException(e); + } + } + + private static DependencyProperty FrameSessionStateKeyProperty = + DependencyProperty.RegisterAttached("_FrameSessionStateKey", typeof(String), typeof(SuspensionManager), null); + private static DependencyProperty FrameSessionStateProperty = + DependencyProperty.RegisterAttached("_FrameSessionState", typeof(Dictionary), typeof(SuspensionManager), null); + private static List> _registeredFrames = new List>(); + + /// + /// Registers a instance to allow its navigation history to be saved to + /// and restored from . Frames should be registered once + /// immediately after creation if they will participate in session state management. Upon + /// registration if state has already been restored for the specified key + /// the navigation history will immediately be restored. Subsequent invocations of + /// will also restore navigation history. + /// + /// An instance whose navigation history should be managed by + /// + /// A unique key into used to + /// store navigation-related information. + public static void RegisterFrame(Frame frame, String sessionStateKey) + { + if (frame.GetValue(FrameSessionStateKeyProperty) != null) + { + throw new InvalidOperationException("Frames can only be registered to one session state key"); + } + + if (frame.GetValue(FrameSessionStateProperty) != null) + { + throw new InvalidOperationException("Frames must be either be registered before accessing frame session state, or not registered at all"); + } + + // Use a dependency property to associate the session key with a frame, and keep a list of frames whose + // navigation state should be managed + frame.SetValue(FrameSessionStateKeyProperty, sessionStateKey); + _registeredFrames.Add(new WeakReference(frame)); + + // Check to see if navigation state can be restored + RestoreFrameNavigationState(frame); + } + + /// + /// Disassociates a previously registered by + /// from . Any navigation state previously captured will be + /// removed. + /// + /// An instance whose navigation history should no longer be + /// managed. + public static void UnregisterFrame(Frame frame) + { + // Remove session state and remove the frame from the list of frames whose navigation + // state will be saved (along with any weak references that are no longer reachable) + SessionState.Remove((String)frame.GetValue(FrameSessionStateKeyProperty)); + _registeredFrames.RemoveAll((weakFrameReference) => + { + Frame testFrame; + return !weakFrameReference.TryGetTarget(out testFrame) || testFrame == frame; + }); + } + + /// + /// Provides storage for session state associated with the specified . + /// Frames that have been previously registered with have + /// their session state saved and restored automatically as a part of the global + /// . Frames that are not registered have transient state + /// that can still be useful when restoring pages that have been discarded from the + /// navigation cache. + /// + /// Apps may choose to rely on to manage + /// page-specific state instead of working with frame session state directly. + /// The instance for which session state is desired. + /// A collection of state subject to the same serialization mechanism as + /// . + public static Dictionary SessionStateForFrame(Frame frame) + { + var frameState = (Dictionary)frame.GetValue(FrameSessionStateProperty); + + if (frameState == null) + { + var frameSessionKey = (String)frame.GetValue(FrameSessionStateKeyProperty); + if (frameSessionKey != null) + { + // Registered frames reflect the corresponding session state + if (!_sessionState.ContainsKey(frameSessionKey)) + { + _sessionState[frameSessionKey] = new Dictionary(); + } + frameState = (Dictionary)_sessionState[frameSessionKey]; + } + else + { + // Frames that aren't registered have transient state + frameState = new Dictionary(); + } + frame.SetValue(FrameSessionStateProperty, frameState); + } + return frameState; + } + + private static void RestoreFrameNavigationState(Frame frame) + { + var frameState = SessionStateForFrame(frame); + if (frameState.ContainsKey("Navigation")) + { + frame.SetNavigationState((String)frameState["Navigation"]); + } + } + + private static void SaveFrameNavigationState(Frame frame) + { + var frameState = SessionStateForFrame(frame); + frameState["Navigation"] = frame.GetNavigationState(); + } + } + public class SuspensionManagerException : Exception + { + public SuspensionManagerException() + { + } + + public SuspensionManagerException(Exception e) : base("SuspensionManager failed", e) + { + + } + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/DataModel/SampleDataSource.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/DataModel/SampleDataSource.cs new file mode 100644 index 0000000..8b19a17 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/DataModel/SampleDataSource.cs @@ -0,0 +1,536 @@ +using System; +using System.Linq; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Runtime.CompilerServices; +using Windows.ApplicationModel.Resources.Core; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Media.Imaging; +using System.Collections.Specialized; + +// The data model defined by this file serves as a representative example of a strongly-typed +// model that supports notification when members are added, removed, or modified. The property +// names chosen coincide with data bindings in the standard item templates. +// +// Applications may use this model as a starting point and build on it, or discard it entirely and +// replace it with something appropriate to their needs. + +namespace ApressDemo.Data +{ + /// + /// Base class for and that + /// defines properties common to both. + /// + [Windows.Foundation.Metadata.WebHostHidden] + public abstract class SampleDataCommon : ApressDemo.Common.BindableBase + { + private static Uri _baseUri = new Uri("ms-appx:///"); + + public SampleDataCommon(String uniqueId, String title, String subtitle, String imagePath, String description) + { + this._uniqueId = uniqueId; + this._title = title; + this._subtitle = subtitle; + this._description = description; + this._imagePath = imagePath; + } + + private string _uniqueId = string.Empty; + public string UniqueId + { + get { return this._uniqueId; } + set { this.SetProperty(ref this._uniqueId, value); } + } + + private string _title = string.Empty; + public string Title + { + get { return this._title; } + set { this.SetProperty(ref this._title, value); } + } + + private string _subtitle = string.Empty; + public string Subtitle + { + get { return this._subtitle; } + set { this.SetProperty(ref this._subtitle, value); } + } + + private string _description = string.Empty; + public string Description + { + get { return this._description; } + set { this.SetProperty(ref this._description, value); } + } + + private ImageSource _image = null; + private String _imagePath = null; + public ImageSource Image + { + get + { + if (this._image == null && this._imagePath != null) + { + this._image = new BitmapImage(new Uri(SampleDataCommon._baseUri, this._imagePath)); + } + return this._image; + } + + set + { + this._imagePath = null; + this.SetProperty(ref this._image, value); + } + } + + public void SetImage(String path) + { + this._image = null; + this._imagePath = path; + this.OnPropertyChanged("Image"); + } + + public override string ToString() + { + return this.Title; + } + } + + /// + /// Generic item data model. + /// + public class SampleDataItem : SampleDataCommon + { + public SampleDataItem(String uniqueId, String title, String subtitle, String imagePath, String description, String content, SampleDataGroup group) + : base(uniqueId, title, subtitle, imagePath, description) + { + this._content = content; + this._group = group; + } + + private string _content = string.Empty; + public string Content + { + get { return this._content; } + set { this.SetProperty(ref this._content, value); } + } + + private SampleDataGroup _group; + public SampleDataGroup Group + { + get { return this._group; } + set { this.SetProperty(ref this._group, value); } + } + } + + /// + /// Generic group data model. + /// + public class SampleDataGroup : SampleDataCommon + { + public SampleDataGroup(String uniqueId, String title, String subtitle, String imagePath, String description) + : base(uniqueId, title, subtitle, imagePath, description) + { + Items.CollectionChanged += ItemsCollectionChanged; + } + + private void ItemsCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) + { + // Provides a subset of the full items collection to bind to from a GroupedItemsPage + // for two reasons: GridView will not virtualize large items collections, and it + // improves the user experience when browsing through groups with large numbers of + // items. + // + // A maximum of 12 items are displayed because it results in filled grid columns + // whether there are 1, 2, 3, 4, or 6 rows displayed + + switch (e.Action) + { + case NotifyCollectionChangedAction.Add: + if (e.NewStartingIndex < 12) + { + TopItems.Insert(e.NewStartingIndex,Items[e.NewStartingIndex]); + if (TopItems.Count > 12) + { + TopItems.RemoveAt(12); + } + } + break; + case NotifyCollectionChangedAction.Move: + if (e.OldStartingIndex < 12 && e.NewStartingIndex < 12) + { + TopItems.Move(e.OldStartingIndex, e.NewStartingIndex); + } + else if (e.OldStartingIndex < 12) + { + TopItems.RemoveAt(e.OldStartingIndex); + TopItems.Add(Items[11]); + } + else if (e.NewStartingIndex < 12) + { + TopItems.Insert(e.NewStartingIndex, Items[e.NewStartingIndex]); + TopItems.RemoveAt(12); + } + break; + case NotifyCollectionChangedAction.Remove: + if (e.OldStartingIndex < 12) + { + TopItems.RemoveAt(e.OldStartingIndex); + if (Items.Count >= 12) + { + TopItems.Add(Items[11]); + } + } + break; + case NotifyCollectionChangedAction.Replace: + if (e.OldStartingIndex < 12) + { + TopItems[e.OldStartingIndex] = Items[e.OldStartingIndex]; + } + break; + case NotifyCollectionChangedAction.Reset: + TopItems.Clear(); + while (TopItems.Count < Items.Count && TopItems.Count < 12) + { + TopItems.Add(Items[TopItems.Count]); + } + break; + } + } + + private ObservableCollection _items = new ObservableCollection(); + public ObservableCollection Items + { + get { return this._items; } + } + + private ObservableCollection _topItem = new ObservableCollection(); + public ObservableCollection TopItems + { + get {return this._topItem; } + } + } + + /// + /// Creates a collection of groups and items with hard-coded content. + /// + /// SampleDataSource initializes with placeholder data rather than live production + /// data so that sample data is provided at both design-time and run-time. + /// + public sealed class SampleDataSource + { + private static SampleDataSource _sampleDataSource = new SampleDataSource(); + + private ObservableCollection _allGroups = new ObservableCollection(); + public ObservableCollection AllGroups + { + get { return this._allGroups; } + } + + public static IEnumerable GetGroups(string uniqueId) + { + if (!uniqueId.Equals("AllGroups")) throw new ArgumentException("Only 'AllGroups' is supported as a collection of groups"); + + return _sampleDataSource.AllGroups; + } + + public static SampleDataGroup GetGroup(string uniqueId) + { + // Simple linear search is acceptable for small data sets + var matches = _sampleDataSource.AllGroups.Where((group) => group.UniqueId.Equals(uniqueId)); + if (matches.Count() == 1) return matches.First(); + return null; + } + + public static SampleDataItem GetItem(string uniqueId) + { + // Simple linear search is acceptable for small data sets + var matches = _sampleDataSource.AllGroups.SelectMany(group => group.Items).Where((item) => item.UniqueId.Equals(uniqueId)); + if (matches.Count() == 1) return matches.First(); + return null; + } + + public SampleDataSource() + { + String ITEM_CONTENT = String.Format("Item Content: {0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}", + "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat"); + + var group1 = new SampleDataGroup("Group-1", + "Group Title: 1", + "Group Subtitle: 1", + "Assets/DarkGray.png", + "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante"); + group1.Items.Add(new SampleDataItem("Group-1-Item-1", + "Item Title: 1", + "Item Subtitle: 1", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group1)); + group1.Items.Add(new SampleDataItem("Group-1-Item-2", + "Item Title: 2", + "Item Subtitle: 2", + "Assets/DarkGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group1)); + group1.Items.Add(new SampleDataItem("Group-1-Item-3", + "Item Title: 3", + "Item Subtitle: 3", + "Assets/MediumGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group1)); + group1.Items.Add(new SampleDataItem("Group-1-Item-4", + "Item Title: 4", + "Item Subtitle: 4", + "Assets/DarkGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group1)); + group1.Items.Add(new SampleDataItem("Group-1-Item-5", + "Item Title: 5", + "Item Subtitle: 5", + "Assets/MediumGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group1)); + this.AllGroups.Add(group1); + + var group2 = new SampleDataGroup("Group-2", + "Group Title: 2", + "Group Subtitle: 2", + "Assets/LightGray.png", + "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante"); + group2.Items.Add(new SampleDataItem("Group-2-Item-1", + "Item Title: 1", + "Item Subtitle: 1", + "Assets/DarkGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group2)); + group2.Items.Add(new SampleDataItem("Group-2-Item-2", + "Item Title: 2", + "Item Subtitle: 2", + "Assets/MediumGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group2)); + group2.Items.Add(new SampleDataItem("Group-2-Item-3", + "Item Title: 3", + "Item Subtitle: 3", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group2)); + this.AllGroups.Add(group2); + + var group3 = new SampleDataGroup("Group-3", + "Group Title: 3", + "Group Subtitle: 3", + "Assets/MediumGray.png", + "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante"); + group3.Items.Add(new SampleDataItem("Group-3-Item-1", + "Item Title: 1", + "Item Subtitle: 1", + "Assets/MediumGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group3)); + group3.Items.Add(new SampleDataItem("Group-3-Item-2", + "Item Title: 2", + "Item Subtitle: 2", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group3)); + group3.Items.Add(new SampleDataItem("Group-3-Item-3", + "Item Title: 3", + "Item Subtitle: 3", + "Assets/DarkGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group3)); + group3.Items.Add(new SampleDataItem("Group-3-Item-4", + "Item Title: 4", + "Item Subtitle: 4", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group3)); + group3.Items.Add(new SampleDataItem("Group-3-Item-5", + "Item Title: 5", + "Item Subtitle: 5", + "Assets/MediumGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group3)); + group3.Items.Add(new SampleDataItem("Group-3-Item-6", + "Item Title: 6", + "Item Subtitle: 6", + "Assets/DarkGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group3)); + group3.Items.Add(new SampleDataItem("Group-3-Item-7", + "Item Title: 7", + "Item Subtitle: 7", + "Assets/MediumGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group3)); + this.AllGroups.Add(group3); + + var group4 = new SampleDataGroup("Group-4", + "Group Title: 4", + "Group Subtitle: 4", + "Assets/LightGray.png", + "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante"); + group4.Items.Add(new SampleDataItem("Group-4-Item-1", + "Item Title: 1", + "Item Subtitle: 1", + "Assets/DarkGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group4)); + group4.Items.Add(new SampleDataItem("Group-4-Item-2", + "Item Title: 2", + "Item Subtitle: 2", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group4)); + group4.Items.Add(new SampleDataItem("Group-4-Item-3", + "Item Title: 3", + "Item Subtitle: 3", + "Assets/DarkGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group4)); + group4.Items.Add(new SampleDataItem("Group-4-Item-4", + "Item Title: 4", + "Item Subtitle: 4", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group4)); + group4.Items.Add(new SampleDataItem("Group-4-Item-5", + "Item Title: 5", + "Item Subtitle: 5", + "Assets/MediumGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group4)); + group4.Items.Add(new SampleDataItem("Group-4-Item-6", + "Item Title: 6", + "Item Subtitle: 6", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group4)); + this.AllGroups.Add(group4); + + var group5 = new SampleDataGroup("Group-5", + "Group Title: 5", + "Group Subtitle: 5", + "Assets/MediumGray.png", + "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante"); + group5.Items.Add(new SampleDataItem("Group-5-Item-1", + "Item Title: 1", + "Item Subtitle: 1", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group5)); + group5.Items.Add(new SampleDataItem("Group-5-Item-2", + "Item Title: 2", + "Item Subtitle: 2", + "Assets/DarkGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group5)); + group5.Items.Add(new SampleDataItem("Group-5-Item-3", + "Item Title: 3", + "Item Subtitle: 3", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group5)); + group5.Items.Add(new SampleDataItem("Group-5-Item-4", + "Item Title: 4", + "Item Subtitle: 4", + "Assets/MediumGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group5)); + this.AllGroups.Add(group5); + + var group6 = new SampleDataGroup("Group-6", + "Group Title: 6", + "Group Subtitle: 6", + "Assets/DarkGray.png", + "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante"); + group6.Items.Add(new SampleDataItem("Group-6-Item-1", + "Item Title: 1", + "Item Subtitle: 1", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group6)); + group6.Items.Add(new SampleDataItem("Group-6-Item-2", + "Item Title: 2", + "Item Subtitle: 2", + "Assets/DarkGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group6)); + group6.Items.Add(new SampleDataItem("Group-6-Item-3", + "Item Title: 3", + "Item Subtitle: 3", + "Assets/MediumGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group6)); + group6.Items.Add(new SampleDataItem("Group-6-Item-4", + "Item Title: 4", + "Item Subtitle: 4", + "Assets/DarkGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group6)); + group6.Items.Add(new SampleDataItem("Group-6-Item-5", + "Item Title: 5", + "Item Subtitle: 5", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group6)); + group6.Items.Add(new SampleDataItem("Group-6-Item-6", + "Item Title: 6", + "Item Subtitle: 6", + "Assets/MediumGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group6)); + group6.Items.Add(new SampleDataItem("Group-6-Item-7", + "Item Title: 7", + "Item Subtitle: 7", + "Assets/DarkGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group6)); + group6.Items.Add(new SampleDataItem("Group-6-Item-8", + "Item Title: 8", + "Item Subtitle: 8", + "Assets/LightGray.png", + "Item Description: Pellentesque porta, mauris quis interdum vehicula, urna sapien ultrices velit, nec venenatis dui odio in augue. Cras posuere, enim a cursus convallis, neque turpis malesuada erat, ut adipiscing neque tortor ac erat.", + ITEM_CONTENT, + group6)); + this.AllGroups.Add(group6); + } + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/MVVMLight.Nuget.Readme.txt b/ApressBook SourceCode/ApressDemo/ApressDemo/MVVMLight.Nuget.Readme.txt new file mode 100644 index 0000000..9272ca4 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/MVVMLight.Nuget.Readme.txt @@ -0,0 +1,13 @@ +***Windows 8 Metro style only*** + +Windows 8 has a new way to import CLR namespaces into XAML. + +In order to avoid issues, after installing MVVM Light through Nuget in your Windows 8 Metro style application, follow these steps: + +- open App.xaml + +- Locate the statement +xmlns:vm="clr-namespace:[YouApplication].ViewModel" + +- Replace this statement with: +xmlns:vm="using:[YouApplication].ViewModel" diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/MetroGridHelper.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/MetroGridHelper.cs new file mode 100644 index 0000000..e137ca5 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/MetroGridHelper.cs @@ -0,0 +1,307 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using Windows.Graphics.Display; +using Windows.UI; +using Windows.UI.Core; +using Windows.UI.ViewManagement; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Shapes; + +namespace MC.MetroGridHelper +{ + /// + /// A utility class that overlays a designer-friendly grid on top of the + /// application frame, for use similar to the performance counters in + /// App.xaml.cs. The color and opacity are configurable. The grid contains + /// a number of squares that are 24x24, offset with 12px gutters, and all + /// 24px away from the edge of the device. + /// + public static class MetroGridHelper + { + private static bool _visible; + private static double _opacity = 0.15; + private static Color _color = Colors.Red; + private static List _shapes; + private static Grid _grid; + private static bool _eventsAttached; + private static double _width; + private static double _height; + + /// + /// Gets or sets a value indicating whether the designer grid is + /// visible on top of the application's frame. + /// + public static bool IsVisible + { + get { return _visible; } + set + { + _visible = value; + UpdateGrid(); + } + } + + /// + /// Gets or sets the color to use for the grid's squares. + /// + public static Color Color + { + get { return _color; } + set + { + _color = value; + UpdateGrid(); + } + } + + /// + /// Gets or sets a value indicating the opacity for the grid's squares. + /// + public static double Opacity + { + get { return _opacity; } + set + { + _opacity = value; + UpdateGrid(); + } + } + + /// + /// Updates the grid (if it already has been created) or initializes it + /// otherwise. + /// + private static void UpdateGrid() + { + if (_shapes != null) + { + var brush = new SolidColorBrush(_color); + foreach (Shape square in _shapes) + { + square.Fill = brush; + } + if (_grid != null) + { + _grid.Visibility = _visible ? Visibility.Visible : Visibility.Collapsed; + _grid.Opacity = _opacity; + } + } + else + { + BuildGrid(); + } + } + + /// + /// Builds the grid. + /// + private static async void BuildGrid() + { + _shapes = new List(); + + var frame = Window.Current.Content as Frame; + if (frame == null || VisualTreeHelper.GetChildrenCount(frame) == 0) + { + await Window.Current.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, BuildGrid); + return; + } + + DependencyObject child = VisualTreeHelper.GetChild(frame, 0); + var childAsBorder = child as Border; + var childAsGrid = child as Grid; + if (childAsBorder != null) + { + // Not a pretty way to control the root visual, but I did not + // want to implement using a popup. + UIElement content = childAsBorder.Child; + if (content == null) + { + await Window.Current.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, BuildGrid); + return; + } + childAsBorder.Child = null; + await Window.Current.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, + () => + { + var newGrid = new Grid(); + childAsBorder.Child = newGrid; + newGrid.Children.Add(content); + PrepareGrid(newGrid); + AttachEvents(); + }); + } + else if (childAsGrid != null) + { + PrepareGrid(childAsGrid); + AttachEvents(); + } + else + { + Debug.WriteLine("Dear developer:"); + Debug.WriteLine("Unfortunately the design overlay feature requires that the root frame visual"); + Debug.WriteLine("be a Border or a Grid. So the overlay grid just isn't going to happen."); + } + } + + private static void AttachEvents() + { + if (_eventsAttached) + return; + Window.Current.SizeChanged += (s, e) => BuildGridForCurrentView(); + DisplayProperties.OrientationChanged += s => BuildGridForCurrentView(); + _eventsAttached = true; + } + + public static void CreateGrid() + { + IsVisible = true; + } + + /// + /// Does the actual work of preparing the grid once the parent frame is + /// in the visual tree and we have a Grid instance to work with for + /// placing the chilren. + /// + /// The parent grid to insert the sub-grid into. + private static void PrepareGrid(Grid parent) + { + if (_grid == null) + { + _grid = new Grid + { + IsHitTestVisible = false, + Visibility = _visible ? Visibility.Visible : Visibility.Collapsed, + Opacity = _opacity, + CacheMode = new BitmapCache() + }; + parent.Children.Add(_grid); + } + BuildGridForCurrentView(); + } + + public static int GetMarginForCurrentView() + { + bool isSnapped = ApplicationView.Value == ApplicationViewState.Snapped; + bool isPortrait = DisplayProperties.CurrentOrientation == DisplayOrientations.Portrait || + DisplayProperties.CurrentOrientation == DisplayOrientations.PortraitFlipped; + if (isSnapped) + return 20; + if (isPortrait) + return 100; + return 120; + } + + public static void BuildGridForCurrentView() + { + // Places the grid into the visual tree. It is never removed once + // being added. + var frame = Window.Current.Content as Frame; + if (frame == null) + return; + + _width=Math.Max(_width, frame.ActualWidth); + _height=Math.Max(_height, frame.ActualHeight); + _grid.Children.Clear(); + _shapes.Clear(); + IEnumerable shapes = GetGridShapesForMargin(_width, _height, GetMarginForCurrentView()); + foreach (Shape shape in shapes) + { + _grid.Children.Add(shape); + _shapes.Add(shape); + } + } + + public static IEnumerable GetGridShapesForMargin(double width, double height, int margin) + { + // To support both orientations, unfortunately more visuals need to + // be used. An alternate implementation would be to react to the + // orientation change event and re-draw/remove squares. + var brush = new SolidColorBrush(_color); + double max = Math.Max(width, height); + + const double strokeWidth = 2.0; + + var horizontalLine = new Line + { + IsHitTestVisible = false, + Stroke = brush, + X1 = 0, + X2 = max, + Y1 = 100 + (strokeWidth/2), + Y2 = 100 + (strokeWidth/2), + StrokeThickness = strokeWidth, + }; + yield return horizontalLine; + var horizontalLine2 = new Line + { + IsHitTestVisible = false, + Stroke = brush, + X1 = 0, + X2 = max, + Y1 = 140 + (strokeWidth/2), + Y2 = 140 + (strokeWidth/2), + StrokeThickness = strokeWidth, + }; + yield return horizontalLine2; + + var verticalLine = new Line + { + IsHitTestVisible = false, + Stroke = brush, + X1 = margin - (strokeWidth / 2), + X2 = margin - (strokeWidth / 2), + Y1 = 0, + Y2 = max, + StrokeThickness = strokeWidth, + }; + yield return verticalLine; + + var horizontalBottomLine = new Line + { + IsHitTestVisible = false, + Stroke = brush, + X1 = 0, + X2 = max, + Y1 = height - 130 + (strokeWidth/2), + Y2 = height - 130 + (strokeWidth/2), + StrokeThickness = strokeWidth, + }; + _shapes.Add(horizontalBottomLine); + var horizontalBottomLine2 = new Line + { + IsHitTestVisible = false, + Stroke = brush, + X1 = 0, + X2 = max, + Y1 = height - 50 + (strokeWidth/2), + Y2 = height - 50 + (strokeWidth/2), + StrokeThickness = strokeWidth, + }; + _shapes.Add(horizontalBottomLine2); + yield return horizontalBottomLine2; + + const int tileHeight = 20; + + for (int x = margin; x < /*width*/ max; x += (tileHeight*2)) + { + for (int y = 140; y < /*height*/ max; y += (tileHeight*2)) + { + var rect = new Rectangle + { + Width = tileHeight, + Height = tileHeight, + VerticalAlignment = VerticalAlignment.Top, + HorizontalAlignment = HorizontalAlignment.Left, + Margin = new Thickness(x, y, 0, 0), + IsHitTestVisible = false, + Fill = brush, + }; + yield return rect; + } + } + } + } +} \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Models/ApressBook.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Models/ApressBook.cs new file mode 100644 index 0000000..a996047 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Models/ApressBook.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace ApressDemo.Models +{ + public partial class ApressBook + { + #region "Properties" + + public string ApressBookISBN { get; set; } + public string ApressBookName { get; set; } + public string ApressBookTechnology { get; set; } + public string ApressBookAuthor { get; set; } + public DateTime ApressBookPublishedDate { get; set; } + public string ApressBookDescription { get; set; } + public string ApressBookUserLevel { get; set; } + public string ApressBookImageURI { get; set; } + + public string DisplayablePublishDate + { + get + { + return ApressBookPublishedDate.ToString("MM/dd/yyyy"); + } + } + + #endregion + } + + public partial class ApressBookForZumo : ApressODataService.ApressBook + { + #region "Properties" + + [DataMember(Name = "channel")] + public string Channel { get; set; } + + #endregion + } + + + public partial class RelationalApressBookModel + { + #region "Properties" + + [SQLite.PrimaryKey] + public string ApressBookISBN { get; set; } + public string ApressBookName { get; set; } + public string ApressBookTechnology { get; set; } + public string ApressBookAuthor { get; set; } + public DateTime ApressBookPublishedDate { get; set; } + public string ApressBookDescription { get; set; } + public string ApressBookUserLevel { get; set; } + public string ApressBookImageURI { get; set; } + + public string DisplayablePublishDate + { + get + { + return ApressBookPublishedDate.ToString("MM/dd/yyyy"); + } + } + + #endregion + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Models/GroupedApressBooks.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Models/GroupedApressBooks.cs new file mode 100644 index 0000000..aac6867 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Models/GroupedApressBooks.cs @@ -0,0 +1,74 @@ +using ApressDemo.Common; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ApressDemo.Models +{ + public class GroupedApressBooks : BindableBase + { + #region "Members" + + private string _ApressBookGroupName; + private int _ApressBookGroupCount; + + private ObservableCollection _bookCollection; + + #endregion + + #region "Properties" + + public string ApressBookGroupName + { + get { return _ApressBookGroupName; } + set { SetProperty(ref _ApressBookGroupName, value); } + } + public int ApressBookGroupCount + { + get { return _ApressBookGroupCount; } + set { SetProperty(ref _ApressBookGroupCount, value); } + } + + public ObservableCollection BookCollection + { + get { return _bookCollection; } + set { SetProperty(ref _bookCollection, value); } + } + + public string ImageURI + { + get + { + string imageUri = string.Empty; + switch (ApressBookGroupName) + { + case "Windows Phone": + imageUri = "/Assets/WindowsPhoneLogo.png"; + break; + case "Windows Azure": + imageUri = "/Assets/WindowsAzureLogo.png"; + break; + case "ASP.NET": + imageUri = "/Assets/ASPDotNetLogo.png"; + break; + } + + return imageUri; + } + } + + #endregion + + #region "Constructor" + + public GroupedApressBooks() + { + BookCollection = new ObservableCollection(); + } + + #endregion + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Package.StoreAssociation.xml b/ApressBook SourceCode/ApressDemo/ApressDemo/Package.StoreAssociation.xml new file mode 100644 index 0000000..23aef97 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Package.StoreAssociation.xml @@ -0,0 +1,347 @@ + + + CN=792724AB-A262-4445-8C40-CF7DB59F53DB + 1805SamidipBasu + Samidip Basu + http://www.w3.org/2001/04/xmlenc#sha256 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1805SamidipBasu.ApressDemo + + ApressDemo + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Package.appxmanifest b/ApressBook SourceCode/ApressDemo/ApressDemo/Package.appxmanifest new file mode 100644 index 0000000..a8b2ab3 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Package.appxmanifest @@ -0,0 +1,55 @@ + + + + + ApressDemo + Samidip Basu + Assets\StoreLogo.png + + + 6.2.1 + 6.2.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Properties/AssemblyInfo.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4d8b781 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ApressDemo")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ApressDemo")] +[assembly: AssemblyCopyright("Copyright © 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: ComVisible(false)] \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Repository/ApressBooksRepository.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Repository/ApressBooksRepository.cs new file mode 100644 index 0000000..b202dd8 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Repository/ApressBooksRepository.cs @@ -0,0 +1,47 @@ +using ApressDemo.Models; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ApressDemo.Repository +{ + public partial class ApressBooksRepository : IBookService + { + public async Task> GetFeaturedBooks() + { + //ApressBookServiceClient client = new ApressBookServiceClient(); + //var result = await client.GetFeaturedBooksAsync(); + //return result; + + ObservableCollection featuredBooksCollection = new ObservableCollection(); + + ApressBook WPMigration = new ApressBook(); + WPMigration.ApressBookISBN = "978-1-4302-3816-4"; + WPMigration.ApressBookName = "Migrating to Windows Phone"; + WPMigration.ApressBookTechnology = "Windows Phone"; + WPMigration.ApressBookAuthor = "Jesse Liberty , Jeff Blankenburg"; + WPMigration.ApressBookDescription = "This book offers everything you'll need to upgrade your existing programming knowledge and begin to develop applications for the Windows Phone."; + WPMigration.ApressBookImageURI = "/Assets/MigratingToWP.png"; + WPMigration.ApressBookPublishedDate = new DateTime(2011, 12, 28); + WPMigration.ApressBookUserLevel = "Intermediate"; + + ApressBook WPRecipes = new ApressBook(); + WPRecipes.ApressBookISBN = "978-1-4302-4137-9"; + WPRecipes.ApressBookName = "Windows Phone Recipes"; + WPRecipes.ApressBookTechnology = "Windows Phone"; + WPRecipes.ApressBookAuthor = "Fabio Claudio Ferracchiati , Emanuele Garofalo"; + WPRecipes.ApressBookDescription = "Are you interested in smartphone development? Windows Phone 7.5 (code-named Mango) is packed with new features and functionality that make it a .NET developer's dream. This book contains extensive code samples and detailed walkthroughs that will have you writing sophisticated apps in no time!"; + WPRecipes.ApressBookImageURI = "/Assets/WPRecipes.png"; + WPRecipes.ApressBookPublishedDate = new DateTime(2011, 12, 14); + WPRecipes.ApressBookUserLevel = "Beginner to Intermediate"; + + featuredBooksCollection.Add(WPMigration); + featuredBooksCollection.Add(WPRecipes); + + return featuredBooksCollection; + } + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Repository/IBookService.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Repository/IBookService.cs new file mode 100644 index 0000000..5cf3edb --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Repository/IBookService.cs @@ -0,0 +1,15 @@ +using ApressDemo.Models; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ApressDemo.Repository +{ + public interface IBookService + { + Task> GetFeaturedBooks(); + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/SQLite.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/SQLite.cs new file mode 100644 index 0000000..fad33de --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/SQLite.cs @@ -0,0 +1,2661 @@ +// +// Copyright (c) 2009-2012 Krueger Systems, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +#if WINDOWS_PHONE +#define USE_CSHARP_SQLITE +#endif + +using System; +using System.Diagnostics; +using System.Runtime.InteropServices; +using System.Collections.Generic; +using System.Reflection; +using System.Linq; +using System.Linq.Expressions; +using System.Threading; + +#if USE_CSHARP_SQLITE +using Community.CsharpSqlite; +using Sqlite3DatabaseHandle = Community.CsharpSqlite.Sqlite3.sqlite3; +using Sqlite3Statement = Community.CsharpSqlite.Sqlite3.Vdbe; +#else +using Sqlite3DatabaseHandle = System.IntPtr; +using Sqlite3Statement = System.IntPtr; +#endif + +namespace SQLite +{ + public class SQLiteException : System.Exception + { + public SQLite3.Result Result { get; private set; } + + protected SQLiteException (SQLite3.Result r,string message) : base(message) + { + Result = r; + } + + public static SQLiteException New (SQLite3.Result r, string message) + { + return new SQLiteException (r, message); + } + } + + [Flags] + public enum SQLiteOpenFlags { + ReadOnly = 1, ReadWrite = 2, Create = 4, + NoMutex = 0x8000, FullMutex = 0x10000, + SharedCache = 0x20000, PrivateCache = 0x40000, + ProtectionComplete = 0x00100000, + ProtectionCompleteUnlessOpen = 0x00200000, + ProtectionCompleteUntilFirstUserAuthentication = 0x00300000, + ProtectionNone = 0x00400000 + } + + /// + /// Represents an open connection to a SQLite database. + /// + public class SQLiteConnection : IDisposable + { + private bool _open; + private TimeSpan _busyTimeout; + private Dictionary _mappings = null; + private Dictionary _tables = null; + private System.Diagnostics.Stopwatch _sw; + private long _elapsedMilliseconds = 0; + + private int _trasactionDepth = 0; + private Random _rand = new Random (); + + public Sqlite3DatabaseHandle Handle { get; private set; } +#if USE_CSHARP_SQLITE + internal static readonly Sqlite3DatabaseHandle NullHandle = null; +#else + internal static readonly Sqlite3DatabaseHandle NullHandle = IntPtr.Zero; +#endif + + public string DatabasePath { get; private set; } + + public bool TimeExecution { get; set; } + + public bool Trace { get; set; } + + public bool StoreDateTimeAsTicks { get; private set; } + + /// + /// Constructs a new SQLiteConnection and opens a SQLite database specified by databasePath. + /// + /// + /// Specifies the path to the database file. + /// + /// + /// Specifies whether to store DateTime properties as ticks (true) or strings (false). You + /// absolutely do want to store them as Ticks in all new projects. The default of false is + /// only here for backwards compatibility. There is a *significant* speed advantage, with no + /// down sides, when setting storeDateTimeAsTicks = true. + /// + public SQLiteConnection (string databasePath, bool storeDateTimeAsTicks = false) + { + DatabasePath = databasePath; + Sqlite3DatabaseHandle handle; + var r = SQLite3.Open (DatabasePath, out handle); + Handle = handle; + if (r != SQLite3.Result.OK) { + throw SQLiteException.New (r, String.Format ("Could not open database file: {0} ({1})", DatabasePath, r)); + } + _open = true; + + StoreDateTimeAsTicks = storeDateTimeAsTicks; + + BusyTimeout = TimeSpan.FromSeconds (0.1); + } + + /// + /// Constructs a new SQLiteConnection and opens a SQLite database specified by databasePath. + /// + /// + /// Specifies the path to the database file. + /// + /// + /// Specifies whether to store DateTime properties as ticks (true) or strings (false). You + /// absolutely do want to store them as Ticks in all new projects. The default of false is + /// only here for backwards compatibility. There is a *significant* speed advantage, with no + /// down sides, when setting storeDateTimeAsTicks = true. + /// + public SQLiteConnection (string databasePath, SQLiteOpenFlags openFlags, bool storeDateTimeAsTicks = false) + { + DatabasePath = databasePath; + Sqlite3DatabaseHandle handle; + +#if SILVERLIGHT + var r = SQLite3.Open (databasePath, out handle, (int)openFlags, IntPtr.Zero); +#else + // open using the byte[] + // in the case where the path may include Unicode + // force open to using UTF-8 using sqlite3_open_v2 + byte[] databasePathAsBytes; + int databasePathLength; + + databasePathLength = System.Text.Encoding.UTF8.GetByteCount(DatabasePath); + databasePathAsBytes = new byte[databasePathLength + 1]; + databasePathLength = System.Text.Encoding.UTF8.GetBytes(DatabasePath, 0, DatabasePath.Length, databasePathAsBytes, 0); + + var r = SQLite3.Open (databasePathAsBytes, out handle, (int) openFlags, IntPtr.Zero); +#endif + + Handle = handle; + if (r != SQLite3.Result.OK) { + throw SQLiteException.New (r, String.Format ("Could not open database file: {0} ({1})", DatabasePath, r)); + } + _open = true; + + StoreDateTimeAsTicks = storeDateTimeAsTicks; + + BusyTimeout = TimeSpan.FromSeconds (0.1); + } + + static SQLiteConnection () + { + if (_preserveDuringLinkMagic) { + var ti = new TableInfo (); + ti.name = "magic"; + } + } + + /// + /// Used to list some code that we want the MonoTouch linker + /// to see, but that we never want to actually execute. + /// + static bool _preserveDuringLinkMagic = false; + + /// + /// Sets a busy handler to sleep the specified amount of time when a table is locked. + /// The handler will sleep multiple times until a total time of has accumulated. + /// + public TimeSpan BusyTimeout { + get { return _busyTimeout; } + set { + _busyTimeout = value; + if (Handle != NullHandle) { + SQLite3.BusyTimeout (Handle, (int)_busyTimeout.TotalMilliseconds); + } + } + } + + /// + /// Returns the mappings from types to tables that the connection + /// currently understands. + /// + public IEnumerable TableMappings { + get { + if (_tables == null) { + return Enumerable.Empty (); + } else { + return _tables.Values; + } + } + } + + /// + /// Retrieves the mapping that is automatically generated for the given type. + /// + /// + /// The type whose mapping to the database is returned. + /// + /// + /// The mapping represents the schema of the columns of the database and contains + /// methods to set and get properties of objects. + /// + public TableMapping GetMapping (Type type) + { + if (_mappings == null) { + _mappings = new Dictionary (); + } + TableMapping map; + if (!_mappings.TryGetValue (type.FullName, out map)) { + map = new TableMapping (type); + _mappings [type.FullName] = map; + } + return map; + } + + /// + /// Retrieves the mapping that is automatically generated for the given type. + /// + /// + /// The mapping represents the schema of the columns of the database and contains + /// methods to set and get properties of objects. + /// + public TableMapping GetMapping () + { + return GetMapping (typeof (T)); + } + + private struct IndexedColumn + { + public int Order; + public string ColumnName; + } + + private struct IndexInfo + { + public string IndexName; + public string TableName; + public bool Unique; + public List Columns; + } + + /// + /// Executes a "drop table" on the database. This is non-recoverable. + /// + public int DropTable() + { + var map = GetMapping (typeof (T)); + + var query = string.Format("drop table if exists \"{0}\"", map.TableName); + + return Execute (query); + } + + /// + /// Executes a "create table if not exists" on the database. It also + /// creates any specified indexes on the columns of the table. It uses + /// a schema automatically generated from the specified type. You can + /// later access this schema by calling GetMapping. + /// + /// + /// The number of entries added to the database schema. + /// + public int CreateTable() + { + return CreateTable(typeof (T)); + } + + /// + /// Executes a "create table if not exists" on the database. It also + /// creates any specified indexes on the columns of the table. It uses + /// a schema automatically generated from the specified type. You can + /// later access this schema by calling GetMapping. + /// + /// Type to reflect to a database table. + /// + /// The number of entries added to the database schema. + /// + public int CreateTable(Type ty) + { + if (_tables == null) { + _tables = new Dictionary (); + } + TableMapping map; + if (!_tables.TryGetValue (ty.FullName, out map)) { + map = GetMapping (ty); + _tables.Add (ty.FullName, map); + } + var query = "create table if not exists \"" + map.TableName + "\"(\n"; + + var decls = map.Columns.Select (p => Orm.SqlDecl (p, StoreDateTimeAsTicks)); + var decl = string.Join (",\n", decls.ToArray ()); + query += decl; + query += ")"; + + var count = Execute (query); + + if (count == 0) { //Possible bug: This always seems to return 0? + // Table already exists, migrate it + MigrateTable (map); + } + + var indexes = new Dictionary (); + foreach (var c in map.Columns) { + foreach (var i in c.Indices) { + var iname = i.Name ?? map.TableName + "_" + c.Name; + IndexInfo iinfo; + if (!indexes.TryGetValue (iname, out iinfo)) { + iinfo = new IndexInfo { + IndexName = iname, + TableName = map.TableName, + Unique = i.Unique, + Columns = new List () + }; + indexes.Add (iname, iinfo); + } + + if (i.Unique != iinfo.Unique) + throw new Exception ("All the columns in an index must have the same value for their Unique property"); + + iinfo.Columns.Add (new IndexedColumn { + Order = i.Order, + ColumnName = c.Name + }); + } + } + + foreach (var indexName in indexes.Keys) { + var index = indexes[indexName]; + const string sqlFormat = "create {3} index if not exists \"{0}\" on \"{1}\"(\"{2}\")"; + var columns = String.Join("\",\"", index.Columns.OrderBy(i => i.Order).Select(i => i.ColumnName).ToArray()); + var sql = String.Format (sqlFormat, indexName, index.TableName, columns, index.Unique ? "unique" : ""); + count += Execute(sql); + } + + return count; + } + + public class TableInfo + { + public int cid { get; set; } + + public string name { get; set; } + + public string type { get; set; } + + public int notnull { get; set; } + + public string dflt_value { get; set; } + + public int pk { get; set; } + } + + void MigrateTable (TableMapping map) + { + var query = "pragma table_info(\"" + map.TableName + "\")"; + + var existingCols = Query (query); + + var toBeAdded = new List (); + + foreach (var p in map.Columns) { + var found = false; + foreach (var c in existingCols) { + found = p.Name == c.name; + if (found) + break; + } + if (!found) { + toBeAdded.Add (p); + } + } + + foreach (var p in toBeAdded) { + var addCol = "alter table \"" + map.TableName + "\" add column " + Orm.SqlDecl (p, StoreDateTimeAsTicks); + Execute (addCol); + } + } + + /// + /// Creates a new SQLiteCommand. Can be overridden to provide a sub-class. + /// + /// + protected virtual SQLiteCommand NewCommand () + { + return new SQLiteCommand (this); + } + + /// + /// Creates a new SQLiteCommand given the command text with arguments. Place a '?' + /// in the command text for each of the arguments. + /// + /// + /// The fully escaped SQL. + /// + /// + /// Arguments to substitute for the occurences of '?' in the command text. + /// + /// + /// A + /// + public SQLiteCommand CreateCommand (string cmdText, params object[] ps) + { + if (!_open) { + throw SQLiteException.New (SQLite3.Result.Error, "Cannot create commands from unopened database"); + } else { + var cmd = NewCommand (); + cmd.CommandText = cmdText; + foreach (var o in ps) { + cmd.Bind (o); + } + return cmd; + } + } + + /// + /// Creates a SQLiteCommand given the command text (SQL) with arguments. Place a '?' + /// in the command text for each of the arguments and then executes that command. + /// Use this method instead of Query when you don't expect rows back. Such cases include + /// INSERTs, UPDATEs, and DELETEs. + /// You can set the Trace or TimeExecution properties of the connection + /// to profile execution. + /// + /// + /// The fully escaped SQL. + /// + /// + /// Arguments to substitute for the occurences of '?' in the query. + /// + /// + /// The number of rows modified in the database as a result of this execution. + /// + public int Execute (string query, params object[] args) + { + var cmd = CreateCommand (query, args); + + if (TimeExecution) { + if (_sw == null) { + _sw = new System.Diagnostics.Stopwatch (); + } + _sw.Reset (); + _sw.Start (); + } + + var r = cmd.ExecuteNonQuery (); + + if (TimeExecution) { + _sw.Stop (); + _elapsedMilliseconds += _sw.ElapsedMilliseconds; + Debug.WriteLine (string.Format ("Finished in {0} ms ({1:0.0} s total)", _sw.ElapsedMilliseconds, _elapsedMilliseconds / 1000.0)); + } + + return r; + } + + public T ExecuteScalar (string query, params object[] args) + { + var cmd = CreateCommand (query, args); + + if (TimeExecution) { + if (_sw == null) { + _sw = new System.Diagnostics.Stopwatch (); + } + _sw.Reset (); + _sw.Start (); + } + + var r = cmd.ExecuteScalar (); + + if (TimeExecution) { + _sw.Stop (); + _elapsedMilliseconds += _sw.ElapsedMilliseconds; + Debug.WriteLine (string.Format ("Finished in {0} ms ({1:0.0} s total)", _sw.ElapsedMilliseconds, _elapsedMilliseconds / 1000.0)); + } + + return r; + } + + /// + /// Creates a SQLiteCommand given the command text (SQL) with arguments. Place a '?' + /// in the command text for each of the arguments and then executes that command. + /// It returns each row of the result using the mapping automatically generated for + /// the given type. + /// + /// + /// The fully escaped SQL. + /// + /// + /// Arguments to substitute for the occurences of '?' in the query. + /// + /// + /// An enumerable with one result for each row returned by the query. + /// + public List Query (string query, params object[] args) where T : new() + { + var cmd = CreateCommand (query, args); + return cmd.ExecuteQuery (); + } + + /// + /// Creates a SQLiteCommand given the command text (SQL) with arguments. Place a '?' + /// in the command text for each of the arguments and then executes that command. + /// It returns each row of the result using the mapping automatically generated for + /// the given type. + /// + /// + /// The fully escaped SQL. + /// + /// + /// Arguments to substitute for the occurences of '?' in the query. + /// + /// + /// An enumerable with one result for each row returned by the query. + /// The enumerator will call sqlite3_step on each call to MoveNext, so the database + /// connection must remain open for the lifetime of the enumerator. + /// + public IEnumerable DeferredQuery(string query, params object[] args) where T : new() + { + var cmd = CreateCommand(query, args); + return cmd.ExecuteDeferredQuery(); + } + + /// + /// Creates a SQLiteCommand given the command text (SQL) with arguments. Place a '?' + /// in the command text for each of the arguments and then executes that command. + /// It returns each row of the result using the specified mapping. This function is + /// only used by libraries in order to query the database via introspection. It is + /// normally not used. + /// + /// + /// A to use to convert the resulting rows + /// into objects. + /// + /// + /// The fully escaped SQL. + /// + /// + /// Arguments to substitute for the occurences of '?' in the query. + /// + /// + /// An enumerable with one result for each row returned by the query. + /// + public List Query (TableMapping map, string query, params object[] args) + { + var cmd = CreateCommand (query, args); + return cmd.ExecuteQuery (map); + } + + /// + /// Creates a SQLiteCommand given the command text (SQL) with arguments. Place a '?' + /// in the command text for each of the arguments and then executes that command. + /// It returns each row of the result using the specified mapping. This function is + /// only used by libraries in order to query the database via introspection. It is + /// normally not used. + /// + /// + /// A to use to convert the resulting rows + /// into objects. + /// + /// + /// The fully escaped SQL. + /// + /// + /// Arguments to substitute for the occurences of '?' in the query. + /// + /// + /// An enumerable with one result for each row returned by the query. + /// The enumerator will call sqlite3_step on each call to MoveNext, so the database + /// connection must remain open for the lifetime of the enumerator. + /// + public IEnumerable DeferredQuery(TableMapping map, string query, params object[] args) + { + var cmd = CreateCommand(query, args); + return cmd.ExecuteDeferredQuery(map); + } + + /// + /// Returns a queryable interface to the table represented by the given type. + /// + /// + /// A queryable object that is able to translate Where, OrderBy, and Take + /// queries into native SQL. + /// + public TableQuery Table () where T : new() + { + return new TableQuery (this); + } + + /// + /// Attempts to retrieve an object with the given primary key from the table + /// associated with the specified type. Use of this method requires that + /// the given type have a designated PrimaryKey (using the PrimaryKeyAttribute). + /// + /// + /// The primary key. + /// + /// + /// The object with the given primary key. Throws a not found exception + /// if the object is not found. + /// + public T Get (object pk) where T : new() + { + var map = GetMapping (typeof(T)); + return Query (map.GetByPrimaryKeySql, pk).First (); + } + + /// + /// Attempts to retrieve the first object that matches the predicate from the table + /// associated with the specified type. + /// + /// + /// A predicate for which object to find. + /// + /// + /// The object that matches the given predicate. Throws a not found exception + /// if the object is not found. + /// + public T Get (Expression> predicate) where T : new() + { + return Table ().Where (predicate).First (); + } + + /// + /// Attempts to retrieve an object with the given primary key from the table + /// associated with the specified type. Use of this method requires that + /// the given type have a designated PrimaryKey (using the PrimaryKeyAttribute). + /// + /// + /// The primary key. + /// + /// + /// The object with the given primary key or null + /// if the object is not found. + /// + public T Find (object pk) where T : new () + { + var map = GetMapping (typeof (T)); + return Query (map.GetByPrimaryKeySql, pk).FirstOrDefault (); + } + + /// + /// Attempts to retrieve an object with the given primary key from the table + /// associated with the specified type. Use of this method requires that + /// the given type have a designated PrimaryKey (using the PrimaryKeyAttribute). + /// + /// + /// The primary key. + /// + /// + /// The TableMapping used to identify the object type. + /// + /// + /// The object with the given primary key or null + /// if the object is not found. + /// + public object Find (object pk, TableMapping map) + { + return Query (map, map.GetByPrimaryKeySql, pk).FirstOrDefault (); + } + + /// + /// Attempts to retrieve the first object that matches the predicate from the table + /// associated with the specified type. + /// + /// + /// A predicate for which object to find. + /// + /// + /// The object that matches the given predicate or null + /// if the object is not found. + /// + public T Find (Expression> predicate) where T : new() + { + return Table ().Where (predicate).FirstOrDefault (); + } + + /// + /// Whether has been called and the database is waiting for a . + /// + public bool IsInTransaction { + get { return _trasactionDepth > 0; } + } + + /// + /// Begins a new transaction. Call to end the transaction. + /// + /// Throws if a transaction has already begun. + public void BeginTransaction () + { + // The BEGIN command only works if the transaction stack is empty, + // or in other words if there are no pending transactions. + // If the transaction stack is not empty when the BEGIN command is invoked, + // then the command fails with an error. + // Rather than crash with an error, we will just ignore calls to BeginTransaction + // that would result in an error. + if (Interlocked.CompareExchange (ref _trasactionDepth, 1, 0) == 0) { + try { + Execute ("begin transaction"); + } catch (Exception ex) { + var sqlExp = ex as SQLiteException; + if (sqlExp != null) { + // It is recommended that applications respond to the errors listed below + // by explicitly issuing a ROLLBACK command. + // TODO: This rollback failsafe should be localized to all throw sites. + switch (sqlExp.Result) { + case SQLite3.Result.IOError: + case SQLite3.Result.Full: + case SQLite3.Result.Busy: + case SQLite3.Result.NoMem: + case SQLite3.Result.Interrupt: + RollbackTo (null, true); + break; + } + } else { + // Call decrement and not VolatileWrite in case we've already + // created a transaction point in SaveTransactionPoint since the catch. + Interlocked.Decrement (ref _trasactionDepth); + } + + throw; + } + } else { + // Calling BeginTransaction on an already open transaction is invalid + throw new System.InvalidOperationException ("Cannot begin a transaction while already in a transaction."); + } + } + + /// + /// Creates a savepoint in the database at the current point in the transaction timeline. + /// Begins a new transaction if one is not in progress. + /// + /// Call to undo transactions since the returned savepoint. + /// Call to commit transactions after the savepoint returned here. + /// Call to end the transaction, committing all changes. + /// + /// A string naming the savepoint. + public string SaveTransactionPoint () + { + int depth = Interlocked.Increment (ref _trasactionDepth) - 1; + string retVal = "S" + (short)_rand.Next (short.MaxValue) + "D" + depth; + + try { + Execute ("savepoint " + retVal); + } catch (Exception ex) { + var sqlExp = ex as SQLiteException; + if (sqlExp != null) { + // It is recommended that applications respond to the errors listed below + // by explicitly issuing a ROLLBACK command. + // TODO: This rollback failsafe should be localized to all throw sites. + switch (sqlExp.Result) { + case SQLite3.Result.IOError: + case SQLite3.Result.Full: + case SQLite3.Result.Busy: + case SQLite3.Result.NoMem: + case SQLite3.Result.Interrupt: + RollbackTo (null, true); + break; + } + } else { + Interlocked.Decrement (ref _trasactionDepth); + } + + throw; + } + + return retVal; + } + + /// + /// Rolls back the transaction that was begun by or . + /// + public void Rollback () + { + RollbackTo (null, false); + } + + /// + /// Rolls back the savepoint created by or SaveTransactionPoint. + /// + /// The name of the savepoint to roll back to, as returned by . If savepoint is null or empty, this method is equivalent to a call to + public void RollbackTo (string savepoint) + { + RollbackTo (savepoint, false); + } + + /// + /// Rolls back the transaction that was begun by . + /// + /// true to avoid throwing exceptions, false otherwise + private void RollbackTo (string savepoint, bool noThrow) + { + // Rolling back without a TO clause rolls backs all transactions + // and leaves the transaction stack empty. + try { + if (String.IsNullOrEmpty (savepoint)) { + if (Interlocked.Exchange (ref _trasactionDepth, 0) > 0) { + Execute ("rollback"); + } + } else { + DoSavePointExecute (savepoint, "rollback to "); + } + } catch (SQLiteException) { + if (!noThrow) + throw; + + } + // No need to rollback if there are no transactions open. + } + + /// + /// Releases a savepoint returned from . Releasing a savepoint + /// makes changes since that savepoint permanent if the savepoint began the transaction, + /// or otherwise the changes are permanent pending a call to . + /// + /// The RELEASE command is like a COMMIT for a SAVEPOINT. + /// + /// The name of the savepoint to release. The string should be the result of a call to + public void Release (string savepoint) + { + DoSavePointExecute (savepoint, "release "); + } + + private void DoSavePointExecute (string savepoint, string cmd) + { + // Validate the savepoint + int firstLen = savepoint.IndexOf ('D'); + if (firstLen >= 2 && savepoint.Length > firstLen + 1) { + int depth; + if (Int32.TryParse (savepoint.Substring (firstLen + 1), out depth)) { + // TODO: Mild race here, but inescapable without locking almost everywhere. + if (0 <= depth && depth < _trasactionDepth) { +#if NETFX_CORE + Volatile.Write (ref _trasactionDepth, depth); +#elif SILVERLIGHT + _trasactionDepth = depth; +#else + Thread.VolatileWrite (ref _trasactionDepth, depth); +#endif + Execute (cmd + savepoint); + return; + } + } + } + + throw new ArgumentException ("savePoint", "savePoint is not valid, and should be the result of a call to SaveTransactionPoint."); + } + + /// + /// Commits the transaction that was begun by . + /// + public void Commit () + { + if (Interlocked.Exchange (ref _trasactionDepth, 0) != 0) { + Execute ("commit"); + } + // Do nothing on a commit with no open transaction + } + + /// + /// Executes within a (possibly nested) transaction by wrapping it in a SAVEPOINT. If an + /// exception occurs the whole transaction is rolled back, not just the current savepoint. The exception + /// is rethrown. + /// + /// + /// The to perform within a transaction. can contain any number + /// of operations on the connection but should never call or + /// . + /// + public void RunInTransaction (Action action) + { + try { + var savePoint = SaveTransactionPoint (); + action (); + Release (savePoint); + } catch (Exception) { + Rollback (); + throw; + } + } + + /// + /// Inserts all specified objects. + /// + /// + /// An of the objects to insert. + /// + /// + /// The number of rows added to the table. + /// + public int InsertAll (System.Collections.IEnumerable objects, bool beginTransaction = true) + { + if (beginTransaction) { + BeginTransaction (); + } + var c = 0; + foreach (var r in objects) { + c += Insert (r); + } + if (beginTransaction) { + Commit (); + } + return c; + } + + /// + /// Inserts the given object and retrieves its + /// auto incremented primary key if it has one. + /// + /// + /// The object to insert. + /// + /// + /// The number of rows added to the table. + /// + public int Insert (object obj) + { + if (obj == null) { + return 0; + } + return Insert (obj, "", obj.GetType ()); + } + + public int Insert (object obj, Type objType) + { + return Insert (obj, "", objType); + } + + public int Insert (object obj, string extra) + { + if (obj == null) { + return 0; + } + return Insert (obj, extra, obj.GetType ()); + } + + /// + /// Inserts the given object and retrieves its + /// auto incremented primary key if it has one. + /// + /// + /// The object to insert. + /// + /// + /// Literal SQL code that gets placed into the command. INSERT {extra} INTO ... + /// + /// + /// The type of object to insert. + /// + /// + /// The number of rows added to the table. + /// + public int Insert (object obj, string extra, Type objType) + { + if (obj == null || objType == null) { + return 0; + } + + var map = GetMapping (objType); + + var cols = map.InsertColumns; + var vals = new object[cols.Length]; + for (var i = 0; i < vals.Length; i++) { + vals [i] = cols [i].GetValue (obj); + } + + var insertCmd = map.GetInsertCommand (this, extra); + var count = insertCmd.ExecuteNonQuery (vals); + + if (map.HasAutoIncPK) { + var id = SQLite3.LastInsertRowid (Handle); + map.SetAutoIncPK (obj, id); + } + + return count; + } + + /// + /// Updates all of the columns of a table using the specified object + /// except for its primary key. + /// The object is required to have a primary key. + /// + /// + /// The object to update. It must have a primary key designated using the PrimaryKeyAttribute. + /// + /// + /// The number of rows updated. + /// + public int Update (object obj) + { + if (obj == null) { + return 0; + } + return Update (obj, obj.GetType ()); + } + + public int Update (object obj, Type objType) + { + if (obj == null || objType == null) { + return 0; + } + + var map = GetMapping (objType); + + var pk = map.PK; + + if (pk == null) { + throw new NotSupportedException ("Cannot update " + map.TableName + ": it has no PK"); + } + + var cols = from p in map.Columns + where p != pk + select p; + var vals = from c in cols + select c.GetValue (obj); + var ps = new List (vals); + ps.Add (pk.GetValue (obj)); + var q = string.Format ("update \"{0}\" set {1} where {2} = ? ", map.TableName, string.Join (",", (from c in cols + select "\"" + c.Name + "\" = ? ").ToArray ()), pk.Name); + return Execute (q, ps.ToArray ()); + } + + /// + /// Deletes the given object from the database using its primary key. + /// + /// + /// The object to delete. It must have a primary key designated using the PrimaryKeyAttribute. + /// + /// + /// The number of rows deleted. + /// + public int Delete (object objectToDelete) + { + var map = GetMapping (objectToDelete.GetType ()); + var pk = map.PK; + if (pk == null) { + throw new NotSupportedException ("Cannot delete " + map.TableName + ": it has no PK"); + } + var q = string.Format ("delete from \"{0}\" where \"{1}\" = ?", map.TableName, pk.Name); + return Execute (q, pk.GetValue (objectToDelete)); + } + + /// + /// Deletes the object with the specified primary key. + /// + /// + /// The primary key of the object to delete. + /// + /// + /// The number of objects deleted. + /// + /// + /// The type of object. + /// + public int Delete (object primaryKey) + { + var map = GetMapping (typeof (T)); + var pk = map.PK; + if (pk == null) { + throw new NotSupportedException ("Cannot delete " + map.TableName + ": it has no PK"); + } + var q = string.Format ("delete from \"{0}\" where \"{1}\" = ?", map.TableName, pk.Name); + return Execute (q, primaryKey); + } + + /// + /// Deletes all the objects from the specified table. + /// WARNING WARNING: Let me repeat. It deletes ALL the objects from the + /// specified table. Do you really want to do that? + /// + /// + /// The number of objects deleted. + /// + /// + /// The type of objects to delete. + /// + public int DeleteAll () + { + var map = GetMapping (typeof (T)); + var query = string.Format("delete from \"{0}\"", map.TableName); + return Execute (query); + } + + public void Dispose () + { + Close (); + } + + public void Close () + { + if (_open && Handle != NullHandle) { + try { + if (_mappings != null) { + foreach (var sqlInsertCommand in _mappings.Values) { + sqlInsertCommand.Dispose(); + } + } + var r = SQLite3.Close(Handle); + if (r != SQLite3.Result.OK) { + string msg = SQLite3.GetErrmsg(Handle); + throw SQLiteException.New(r, msg); + } + } + finally { + Handle = NullHandle; + _open = false; + } + } + } + } + + /// + /// Represents a parsed connection string. + /// + class SQLiteConnectionString + { + public string ConnectionString { get; private set; } + public string DatabasePath { get; private set; } + public bool StoreDateTimeAsTicks { get; private set; } + +#if NETFX_CORE + static readonly string MetroStyleDataPath = Windows.Storage.ApplicationData.Current.LocalFolder.Path; +#endif + + public SQLiteConnectionString (string databasePath, bool storeDateTimeAsTicks) + { + ConnectionString = databasePath; + StoreDateTimeAsTicks = storeDateTimeAsTicks; + +#if NETFX_CORE + DatabasePath = System.IO.Path.Combine (MetroStyleDataPath, databasePath); +#else + DatabasePath = databasePath; +#endif + } + } + + [AttributeUsage (AttributeTargets.Class)] + public class TableAttribute : Attribute + { + public string Name { get; set; } + + public TableAttribute (string name) + { + Name = name; + } + } + + [AttributeUsage (AttributeTargets.Property)] + public class ColumnAttribute : Attribute + { + public string Name { get; set; } + + public ColumnAttribute (string name) + { + Name = name; + } + } + + [AttributeUsage (AttributeTargets.Property)] + public class PrimaryKeyAttribute : Attribute + { + } + + [AttributeUsage (AttributeTargets.Property)] + public class AutoIncrementAttribute : Attribute + { + } + + [AttributeUsage (AttributeTargets.Property)] + public class IndexedAttribute : Attribute + { + public string Name { get; set; } + public int Order { get; set; } + public virtual bool Unique { get; set; } + + public IndexedAttribute() + { + } + + public IndexedAttribute(string name, int order) + { + Name = name; + Order = order; + } + } + + [AttributeUsage (AttributeTargets.Property)] + public class IgnoreAttribute : Attribute + { + } + + [AttributeUsage (AttributeTargets.Property)] + public class UniqueAttribute : IndexedAttribute + { + public override bool Unique { + get { return true; } + set { /* throw? */ } + } + } + + [AttributeUsage (AttributeTargets.Property)] + public class MaxLengthAttribute : Attribute + { + public int Value { get; private set; } + + public MaxLengthAttribute (int length) + { + Value = length; + } + } + + [AttributeUsage (AttributeTargets.Property)] + public class CollationAttribute: Attribute + { + public string Value { get; private set; } + + public CollationAttribute (string collation) + { + Value = collation; + } + } + + public class TableMapping + { + public Type MappedType { get; private set; } + + public string TableName { get; private set; } + + public Column[] Columns { get; private set; } + + public Column PK { get; private set; } + + public string GetByPrimaryKeySql { get; private set; } + + Column _autoPk = null; + Column[] _insertColumns = null; + + public TableMapping (Type type) + { + MappedType = type; + +#if NETFX_CORE + var tableAttr = (TableAttribute)System.Reflection.CustomAttributeExtensions + .GetCustomAttribute(type.GetTypeInfo(), typeof(TableAttribute), true); +#else + var tableAttr = (TableAttribute)type.GetCustomAttributes (typeof (TableAttribute), true).FirstOrDefault (); +#endif + + TableName = tableAttr != null ? tableAttr.Name : MappedType.Name; + +#if !NETFX_CORE + var props = MappedType.GetProperties (BindingFlags.Public | BindingFlags.Instance | BindingFlags.SetProperty); +#else + var props = from p in MappedType.GetRuntimeProperties() + where ((p.GetMethod != null && p.GetMethod.IsPublic) || (p.SetMethod != null && p.SetMethod.IsPublic) || (p.GetMethod != null && p.GetMethod.IsStatic) || (p.SetMethod != null && p.SetMethod.IsStatic)) + select p; +#endif + var cols = new List (); + foreach (var p in props) { +#if !NETFX_CORE + var ignore = p.GetCustomAttributes (typeof(IgnoreAttribute), true).Length > 0; +#else + var ignore = p.GetCustomAttributes (typeof(IgnoreAttribute), true).Count() > 0; +#endif + if (p.CanWrite && !ignore) { + cols.Add (new Column (p)); + } + } + Columns = cols.ToArray (); + foreach (var c in Columns) { + if (c.IsAutoInc && c.IsPK) { + _autoPk = c; + } + if (c.IsPK) { + PK = c; + } + } + + HasAutoIncPK = _autoPk != null; + + if (PK != null) { + GetByPrimaryKeySql = string.Format ("select * from \"{0}\" where \"{1}\" = ?", TableName, PK.Name); + } + else { + // People should not be calling Get/Find without a PK + GetByPrimaryKeySql = string.Format ("select * from \"{0}\" limit 1", TableName); + } + } + + public bool HasAutoIncPK { get; private set; } + + public void SetAutoIncPK (object obj, long id) + { + if (_autoPk != null) { + _autoPk.SetValue (obj, Convert.ChangeType (id, _autoPk.ColumnType, null)); + } + } + + public Column[] InsertColumns { + get { + if (_insertColumns == null) { + _insertColumns = Columns.Where (c => !c.IsAutoInc).ToArray (); + } + return _insertColumns; + } + } + + public Column FindColumnWithPropertyName (string propertyName) + { + var exact = Columns.Where (c => c.PropertyName == propertyName).FirstOrDefault (); + return exact; + } + + public Column FindColumn (string columnName) + { + var exact = Columns.Where (c => c.Name == columnName).FirstOrDefault (); + return exact; + } + + PreparedSqlLiteInsertCommand _insertCommand; + string _insertCommandExtra = null; + + public PreparedSqlLiteInsertCommand GetInsertCommand(SQLiteConnection conn, string extra) + { + if (_insertCommand == null) { + _insertCommand = CreateInsertCommand(conn, extra); + _insertCommandExtra = extra; + } + else if (_insertCommandExtra != extra) { + _insertCommand.Dispose(); + _insertCommand = CreateInsertCommand(conn, extra); + _insertCommandExtra = extra; + } + return _insertCommand; + } + + private PreparedSqlLiteInsertCommand CreateInsertCommand(SQLiteConnection conn, string extra) + { + var cols = InsertColumns; + string insertSql; + if (!cols.Any() && Columns.Count() == 1 && Columns[0].IsAutoInc) + { + insertSql = string.Format("insert {1} into \"{0}\" default values", TableName, extra); + } + else + { + insertSql = string.Format("insert {3} into \"{0}\"({1}) values ({2})", TableName, + string.Join(",", (from c in cols + select "\"" + c.Name + "\"").ToArray()), + string.Join(",", (from c in cols + select "?").ToArray()), extra); + + } + + var insertCommand = new PreparedSqlLiteInsertCommand(conn); + insertCommand.CommandText = insertSql; + return insertCommand; + } + + protected internal void Dispose() + { + if (_insertCommand != null) { + _insertCommand.Dispose(); + _insertCommand = null; + } + } + + public class Column + { + PropertyInfo _prop; + + public string Name { get; private set; } + + public string PropertyName { get { return _prop.Name; } } + + public Type ColumnType { get; private set; } + + public string Collation { get; private set; } + + public bool IsAutoInc { get; private set; } + + public bool IsPK { get; private set; } + + public IEnumerable Indices { get; set; } + + public bool IsNullable { get; private set; } + + public int MaxStringLength { get; private set; } + + public Column (PropertyInfo prop) + { + var colAttr = (ColumnAttribute)prop.GetCustomAttributes (typeof(ColumnAttribute), true).FirstOrDefault (); + + _prop = prop; + Name = colAttr == null ? prop.Name : colAttr.Name; + //If this type is Nullable then Nullable.GetUnderlyingType returns the T, otherwise it returns null, so get the the actual type instead + ColumnType = Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType; + Collation = Orm.Collation (prop); + IsAutoInc = Orm.IsAutoInc (prop); + IsPK = Orm.IsPK (prop); + Indices = Orm.GetIndices(prop); + IsNullable = !IsPK; + MaxStringLength = Orm.MaxStringLength (prop); + } + + public void SetValue (object obj, object val) + { + _prop.SetValue (obj, val, null); + } + + public object GetValue (object obj) + { + return _prop.GetValue (obj, null); + } + } + } + + public static class Orm + { + public const int DefaultMaxStringLength = 140; + + public static string SqlDecl (TableMapping.Column p, bool storeDateTimeAsTicks) + { + string decl = "\"" + p.Name + "\" " + SqlType (p, storeDateTimeAsTicks) + " "; + + if (p.IsPK) { + decl += "primary key "; + } + if (p.IsAutoInc) { + decl += "autoincrement "; + } + if (!p.IsNullable) { + decl += "not null "; + } + if (!string.IsNullOrEmpty (p.Collation)) { + decl += "collate " + p.Collation + " "; + } + + return decl; + } + + public static string SqlType (TableMapping.Column p, bool storeDateTimeAsTicks) + { + var clrType = p.ColumnType; + if (clrType == typeof(Boolean) || clrType == typeof(Byte) || clrType == typeof(UInt16) || clrType == typeof(SByte) || clrType == typeof(Int16) || clrType == typeof(Int32)) { + return "integer"; + } else if (clrType == typeof(UInt32) || clrType == typeof(Int64)) { + return "bigint"; + } else if (clrType == typeof(Single) || clrType == typeof(Double) || clrType == typeof(Decimal)) { + return "float"; + } else if (clrType == typeof(String)) { + int len = p.MaxStringLength; + return "varchar(" + len + ")"; + } else if (clrType == typeof(DateTime)) { + return storeDateTimeAsTicks ? "bigint" : "datetime"; +#if !NETFX_CORE + } else if (clrType.IsEnum) { +#else + } else if (clrType.GetTypeInfo().IsEnum) { +#endif + return "integer"; + } else if (clrType == typeof(byte[])) { + return "blob"; +#if SQLITE_SUPPORT_GUID + } else if (clrType == typeof(Guid)) { + return "varchar(36)"; +#endif + } else { + throw new NotSupportedException ("Don't know about " + clrType); + } + } + + public static bool IsPK (MemberInfo p) + { + var attrs = p.GetCustomAttributes (typeof(PrimaryKeyAttribute), true); +#if !NETFX_CORE + return attrs.Length > 0; +#else + return attrs.Count() > 0; +#endif + } + + public static string Collation (MemberInfo p) + { + var attrs = p.GetCustomAttributes (typeof(CollationAttribute), true); +#if !NETFX_CORE + if (attrs.Length > 0) { + return ((CollationAttribute)attrs [0]).Value; +#else + if (attrs.Count() > 0) { + return ((CollationAttribute)attrs.First()).Value; +#endif + } else { + return string.Empty; + } + } + + public static bool IsAutoInc (MemberInfo p) + { + var attrs = p.GetCustomAttributes (typeof(AutoIncrementAttribute), true); +#if !NETFX_CORE + return attrs.Length > 0; +#else + return attrs.Count() > 0; +#endif + } + + public static IEnumerable GetIndices(MemberInfo p) + { + var attrs = p.GetCustomAttributes(typeof(IndexedAttribute), true); + return attrs.Cast(); + } + + public static int MaxStringLength(PropertyInfo p) + { + var attrs = p.GetCustomAttributes (typeof(MaxLengthAttribute), true); +#if !NETFX_CORE + if (attrs.Length > 0) { + return ((MaxLengthAttribute)attrs [0]).Value; +#else + if (attrs.Count() > 0) { + return ((MaxLengthAttribute)attrs.First()).Value; +#endif + } else { + return DefaultMaxStringLength; + } + } + } + + public class SQLiteCommand + { + SQLiteConnection _conn; + private List _bindings; + + public string CommandText { get; set; } + + internal SQLiteCommand (SQLiteConnection conn) + { + _conn = conn; + _bindings = new List (); + CommandText = ""; + } + + public int ExecuteNonQuery () + { + if (_conn.Trace) { + Debug.WriteLine ("Executing: " + this); + } + + var r = SQLite3.Result.OK; + var stmt = Prepare (); + r = SQLite3.Step (stmt); + Finalize (stmt); + if (r == SQLite3.Result.Done) { + int rowsAffected = SQLite3.Changes (_conn.Handle); + return rowsAffected; + } else if (r == SQLite3.Result.Error) { + string msg = SQLite3.GetErrmsg (_conn.Handle); + throw SQLiteException.New (r, msg); + } else { + throw SQLiteException.New (r, r.ToString ()); + } + } + + public IEnumerable ExecuteDeferredQuery () where T : new() + { + return ExecuteDeferredQuery(_conn.GetMapping(typeof(T))); + } + + public List ExecuteQuery () where T : new() + { + return ExecuteDeferredQuery(_conn.GetMapping(typeof(T))).ToList(); + } + + public List ExecuteQuery (TableMapping map) + { + return ExecuteDeferredQuery(map).ToList(); + } + + /// + /// Invoked every time an instance is loaded from the database. + /// + /// + /// The newly created object. + /// + /// + /// This can be overridden in combination with the + /// method to hook into the life-cycle of objects. + /// + /// Type safety is not possible because MonoTouch does not support virtual generic methods. + /// + protected virtual void OnInstanceCreated (object obj) + { + // Can be overridden. + } + + public IEnumerable ExecuteDeferredQuery (TableMapping map) + { + if (_conn.Trace) { + Debug.WriteLine ("Executing Query: " + this); + } + + var stmt = Prepare (); + try + { + var cols = new TableMapping.Column[SQLite3.ColumnCount (stmt)]; + + for (int i = 0; i < cols.Length; i++) { + var name = SQLite3.ColumnName16 (stmt, i); + cols [i] = map.FindColumn (name); + } + + while (SQLite3.Step (stmt) == SQLite3.Result.Row) { + var obj = Activator.CreateInstance(map.MappedType); + for (int i = 0; i < cols.Length; i++) { + if (cols [i] == null) + continue; + var colType = SQLite3.ColumnType (stmt, i); + var val = ReadCol (stmt, i, colType, cols [i].ColumnType); + cols [i].SetValue (obj, val); + } + OnInstanceCreated (obj); + yield return (T)obj; + } + } + finally + { + SQLite3.Finalize(stmt); + } + } + + public T ExecuteScalar () + { + if (_conn.Trace) { + Debug.WriteLine ("Executing Query: " + this); + } + + T val = default(T); + + var stmt = Prepare (); + if (SQLite3.Step (stmt) == SQLite3.Result.Row) { + var colType = SQLite3.ColumnType (stmt, 0); + val = (T)ReadCol (stmt, 0, colType, typeof(T)); + } + Finalize (stmt); + + return val; + } + + public void Bind (string name, object val) + { + _bindings.Add (new Binding { + Name = name, + Value = val + }); + } + + public void Bind (object val) + { + Bind (null, val); + } + + public override string ToString () + { + var parts = new string[1 + _bindings.Count]; + parts [0] = CommandText; + var i = 1; + foreach (var b in _bindings) { + parts [i] = string.Format (" {0}: {1}", i - 1, b.Value); + i++; + } + return string.Join (Environment.NewLine, parts); + } + + Sqlite3Statement Prepare() + { + var stmt = SQLite3.Prepare2 (_conn.Handle, CommandText); + BindAll (stmt); + return stmt; + } + + void Finalize (Sqlite3Statement stmt) + { + SQLite3.Finalize (stmt); + } + + void BindAll (Sqlite3Statement stmt) + { + int nextIdx = 1; + foreach (var b in _bindings) { + if (b.Name != null) { + b.Index = SQLite3.BindParameterIndex (stmt, b.Name); + } else { + b.Index = nextIdx++; + } + + BindParameter (stmt, b.Index, b.Value, _conn.StoreDateTimeAsTicks); + } + } + + internal static IntPtr NegativePointer = new IntPtr (-1); + + internal static void BindParameter (Sqlite3Statement stmt, int index, object value, bool storeDateTimeAsTicks) + { + if (value == null) { + SQLite3.BindNull (stmt, index); + } else { + if (value is Int32) { + SQLite3.BindInt (stmt, index, (int)value); + } else if (value is String) { + SQLite3.BindText (stmt, index, (string)value, -1, NegativePointer); + } else if (value is Byte || value is UInt16 || value is SByte || value is Int16) { + SQLite3.BindInt (stmt, index, Convert.ToInt32 (value)); + } else if (value is Boolean) { + SQLite3.BindInt (stmt, index, (bool)value ? 1 : 0); + } else if (value is UInt32 || value is Int64) { + SQLite3.BindInt64 (stmt, index, Convert.ToInt64 (value)); + } else if (value is Single || value is Double || value is Decimal) { + SQLite3.BindDouble (stmt, index, Convert.ToDouble (value)); + } else if (value is DateTime) { + if (storeDateTimeAsTicks) { + SQLite3.BindInt64 (stmt, index, ((DateTime)value).Ticks); + } + else { + SQLite3.BindText (stmt, index, ((DateTime)value).ToString ("yyyy-MM-dd HH:mm:ss"), -1, NegativePointer); + } +#if !NETFX_CORE + } else if (value.GetType().IsEnum) { +#else + } else if (value.GetType().GetTypeInfo().IsEnum) { +#endif + SQLite3.BindInt (stmt, index, Convert.ToInt32 (value)); + } else if (value is byte[]){ + SQLite3.BindBlob(stmt, index, (byte[]) value, ((byte[]) value).Length, NegativePointer); +#if SQLITE_SUPPORT_GUID + } else if (value is Guid) { + SQLite3.BindText(stmt, index, ((Guid)value).ToString(), 72, NegativePointer); +#endif + } else { + throw new NotSupportedException("Cannot store type: " + value.GetType()); + } + } + } + + class Binding + { + public string Name { get; set; } + + public object Value { get; set; } + + public int Index { get; set; } + } + + object ReadCol (Sqlite3Statement stmt, int index, SQLite3.ColType type, Type clrType) + { + if (type == SQLite3.ColType.Null) { + return null; + } else { + if (clrType == typeof(String)) { + return SQLite3.ColumnString (stmt, index); + } else if (clrType == typeof(Int32)) { + return (int)SQLite3.ColumnInt (stmt, index); + } else if (clrType == typeof(Boolean)) { + return SQLite3.ColumnInt (stmt, index) == 1; + } else if (clrType == typeof(double)) { + return SQLite3.ColumnDouble (stmt, index); + } else if (clrType == typeof(float)) { + return (float)SQLite3.ColumnDouble (stmt, index); + } else if (clrType == typeof(DateTime)) { + if (_conn.StoreDateTimeAsTicks) { + return new DateTime (SQLite3.ColumnInt64 (stmt, index)); + } + else { + var text = SQLite3.ColumnString (stmt, index); + return DateTime.Parse (text); + } +#if !NETFX_CORE + } else if (clrType.IsEnum) { +#else + } else if (clrType.GetTypeInfo().IsEnum) { +#endif + return SQLite3.ColumnInt (stmt, index); + } else if (clrType == typeof(Int64)) { + return SQLite3.ColumnInt64 (stmt, index); + } else if (clrType == typeof(UInt32)) { + return (uint)SQLite3.ColumnInt64 (stmt, index); + } else if (clrType == typeof(decimal)) { + return (decimal)SQLite3.ColumnDouble (stmt, index); + } else if (clrType == typeof(Byte)) { + return (byte)SQLite3.ColumnInt (stmt, index); + } else if (clrType == typeof(UInt16)) { + return (ushort)SQLite3.ColumnInt (stmt, index); + } else if (clrType == typeof(Int16)) { + return (short)SQLite3.ColumnInt (stmt, index); + } else if (clrType == typeof(sbyte)) { + return (sbyte)SQLite3.ColumnInt (stmt, index); + } else if (clrType == typeof(byte[])) { + return SQLite3.ColumnByteArray (stmt, index); +#if SQLITE_SUPPORT_GUID + } else if (clrType == typeof(Guid)) { + var text = SQLite3.ColumnString(stmt, index); + return new Guid(text); +#endif + } else{ + throw new NotSupportedException ("Don't know how to read " + clrType); + } + } + } + } + + /// + /// Since the insert never changed, we only need to prepare once. + /// + public class PreparedSqlLiteInsertCommand : IDisposable + { + public bool Initialized { get; set; } + + protected SQLiteConnection Connection { get; set; } + + public string CommandText { get; set; } + + protected Sqlite3Statement Statement { get; set; } +#if USE_CSHARP_SQLITE + internal static readonly Sqlite3Statement NullStatement = null; +#else + internal static readonly Sqlite3Statement NullStatement = IntPtr.Zero; +#endif + + internal PreparedSqlLiteInsertCommand (SQLiteConnection conn) + { + Connection = conn; + } + + public int ExecuteNonQuery (object[] source) + { + if (Connection.Trace) { + Debug.WriteLine ("Executing: " + CommandText); + } + + var r = SQLite3.Result.OK; + + if (!Initialized) { + Statement = Prepare (); + Initialized = true; + } + + //bind the values. + if (source != null) { + for (int i = 0; i < source.Length; i++) { + SQLiteCommand.BindParameter (Statement, i + 1, source [i], Connection.StoreDateTimeAsTicks); + } + } + r = SQLite3.Step (Statement); + + if (r == SQLite3.Result.Done) { + int rowsAffected = SQLite3.Changes (Connection.Handle); + SQLite3.Reset (Statement); + return rowsAffected; + } else if (r == SQLite3.Result.Error) { + string msg = SQLite3.GetErrmsg (Connection.Handle); + SQLite3.Reset (Statement); + throw SQLiteException.New (r, msg); + } else { + SQLite3.Reset (Statement); + throw SQLiteException.New (r, r.ToString ()); + } + } + + protected virtual Sqlite3Statement Prepare () + { + var stmt = SQLite3.Prepare2 (Connection.Handle, CommandText); + return stmt; + } + + public void Dispose () + { + Dispose (true); + GC.SuppressFinalize (this); + } + + private void Dispose (bool disposing) + { + if (Statement != NullStatement) { + try { + SQLite3.Finalize (Statement); + } finally { + Statement = NullStatement; + Connection = null; + } + } + } + + ~PreparedSqlLiteInsertCommand () + { + Dispose (false); + } + } + + public class TableQuery : IEnumerable where T : new() + { + public SQLiteConnection Connection { get; private set; } + + public TableMapping Table { get; private set; } + + Expression _where; + List _orderBys; + int? _limit; + int? _offset; + + class Ordering + { + public string ColumnName { get; set; } + + public bool Ascending { get; set; } + } + + TableQuery (SQLiteConnection conn, TableMapping table) + { + Connection = conn; + Table = table; + } + + public TableQuery (SQLiteConnection conn) + { + Connection = conn; + Table = Connection.GetMapping (typeof(T)); + } + + public TableQuery Clone () + { + var q = new TableQuery (Connection, Table); + q._where = _where; + q._deferred = _deferred; + if (_orderBys != null) { + q._orderBys = new List (_orderBys); + } + q._limit = _limit; + q._offset = _offset; + return q; + } + + public TableQuery Where (Expression> predExpr) + { + if (predExpr.NodeType == ExpressionType.Lambda) { + var lambda = (LambdaExpression)predExpr; + var pred = lambda.Body; + var q = Clone (); + q.AddWhere (pred); + return q; + } else { + throw new NotSupportedException ("Must be a predicate"); + } + } + + public TableQuery Take (int n) + { + var q = Clone (); + q._limit = n; + return q; + } + + public TableQuery Skip (int n) + { + var q = Clone (); + q._offset = n; + return q; + } + + public T ElementAt (int index) + { + return Skip (index).Take (1).First (); + } + + bool _deferred = false; + public TableQuery Deferred () + { + var q = Clone(); + q._deferred = true; + return q; + } + + public TableQuery OrderBy (Expression> orderExpr) + { + return AddOrderBy (orderExpr, true); + } + + public TableQuery OrderByDescending (Expression> orderExpr) + { + return AddOrderBy (orderExpr, false); + } + + private TableQuery AddOrderBy (Expression> orderExpr, bool asc) + { + if (orderExpr.NodeType == ExpressionType.Lambda) { + var lambda = (LambdaExpression)orderExpr; + var mem = lambda.Body as MemberExpression; + if (mem != null && (mem.Expression.NodeType == ExpressionType.Parameter)) { + var q = Clone (); + if (q._orderBys == null) { + q._orderBys = new List (); + } + q._orderBys.Add (new Ordering { + ColumnName = Table.FindColumnWithPropertyName(mem.Member.Name).Name, + Ascending = asc + }); + return q; + } else { + throw new NotSupportedException ("Order By does not support: " + orderExpr); + } + } else { + throw new NotSupportedException ("Must be a predicate"); + } + } + + private void AddWhere (Expression pred) + { + if (_where == null) { + _where = pred; + } else { + _where = Expression.AndAlso (_where, pred); + } + } + + public TableQuery Join ( + TableQuery inner, + Expression> outerKeySelector, + Expression> innerKeySelector, + Expression> resultSelector + ) + where TResult : new () + where TInner : new () + { + throw new NotImplementedException (); + } + + private SQLiteCommand GenerateCommand (string selectionList) + { + var cmdText = "select " + selectionList + " from \"" + Table.TableName + "\""; + var args = new List (); + if (_where != null) { + var w = CompileExpr (_where, args); + cmdText += " where " + w.CommandText; + } + if ((_orderBys != null) && (_orderBys.Count > 0)) { + var t = string.Join (", ", _orderBys.Select (o => "\"" + o.ColumnName + "\"" + (o.Ascending ? "" : " desc")).ToArray ()); + cmdText += " order by " + t; + } + if (_limit.HasValue) { + cmdText += " limit " + _limit.Value; + } + if (_offset.HasValue) { + if (!_limit.HasValue) { + cmdText += " limit -1 "; + } + cmdText += " offset " + _offset.Value; + } + return Connection.CreateCommand (cmdText, args.ToArray ()); + } + + class CompileResult + { + public string CommandText { get; set; } + + public object Value { get; set; } + } + + private CompileResult CompileExpr (Expression expr, List queryArgs) + { + if (expr == null) { + throw new NotSupportedException ("Expression is NULL"); + } else if (expr is BinaryExpression) { + var bin = (BinaryExpression)expr; + + var leftr = CompileExpr (bin.Left, queryArgs); + var rightr = CompileExpr (bin.Right, queryArgs); + + //If either side is a parameter and is null, then handle the other side specially (for "is null"/"is not null") + string text; + if (leftr.CommandText == "?" && leftr.Value == null) + text = CompileNullBinaryExpression(bin, rightr); + else if (rightr.CommandText == "?" && rightr.Value == null) + text = CompileNullBinaryExpression(bin, leftr); + else + text = "(" + leftr.CommandText + " " + GetSqlName(bin) + " " + rightr.CommandText + ")"; + return new CompileResult { CommandText = text }; + } else if (expr.NodeType == ExpressionType.Call) { + + var call = (MethodCallExpression)expr; + var args = new CompileResult[call.Arguments.Count]; + var obj = call.Object != null ? CompileExpr (call.Object, queryArgs) : null; + + for (var i = 0; i < args.Length; i++) { + args [i] = CompileExpr (call.Arguments [i], queryArgs); + } + + var sqlCall = ""; + + if (call.Method.Name == "Like" && args.Length == 2) { + sqlCall = "(" + args [0].CommandText + " like " + args [1].CommandText + ")"; + } + else if (call.Method.Name == "Contains" && args.Length == 2) { + sqlCall = "(" + args [1].CommandText + " in " + args [0].CommandText + ")"; + } + else if (call.Method.Name == "Contains" && args.Length == 1) { + if (call.Object != null && call.Object.Type == typeof(string)) { + sqlCall = "(" + obj.CommandText + " like ('%' || " + args [0].CommandText + " || '%'))"; + } + else { + sqlCall = "(" + args [0].CommandText + " in " + obj.CommandText + ")"; + } + } + else if (call.Method.Name == "StartsWith" && args.Length == 1) { + sqlCall = "(" + obj.CommandText + " like (" + args [0].CommandText + " || '%'))"; + } + else if (call.Method.Name == "EndsWith" && args.Length == 1) { + sqlCall = "(" + obj.CommandText + " like ('%' || " + args [0].CommandText + "))"; + } + else { + sqlCall = call.Method.Name.ToLower () + "(" + string.Join (",", args.Select (a => a.CommandText).ToArray ()) + ")"; + } + return new CompileResult { CommandText = sqlCall }; + + } else if (expr.NodeType == ExpressionType.Constant) { + var c = (ConstantExpression)expr; + queryArgs.Add (c.Value); + return new CompileResult { + CommandText = "?", + Value = c.Value + }; + } else if (expr.NodeType == ExpressionType.Convert) { + var u = (UnaryExpression)expr; + var ty = u.Type; + var valr = CompileExpr (u.Operand, queryArgs); + return new CompileResult { + CommandText = valr.CommandText, + Value = valr.Value != null ? Convert.ChangeType (valr.Value, ty, null) : null + }; + } else if (expr.NodeType == ExpressionType.MemberAccess) { + var mem = (MemberExpression)expr; + + if (mem.Expression.NodeType == ExpressionType.Parameter) { + // + // This is a column of our table, output just the column name + // Need to translate it if that column name is mapped + // + var columnName = Table.FindColumnWithPropertyName (mem.Member.Name).Name; + return new CompileResult { CommandText = "\"" + columnName + "\"" }; + } else { + object obj = null; + if (mem.Expression != null) { + var r = CompileExpr (mem.Expression, queryArgs); + if (r.Value == null) { + throw new NotSupportedException ("Member access failed to compile expression"); + } + if (r.CommandText == "?") { + queryArgs.RemoveAt (queryArgs.Count - 1); + } + obj = r.Value; + } + + // + // Get the member value + // + object val = null; + +#if !NETFX_CORE + if (mem.Member.MemberType == MemberTypes.Property) { +#else + if (mem.Member is PropertyInfo) { +#endif + var m = (PropertyInfo)mem.Member; + val = m.GetValue (obj, null); +#if !NETFX_CORE + } else if (mem.Member.MemberType == MemberTypes.Field) { +#else + } else if (mem.Member is FieldInfo) { +#endif +#if SILVERLIGHT + val = Expression.Lambda (expr).Compile ().DynamicInvoke (); +#else + var m = (FieldInfo)mem.Member; + val = m.GetValue (obj); +#endif + } else { +#if !NETFX_CORE + throw new NotSupportedException ("MemberExpr: " + mem.Member.MemberType.ToString ()); +#else + throw new NotSupportedException ("MemberExpr: " + mem.Member.DeclaringType.ToString ()); +#endif + } + + // + // Work special magic for enumerables + // + if (val != null && val is System.Collections.IEnumerable && !(val is string)) { + var sb = new System.Text.StringBuilder(); + sb.Append("("); + var head = ""; + foreach (var a in (System.Collections.IEnumerable)val) { + queryArgs.Add(a); + sb.Append(head); + sb.Append("?"); + head = ","; + } + sb.Append(")"); + return new CompileResult { + CommandText = sb.ToString(), + Value = val + }; + } + else { + queryArgs.Add (val); + return new CompileResult { + CommandText = "?", + Value = val + }; + } + } + } + throw new NotSupportedException ("Cannot compile: " + expr.NodeType.ToString ()); + } + + /// + /// Compiles a BinaryExpression where one of the parameters is null. + /// + /// The non-null parameter + private string CompileNullBinaryExpression(BinaryExpression expression, CompileResult parameter) + { + if (expression.NodeType == ExpressionType.Equal) + return "(" + parameter.CommandText + " is ?)"; + else if (expression.NodeType == ExpressionType.NotEqual) + return "(" + parameter.CommandText + " is not ?)"; + else + throw new NotSupportedException("Cannot compile Null-BinaryExpression with type " + expression.NodeType.ToString()); + } + + string GetSqlName (Expression expr) + { + var n = expr.NodeType; + if (n == ExpressionType.GreaterThan) + return ">"; else if (n == ExpressionType.GreaterThanOrEqual) { + return ">="; + } else if (n == ExpressionType.LessThan) { + return "<"; + } else if (n == ExpressionType.LessThanOrEqual) { + return "<="; + } else if (n == ExpressionType.And) { + return "and"; + } else if (n == ExpressionType.AndAlso) { + return "and"; + } else if (n == ExpressionType.Or) { + return "or"; + } else if (n == ExpressionType.OrElse) { + return "or"; + } else if (n == ExpressionType.Equal) { + return "="; + } else if (n == ExpressionType.NotEqual) { + return "!="; + } else { + throw new System.NotSupportedException ("Cannot get SQL for: " + n.ToString ()); + } + } + + public int Count () + { + return GenerateCommand("count(*)").ExecuteScalar (); + } + + public IEnumerator GetEnumerator () + { + if (!_deferred) + return GenerateCommand("*").ExecuteQuery().GetEnumerator(); + + return GenerateCommand("*").ExecuteDeferredQuery().GetEnumerator(); + } + + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator () + { + return GetEnumerator (); + } + + public T First () + { + var query = Take (1); + return query.ToList().First (); + } + + public T FirstOrDefault () + { + var query = this.Take (1); + return query.ToList().FirstOrDefault (); + } + } + + public static class SQLite3 + { + public enum Result : int + { + OK = 0, + Error = 1, + Internal = 2, + Perm = 3, + Abort = 4, + Busy = 5, + Locked = 6, + NoMem = 7, + ReadOnly = 8, + Interrupt = 9, + IOError = 10, + Corrupt = 11, + NotFound = 12, + Full = 13, + CannotOpen = 14, + LockErr = 15, + Empty = 16, + SchemaChngd = 17, + TooBig = 18, + Constraint = 19, + Mismatch = 20, + Misuse = 21, + NotImplementedLFS = 22, + AccessDenied = 23, + Format = 24, + Range = 25, + NonDBFile = 26, + Row = 100, + Done = 101 + } + + public enum ConfigOption : int + { + SingleThread = 1, + MultiThread = 2, + Serialized = 3 + } + +#if !USE_CSHARP_SQLITE + [DllImport("sqlite3", EntryPoint = "sqlite3_open", CallingConvention=CallingConvention.Cdecl)] + public static extern Result Open ([MarshalAs(UnmanagedType.LPStr)] string filename, out IntPtr db); + + [DllImport("sqlite3", EntryPoint = "sqlite3_open_v2", CallingConvention=CallingConvention.Cdecl)] + public static extern Result Open ([MarshalAs(UnmanagedType.LPStr)] string filename, out IntPtr db, int flags, IntPtr zvfs); + + [DllImport("sqlite3", EntryPoint = "sqlite3_open_v2", CallingConvention = CallingConvention.Cdecl)] + public static extern Result Open(byte[] filename, out IntPtr db, int flags, IntPtr zvfs); + + [DllImport("sqlite3", EntryPoint = "sqlite3_open16", CallingConvention = CallingConvention.Cdecl)] + public static extern Result Open16([MarshalAs(UnmanagedType.LPWStr)] string filename, out IntPtr db); + + [DllImport("sqlite3", EntryPoint = "sqlite3_close", CallingConvention=CallingConvention.Cdecl)] + public static extern Result Close (IntPtr db); + + [DllImport("sqlite3", EntryPoint = "sqlite3_config", CallingConvention=CallingConvention.Cdecl)] + public static extern Result Config (ConfigOption option); + + [DllImport("sqlite3", EntryPoint = "sqlite3_busy_timeout", CallingConvention=CallingConvention.Cdecl)] + public static extern Result BusyTimeout (IntPtr db, int milliseconds); + + [DllImport("sqlite3", EntryPoint = "sqlite3_changes", CallingConvention=CallingConvention.Cdecl)] + public static extern int Changes (IntPtr db); + + [DllImport("sqlite3", EntryPoint = "sqlite3_prepare_v2", CallingConvention=CallingConvention.Cdecl)] + public static extern Result Prepare2 (IntPtr db, [MarshalAs(UnmanagedType.LPStr)] string sql, int numBytes, out IntPtr stmt, IntPtr pzTail); + + public static IntPtr Prepare2 (IntPtr db, string query) + { + IntPtr stmt; + var r = Prepare2 (db, query, query.Length, out stmt, IntPtr.Zero); + if (r != Result.OK) { + throw SQLiteException.New (r, GetErrmsg (db)); + } + return stmt; + } + + [DllImport("sqlite3", EntryPoint = "sqlite3_step", CallingConvention=CallingConvention.Cdecl)] + public static extern Result Step (IntPtr stmt); + + [DllImport("sqlite3", EntryPoint = "sqlite3_reset", CallingConvention=CallingConvention.Cdecl)] + public static extern Result Reset (IntPtr stmt); + + [DllImport("sqlite3", EntryPoint = "sqlite3_finalize", CallingConvention=CallingConvention.Cdecl)] + public static extern Result Finalize (IntPtr stmt); + + [DllImport("sqlite3", EntryPoint = "sqlite3_last_insert_rowid", CallingConvention=CallingConvention.Cdecl)] + public static extern long LastInsertRowid (IntPtr db); + + [DllImport("sqlite3", EntryPoint = "sqlite3_errmsg16", CallingConvention=CallingConvention.Cdecl)] + public static extern IntPtr Errmsg (IntPtr db); + + public static string GetErrmsg (IntPtr db) + { + return Marshal.PtrToStringUni (Errmsg (db)); + } + + [DllImport("sqlite3", EntryPoint = "sqlite3_bind_parameter_index", CallingConvention=CallingConvention.Cdecl)] + public static extern int BindParameterIndex (IntPtr stmt, [MarshalAs(UnmanagedType.LPStr)] string name); + + [DllImport("sqlite3", EntryPoint = "sqlite3_bind_null", CallingConvention=CallingConvention.Cdecl)] + public static extern int BindNull (IntPtr stmt, int index); + + [DllImport("sqlite3", EntryPoint = "sqlite3_bind_int", CallingConvention=CallingConvention.Cdecl)] + public static extern int BindInt (IntPtr stmt, int index, int val); + + [DllImport("sqlite3", EntryPoint = "sqlite3_bind_int64", CallingConvention=CallingConvention.Cdecl)] + public static extern int BindInt64 (IntPtr stmt, int index, long val); + + [DllImport("sqlite3", EntryPoint = "sqlite3_bind_double", CallingConvention=CallingConvention.Cdecl)] + public static extern int BindDouble (IntPtr stmt, int index, double val); + + [DllImport("sqlite3", EntryPoint = "sqlite3_bind_text16", CallingConvention=CallingConvention.Cdecl, CharSet = CharSet.Unicode)] + public static extern int BindText (IntPtr stmt, int index, [MarshalAs(UnmanagedType.LPWStr)] string val, int n, IntPtr free); + + [DllImport("sqlite3", EntryPoint = "sqlite3_bind_blob", CallingConvention=CallingConvention.Cdecl)] + public static extern int BindBlob (IntPtr stmt, int index, byte[] val, int n, IntPtr free); + + [DllImport("sqlite3", EntryPoint = "sqlite3_column_count", CallingConvention=CallingConvention.Cdecl)] + public static extern int ColumnCount (IntPtr stmt); + + [DllImport("sqlite3", EntryPoint = "sqlite3_column_name", CallingConvention=CallingConvention.Cdecl)] + public static extern IntPtr ColumnName (IntPtr stmt, int index); + + [DllImport("sqlite3", EntryPoint = "sqlite3_column_name16", CallingConvention=CallingConvention.Cdecl)] + private static extern IntPtr ColumnName16Internal (IntPtr stmt, int index); + public static string ColumnName16(IntPtr stmt, int index) + { + return Marshal.PtrToStringUni(ColumnName16Internal(stmt, index)); + } + + [DllImport("sqlite3", EntryPoint = "sqlite3_column_type", CallingConvention=CallingConvention.Cdecl)] + public static extern ColType ColumnType (IntPtr stmt, int index); + + [DllImport("sqlite3", EntryPoint = "sqlite3_column_int", CallingConvention=CallingConvention.Cdecl)] + public static extern int ColumnInt (IntPtr stmt, int index); + + [DllImport("sqlite3", EntryPoint = "sqlite3_column_int64", CallingConvention=CallingConvention.Cdecl)] + public static extern long ColumnInt64 (IntPtr stmt, int index); + + [DllImport("sqlite3", EntryPoint = "sqlite3_column_double", CallingConvention=CallingConvention.Cdecl)] + public static extern double ColumnDouble (IntPtr stmt, int index); + + [DllImport("sqlite3", EntryPoint = "sqlite3_column_text", CallingConvention=CallingConvention.Cdecl)] + public static extern IntPtr ColumnText (IntPtr stmt, int index); + + [DllImport("sqlite3", EntryPoint = "sqlite3_column_text16", CallingConvention=CallingConvention.Cdecl)] + public static extern IntPtr ColumnText16 (IntPtr stmt, int index); + + [DllImport("sqlite3", EntryPoint = "sqlite3_column_blob", CallingConvention=CallingConvention.Cdecl)] + public static extern IntPtr ColumnBlob (IntPtr stmt, int index); + + [DllImport("sqlite3", EntryPoint = "sqlite3_column_bytes", CallingConvention=CallingConvention.Cdecl)] + public static extern int ColumnBytes (IntPtr stmt, int index); + + public static string ColumnString (IntPtr stmt, int index) + { + return Marshal.PtrToStringUni (SQLite3.ColumnText16 (stmt, index)); + } + + public static byte[] ColumnByteArray (IntPtr stmt, int index) + { + int length = ColumnBytes (stmt, index); + byte[] result = new byte[length]; + if (length > 0) + Marshal.Copy (ColumnBlob (stmt, index), result, 0, length); + return result; + } +#else + + public static Result Open(string filename, out Sqlite3.sqlite3 db) + { + return (Result) Sqlite3.sqlite3_open(filename, out db); + } + + public static Result Open(string filename, out Sqlite3.sqlite3 db, int flags, IntPtr zVfs) + { + return (Result)Sqlite3.sqlite3_open_v2(filename, out db, flags, null); + } + + public static Result Close(Sqlite3.sqlite3 db) + { + return (Result)Sqlite3.sqlite3_close(db); + } + + public static Result BusyTimeout(Sqlite3.sqlite3 db, int milliseconds) + { + return (Result)Sqlite3.sqlite3_busy_timeout(db, milliseconds); + } + + public static int Changes(Sqlite3.sqlite3 db) + { + return Sqlite3.sqlite3_changes(db); + } + + public static Sqlite3.Vdbe Prepare2(Sqlite3.sqlite3 db, string query) + { + Sqlite3.Vdbe stmt = new Sqlite3.Vdbe(); + var r = Sqlite3.sqlite3_prepare_v2(db, query, query.Length, ref stmt, 0); + if (r != 0) + { + throw SQLiteException.New((Result)r, GetErrmsg(db)); + } + return stmt; + } + + public static Result Step(Sqlite3.Vdbe stmt) + { + return (Result)Sqlite3.sqlite3_step(stmt); + } + + public static Result Reset(Sqlite3.Vdbe stmt) + { + return (Result)Sqlite3.sqlite3_reset(stmt); + } + + public static Result Finalize(Sqlite3.Vdbe stmt) + { + return (Result)Sqlite3.sqlite3_finalize(stmt); + } + + public static long LastInsertRowid(Sqlite3.sqlite3 db) + { + return Sqlite3.sqlite3_last_insert_rowid(db); + } + + public static string GetErrmsg(Sqlite3.sqlite3 db) + { + return Sqlite3.sqlite3_errmsg(db); + } + + public static int BindParameterIndex(Sqlite3.Vdbe stmt, string name) + { + return Sqlite3.sqlite3_bind_parameter_index(stmt, name); + } + + public static int BindNull(Sqlite3.Vdbe stmt, int index) + { + return Sqlite3.sqlite3_bind_null(stmt, index); + } + + public static int BindInt(Sqlite3.Vdbe stmt, int index, int val) + { + return Sqlite3.sqlite3_bind_int(stmt, index, val); + } + + public static int BindInt64(Sqlite3.Vdbe stmt, int index, long val) + { + return Sqlite3.sqlite3_bind_int64(stmt, index, val); + } + + public static int BindDouble(Sqlite3.Vdbe stmt, int index, double val) + { + return Sqlite3.sqlite3_bind_double(stmt, index, val); + } + + public static int BindText(Sqlite3.Vdbe stmt, int index, string val, int n, IntPtr free) + { + return Sqlite3.sqlite3_bind_text(stmt, index, val, n, null); + } + + public static int BindBlob(Sqlite3.Vdbe stmt, int index, byte[] val, int n, IntPtr free) + { + return Sqlite3.sqlite3_bind_blob(stmt, index, val, n, null); + } + + public static int ColumnCount(Sqlite3.Vdbe stmt) + { + return Sqlite3.sqlite3_column_count(stmt); + } + + public static string ColumnName(Sqlite3.Vdbe stmt, int index) + { + return Sqlite3.sqlite3_column_name(stmt, index); + } + + public static string ColumnName16(Sqlite3.Vdbe stmt, int index) + { + return Sqlite3.sqlite3_column_name(stmt, index); + } + + public static ColType ColumnType(Sqlite3.Vdbe stmt, int index) + { + return (ColType)Sqlite3.sqlite3_column_type(stmt, index); + } + + public static int ColumnInt(Sqlite3.Vdbe stmt, int index) + { + return Sqlite3.sqlite3_column_int(stmt, index); + } + + public static long ColumnInt64(Sqlite3.Vdbe stmt, int index) + { + return Sqlite3.sqlite3_column_int64(stmt, index); + } + + public static double ColumnDouble(Sqlite3.Vdbe stmt, int index) + { + return Sqlite3.sqlite3_column_double(stmt, index); + } + + public static string ColumnText(Sqlite3.Vdbe stmt, int index) + { + return Sqlite3.sqlite3_column_text(stmt, index); + } + + public static string ColumnText16(Sqlite3.Vdbe stmt, int index) + { + return Sqlite3.sqlite3_column_text(stmt, index); + } + + public static byte[] ColumnBlob(Sqlite3.Vdbe stmt, int index) + { + return Sqlite3.sqlite3_column_blob(stmt, index); + } + + public static int ColumnBytes(Sqlite3.Vdbe stmt, int index) + { + return Sqlite3.sqlite3_column_bytes(stmt, index); + } + + public static string ColumnString(Sqlite3.Vdbe stmt, int index) + { + return Sqlite3.sqlite3_column_text(stmt, index); + } + + public static byte[] ColumnByteArray(Sqlite3.Vdbe stmt, int index) + { + return ColumnBlob(stmt, index); + } +#endif + + public enum ColType : int + { + Integer = 1, + Float = 2, + Text = 3, + Blob = 4, + Null = 5 + } + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/SQLiteAsync.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/SQLiteAsync.cs new file mode 100644 index 0000000..b827164 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/SQLiteAsync.cs @@ -0,0 +1,486 @@ +// +// Copyright (c) 2012 Krueger Systems, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; +using System.Threading; +using System.Threading.Tasks; + +namespace SQLite +{ + public class SQLiteAsyncConnection + { + SQLiteConnectionString _connectionString; + + public SQLiteAsyncConnection (string databasePath, bool storeDateTimeAsTicks = false) + { + _connectionString = new SQLiteConnectionString (databasePath, storeDateTimeAsTicks); + } + + SQLiteConnectionWithLock GetConnection () + { + return SQLiteConnectionPool.Shared.GetConnection (_connectionString); + } + + public Task CreateTableAsync () + where T : new () + { + return CreateTablesAsync (typeof (T)); + } + + public Task CreateTablesAsync () + where T : new () + where T2 : new () + { + return CreateTablesAsync (typeof (T), typeof (T2)); + } + + public Task CreateTablesAsync () + where T : new () + where T2 : new () + where T3 : new () + { + return CreateTablesAsync (typeof (T), typeof (T2), typeof (T3)); + } + + public Task CreateTablesAsync () + where T : new () + where T2 : new () + where T3 : new () + where T4 : new () + { + return CreateTablesAsync (typeof (T), typeof (T2), typeof (T3), typeof (T4)); + } + + public Task CreateTablesAsync () + where T : new () + where T2 : new () + where T3 : new () + where T4 : new () + where T5 : new () + { + return CreateTablesAsync (typeof (T), typeof (T2), typeof (T3), typeof (T4), typeof (T5)); + } + + public Task CreateTablesAsync (params Type[] types) + { + return Task.Factory.StartNew (() => { + CreateTablesResult result = new CreateTablesResult (); + var conn = GetConnection (); + using (conn.Lock ()) { + foreach (Type type in types) { + int aResult = conn.CreateTable (type); + result.Results[type] = aResult; + } + } + return result; + }); + } + + public Task DropTableAsync () + where T : new () + { + return Task.Factory.StartNew (() => { + var conn = GetConnection (); + using (conn.Lock ()) { + return conn.DropTable (); + } + }); + } + + public Task InsertAsync (object item) + { + return Task.Factory.StartNew (() => { + var conn = GetConnection (); + using (conn.Lock ()) { + return conn.Insert (item); + } + }); + } + + public Task UpdateAsync (object item) + { + return Task.Factory.StartNew (() => { + var conn = GetConnection (); + using (conn.Lock ()) { + return conn.Update (item); + } + }); + } + + public Task DeleteAsync (object item) + { + return Task.Factory.StartNew (() => { + var conn = GetConnection (); + using (conn.Lock ()) { + return conn.Delete (item); + } + }); + } + + public Task GetAsync(object pk) + where T : new() + { + return Task.Factory.StartNew(() => + { + var conn = GetConnection(); + using (conn.Lock()) + { + return conn.Get(pk); + } + }); + } + + public Task FindAsync (object pk) + where T : new () + { + return Task.Factory.StartNew (() => { + var conn = GetConnection (); + using (conn.Lock ()) { + return conn.Find (pk); + } + }); + } + + public Task GetAsync (Expression> predicate) + where T : new() + { + return Task.Factory.StartNew(() => + { + var conn = GetConnection(); + using (conn.Lock()) + { + return conn.Get (predicate); + } + }); + } + + public Task FindAsync (Expression> predicate) + where T : new () + { + return Task.Factory.StartNew (() => { + var conn = GetConnection (); + using (conn.Lock ()) { + return conn.Find (predicate); + } + }); + } + + public Task ExecuteAsync (string query, params object[] args) + { + return Task.Factory.StartNew (() => { + var conn = GetConnection (); + using (conn.Lock ()) { + return conn.Execute (query, args); + } + }); + } + + public Task InsertAllAsync (IEnumerable items) + { + return Task.Factory.StartNew (() => { + var conn = GetConnection (); + using (conn.Lock ()) { + return conn.InsertAll (items); + } + }); + } + + [Obsolete("Will cause a deadlock if any call in action ends up in a different thread. Use RunInTransactionAsync(Action) instead.")] + public Task RunInTransactionAsync (Action action) + { + return Task.Factory.StartNew (() => { + var conn = this.GetConnection (); + using (conn.Lock ()) { + conn.BeginTransaction (); + try { + action (this); + conn.Commit (); + } + catch (Exception) { + conn.Rollback (); + throw; + } + } + }); + } + + public Task RunInTransactionAsync(Action action) + { + return Task.Factory.StartNew(() => + { + var conn = this.GetConnection(); + using (conn.Lock()) + { + conn.BeginTransaction(); + try + { + action(conn); + conn.Commit(); + } + catch (Exception) + { + conn.Rollback(); + throw; + } + } + }); + } + + public AsyncTableQuery Table () + where T : new () + { + // + // This isn't async as the underlying connection doesn't go out to the database + // until the query is performed. The Async methods are on the query iteself. + // + var conn = GetConnection (); + return new AsyncTableQuery (conn.Table ()); + } + + public Task ExecuteScalarAsync (string sql, params object[] args) + { + return Task.Factory.StartNew (() => { + var conn = GetConnection (); + using (conn.Lock ()) { + var command = conn.CreateCommand (sql, args); + return command.ExecuteScalar (); + } + }); + } + + public Task> QueryAsync (string sql, params object[] args) + where T : new () + { + return Task>.Factory.StartNew (() => { + var conn = GetConnection (); + using (conn.Lock ()) { + return conn.Query (sql, args); + } + }); + } + } + + // + // TODO: Bind to AsyncConnection.GetConnection instead so that delayed + // execution can still work after a Pool.Reset. + // + public class AsyncTableQuery + where T : new () + { + TableQuery _innerQuery; + + public AsyncTableQuery (TableQuery innerQuery) + { + _innerQuery = innerQuery; + } + + public AsyncTableQuery Where (Expression> predExpr) + { + return new AsyncTableQuery (_innerQuery.Where (predExpr)); + } + + public AsyncTableQuery Skip (int n) + { + return new AsyncTableQuery (_innerQuery.Skip (n)); + } + + public AsyncTableQuery Take (int n) + { + return new AsyncTableQuery (_innerQuery.Take (n)); + } + + public AsyncTableQuery OrderBy (Expression> orderExpr) + { + return new AsyncTableQuery (_innerQuery.OrderBy (orderExpr)); + } + + public AsyncTableQuery OrderByDescending (Expression> orderExpr) + { + return new AsyncTableQuery (_innerQuery.OrderByDescending (orderExpr)); + } + + public Task> ToListAsync () + { + return Task.Factory.StartNew (() => { + using (((SQLiteConnectionWithLock)_innerQuery.Connection).Lock ()) { + return _innerQuery.ToList (); + } + }); + } + + public Task CountAsync () + { + return Task.Factory.StartNew (() => { + using (((SQLiteConnectionWithLock)_innerQuery.Connection).Lock ()) { + return _innerQuery.Count (); + } + }); + } + + public Task ElementAtAsync (int index) + { + return Task.Factory.StartNew (() => { + using (((SQLiteConnectionWithLock)_innerQuery.Connection).Lock ()) { + return _innerQuery.ElementAt (index); + } + }); + } + + public Task FirstAsync () + { + return Task.Factory.StartNew(() => { + using (((SQLiteConnectionWithLock)_innerQuery.Connection).Lock ()) { + return _innerQuery.First (); + } + }); + } + + public Task FirstOrDefaultAsync () + { + return Task.Factory.StartNew(() => { + using (((SQLiteConnectionWithLock)_innerQuery.Connection).Lock ()) { + return _innerQuery.FirstOrDefault (); + } + }); + } + } + + public class CreateTablesResult + { + public Dictionary Results { get; private set; } + + internal CreateTablesResult () + { + this.Results = new Dictionary (); + } + } + + class SQLiteConnectionPool + { + class Entry + { + public SQLiteConnectionString ConnectionString { get; private set; } + public SQLiteConnectionWithLock Connection { get; private set; } + + public Entry (SQLiteConnectionString connectionString) + { + ConnectionString = connectionString; + Connection = new SQLiteConnectionWithLock (connectionString); + } + + public void OnApplicationSuspended () + { + Connection.Dispose (); + Connection = null; + } + } + + readonly Dictionary _entries = new Dictionary (); + readonly object _entriesLock = new object (); + + static readonly SQLiteConnectionPool _shared = new SQLiteConnectionPool (); + + /// + /// Gets the singleton instance of the connection tool. + /// + public static SQLiteConnectionPool Shared + { + get + { + return _shared; + } + } + + public SQLiteConnectionWithLock GetConnection (SQLiteConnectionString connectionString) + { + lock (_entriesLock) { + Entry entry; + string key = connectionString.ConnectionString; + + if (!_entries.TryGetValue (key, out entry)) { + entry = new Entry (connectionString); + _entries[key] = entry; + } + + return entry.Connection; + } + } + + /// + /// Closes all connections managed by this pool. + /// + public void Reset () + { + lock (_entriesLock) { + foreach (var entry in _entries.Values) { + entry.OnApplicationSuspended (); + } + _entries.Clear (); + } + } + + /// + /// Call this method when the application is suspended. + /// + /// Behaviour here is to close any open connections. + public void ApplicationSuspended () + { + Reset (); + } + } + + class SQLiteConnectionWithLock : SQLiteConnection + { + readonly object _lockPoint = new object (); + + public SQLiteConnectionWithLock (SQLiteConnectionString connectionString) + : base (connectionString.DatabasePath, connectionString.StoreDateTimeAsTicks) + { + } + + public IDisposable Lock () + { + return new LockWrapper (_lockPoint); + } + + private class LockWrapper : IDisposable + { + object _lockPoint; + + public LockWrapper (object lockPoint) + { + _lockPoint = lockPoint; + Monitor.Enter (_lockPoint); + } + + public void Dispose () + { + Monitor.Exit (_lockPoint); + } + } + } +} + diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Service References/ApressODataService/Reference.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/Service References/ApressODataService/Reference.cs new file mode 100644 index 0000000..cb079a5 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Service References/ApressODataService/Reference.cs @@ -0,0 +1,261 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.17929 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +// Original file name: +// Generation date: 2/20/2013 6:50:43 PM +namespace ApressDemo.ApressODataService +{ + + /// + /// There are no comments for ApressBookDBEntities in the schema. + /// + public partial class ApressBookDBEntities : global::System.Data.Services.Client.DataServiceContext + { + /// + /// Initialize a new ApressBookDBEntities object. + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + public ApressBookDBEntities(global::System.Uri serviceRoot) : + base(serviceRoot, global::System.Data.Services.Common.DataServiceProtocolVersion.V3) + { + this.ResolveName = new global::System.Func(this.ResolveNameFromType); + this.ResolveType = new global::System.Func(this.ResolveTypeFromName); + this.OnContextCreated(); + } + partial void OnContextCreated(); + /// + /// Since the namespace configured for this service reference + /// in Visual Studio is different from the one indicated in the + /// server schema, use type-mappers to map between the two. + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + protected global::System.Type ResolveTypeFromName(string typeName) + { + if (typeName.StartsWith("ApressBookDBModel", global::System.StringComparison.Ordinal)) + { + return global::System.Reflection.IntrospectionExtensions.GetTypeInfo(this.GetType()).Assembly.GetType(string.Concat("ApressDemo.ApressODataService", typeName.Substring(17))); + } + return null; + } + /// + /// Since the namespace configured for this service reference + /// in Visual Studio is different from the one indicated in the + /// server schema, use type-mappers to map between the two. + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + protected string ResolveNameFromType(global::System.Type clientType) + { + if (clientType.Namespace.Equals("ApressDemo.ApressODataService", global::System.StringComparison.Ordinal)) + { + return string.Concat("ApressBookDBModel.", clientType.Name); + } + return null; + } + /// + /// There are no comments for ApressBooks in the schema. + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + public global::System.Data.Services.Client.DataServiceQuery ApressBooks + { + get + { + if ((this._ApressBooks == null)) + { + this._ApressBooks = base.CreateQuery("ApressBooks"); + } + return this._ApressBooks; + } + } + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + private global::System.Data.Services.Client.DataServiceQuery _ApressBooks; + /// + /// There are no comments for ApressBooks in the schema. + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + public void AddToApressBooks(ApressBook apressBook) + { + base.AddObject("ApressBooks", apressBook); + } + } + /// + /// There are no comments for ApressBookDBModel.ApressBook in the schema. + /// + /// + /// ID + /// + [global::System.Data.Services.Common.EntitySetAttribute("ApressBooks")] + [global::System.Data.Services.Common.DataServiceKeyAttribute("ID")] + public partial class ApressBook : global::System.ComponentModel.INotifyPropertyChanged + { + /// + /// Create a new ApressBook object. + /// + /// Initial value of ID. + /// Initial value of ApressBookISBN. + /// Initial value of ApressBookName. + /// Initial value of ApressBookTechnology. + /// Initial value of ApressBookAuthor. + /// Initial value of ApressBookPublishedDate. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + public static ApressBook CreateApressBook(int ID, string apressBookISBN, string apressBookName, string apressBookTechnology, string apressBookAuthor, global::System.DateTime apressBookPublishedDate) + { + ApressBook apressBook = new ApressBook(); + apressBook.ID = ID; + apressBook.ApressBookISBN = apressBookISBN; + apressBook.ApressBookName = apressBookName; + apressBook.ApressBookTechnology = apressBookTechnology; + apressBook.ApressBookAuthor = apressBookAuthor; + apressBook.ApressBookPublishedDate = apressBookPublishedDate; + return apressBook; + } + /// + /// There are no comments for Property ID in the schema. + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + public int ID + { + get + { + return this._ID; + } + set + { + this.OnIDChanging(value); + this._ID = value; + this.OnIDChanged(); + this.OnPropertyChanged("ID"); + } + } + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + private int _ID; + partial void OnIDChanging(int value); + partial void OnIDChanged(); + /// + /// There are no comments for Property ApressBookISBN in the schema. + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + public string ApressBookISBN + { + get + { + return this._ApressBookISBN; + } + set + { + this.OnApressBookISBNChanging(value); + this._ApressBookISBN = value; + this.OnApressBookISBNChanged(); + this.OnPropertyChanged("ApressBookISBN"); + } + } + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + private string _ApressBookISBN; + partial void OnApressBookISBNChanging(string value); + partial void OnApressBookISBNChanged(); + /// + /// There are no comments for Property ApressBookName in the schema. + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + public string ApressBookName + { + get + { + return this._ApressBookName; + } + set + { + this.OnApressBookNameChanging(value); + this._ApressBookName = value; + this.OnApressBookNameChanged(); + this.OnPropertyChanged("ApressBookName"); + } + } + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + private string _ApressBookName; + partial void OnApressBookNameChanging(string value); + partial void OnApressBookNameChanged(); + /// + /// There are no comments for Property ApressBookTechnology in the schema. + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + public string ApressBookTechnology + { + get + { + return this._ApressBookTechnology; + } + set + { + this.OnApressBookTechnologyChanging(value); + this._ApressBookTechnology = value; + this.OnApressBookTechnologyChanged(); + this.OnPropertyChanged("ApressBookTechnology"); + } + } + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + private string _ApressBookTechnology; + partial void OnApressBookTechnologyChanging(string value); + partial void OnApressBookTechnologyChanged(); + /// + /// There are no comments for Property ApressBookAuthor in the schema. + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + public string ApressBookAuthor + { + get + { + return this._ApressBookAuthor; + } + set + { + this.OnApressBookAuthorChanging(value); + this._ApressBookAuthor = value; + this.OnApressBookAuthorChanged(); + this.OnPropertyChanged("ApressBookAuthor"); + } + } + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + private string _ApressBookAuthor; + partial void OnApressBookAuthorChanging(string value); + partial void OnApressBookAuthorChanged(); + /// + /// There are no comments for Property ApressBookPublishedDate in the schema. + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + public global::System.DateTime ApressBookPublishedDate + { + get + { + return this._ApressBookPublishedDate; + } + set + { + this.OnApressBookPublishedDateChanging(value); + this._ApressBookPublishedDate = value; + this.OnApressBookPublishedDateChanged(); + this.OnPropertyChanged("ApressBookPublishedDate"); + } + } + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + private global::System.DateTime _ApressBookPublishedDate; + partial void OnApressBookPublishedDateChanging(global::System.DateTime value); + partial void OnApressBookPublishedDateChanged(); + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + public event global::System.ComponentModel.PropertyChangedEventHandler PropertyChanged; + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")] + protected virtual void OnPropertyChanged(string property) + { + if ((this.PropertyChanged != null)) + { + this.PropertyChanged(this, new global::System.ComponentModel.PropertyChangedEventArgs(property)); + } + } + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Service References/ApressODataService/Reference.datasvcmap b/ApressBook SourceCode/ApressDemo/ApressDemo/Service References/ApressODataService/Reference.datasvcmap new file mode 100644 index 0000000..6ce047b --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Service References/ApressODataService/Reference.datasvcmap @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Service References/ApressODataService/service.edmx b/ApressBook SourceCode/ApressDemo/ApressDemo/Service References/ApressODataService/service.edmx new file mode 100644 index 0000000..9945641 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Service References/ApressODataService/service.edmx @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/FeaturedBookListViewModel.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/FeaturedBookListViewModel.cs new file mode 100644 index 0000000..3bdcd2a --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/FeaturedBookListViewModel.cs @@ -0,0 +1,164 @@ +using ApressDemo.Models; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Windows.UI.Xaml; + +namespace ApressDemo.ViewModels +{ + public partial class FeaturedApressBookListViewModel + { + #region "Members" + + private ObservableCollection _groupedFeaturedApressBooks; + + #endregion + + #region "Properties" + + public ObservableCollection FeaturedApressBooks { get; set; } + + public ObservableCollection GroupedFeaturedApressBooks + { + get + { + if (_groupedFeaturedApressBooks == null) + _groupedFeaturedApressBooks = new ObservableCollection(); + + // Put Books into Grouped buckets based on Technology. + var query = from individualApressBook in FeaturedApressBooks + orderby individualApressBook.ApressBookTechnology + group individualApressBook by individualApressBook.ApressBookTechnology into g + select new GroupedApressBooks + { + ApressBookGroupName = g.Key, + ApressBookGroupCount = g.Count(), + BookCollection = new ObservableCollection(g.ToList()) + }; + + _groupedFeaturedApressBooks = new ObservableCollection(query.ToList()); + + return _groupedFeaturedApressBooks; + } + set + { + _groupedFeaturedApressBooks = value; + } + } + + #endregion + + #region "Methods" + + public void LoadFeaturedBooksDemoVM(FeaturedApressBookListViewModel featuredApressBookListVM) + { + featuredApressBookListVM.FeaturedApressBooks = new ObservableCollection(); + + ApressBook WPMigration = new ApressBook(); + WPMigration.ApressBookISBN = "978-1-4302-3816-4"; + WPMigration.ApressBookName = "Migrating to Windows Phone"; + WPMigration.ApressBookTechnology = "Windows Phone"; + WPMigration.ApressBookAuthor = "Jesse Liberty , Jeff Blankenburg"; + WPMigration.ApressBookDescription = "This book offers everything you'll need to upgrade your existing programming knowledge and begin to develop applications for the Windows Phone."; + WPMigration.ApressBookImageURI = "/Assets/MigratingToWP.png"; + WPMigration.ApressBookPublishedDate = new DateTime(2011, 12, 28); + WPMigration.ApressBookUserLevel = "Intermediate"; + + ApressBook WPRecipes = new ApressBook(); + WPRecipes.ApressBookISBN = "978-1-4302-4137-9"; + WPRecipes.ApressBookName = "Windows Phone Recipes"; + WPRecipes.ApressBookTechnology = "Windows Phone"; + WPRecipes.ApressBookAuthor = "Fabio Claudio Ferracchiati , Emanuele Garofalo"; + WPRecipes.ApressBookDescription = "Are you interested in smartphone development? Windows Phone 7.5 (code-named Mango) is packed with new features and functionality that make it a .NET developer's dream. This book contains extensive code samples and detailed walkthroughs that will have you writing sophisticated apps in no time!"; + WPRecipes.ApressBookImageURI = "/Assets/WPRecipes.png"; + WPRecipes.ApressBookPublishedDate = new DateTime(2011, 12, 14); + WPRecipes.ApressBookUserLevel = "Beginner to Intermediate"; + + ApressBook WPAppDev = new ApressBook(); + WPAppDev.ApressBookISBN = "978-1-4302-3936-9"; + WPAppDev.ApressBookName = "Windows Phone App Development"; + WPAppDev.ApressBookTechnology = "Windows Phone"; + WPAppDev.ApressBookAuthor = "Rob Cameron"; + WPAppDev.ApressBookDescription = "Pro Windows Phone 7 Development helps you unlock the potential of Microsoft's newest mobile platform and updates—NoDo and Mango—to develop visually rich, highly functional applications for the Windows Phone Marketplace."; + WPAppDev.ApressBookImageURI = "/Assets/WPAppDev.png"; + WPAppDev.ApressBookPublishedDate = new DateTime(2011, 12, 26); + WPAppDev.ApressBookUserLevel = "Intermediate to Advanced"; + + ApressBook AzurePlatform = new ApressBook(); + AzurePlatform.ApressBookISBN = "978-1-4302-3563-7"; + AzurePlatform.ApressBookName = "Windows Azure Platform"; + AzurePlatform.ApressBookTechnology = "Windows Azure"; + AzurePlatform.ApressBookAuthor = "Tejaswi Redkar , Tony Guidici"; + AzurePlatform.ApressBookDescription = "Learn to architect and build cloud services using the Windows Azure platform. Best practices and techniques for using Windows Azure, SQL Azure and Windows Azure AppFabric are supported by a thorough overview of architectural concepts."; + AzurePlatform.ApressBookImageURI = "/Assets/AzurePlatform.png"; + AzurePlatform.ApressBookPublishedDate = new DateTime(2011, 12, 19); + AzurePlatform.ApressBookUserLevel = "Intermediate to Advanced"; + + ApressBook SQLAzure = new ApressBook(); + SQLAzure.ApressBookISBN = "978-1-4302-2961-2"; + SQLAzure.ApressBookName = "Pro SQL Azure"; + SQLAzure.ApressBookTechnology = "Windows Azure"; + SQLAzure.ApressBookAuthor = "Scott Klein , Herve Roggero"; + SQLAzure.ApressBookDescription = "Pro SQL Azure introduces you to Microsoft's cloud-based delivery of its enterprise-caliber, SQL Server database management system—showing you how to program and administer it in a variety of cloud computing scenarios."; + SQLAzure.ApressBookImageURI = "/Assets/SQLAzure.png"; + SQLAzure.ApressBookPublishedDate = new DateTime(2010, 10, 29); + SQLAzure.ApressBookUserLevel = "Intermediate to Advanced"; + + ApressBook UltraFastASP = new ApressBook(); + UltraFastASP.ApressBookISBN = "978-1-4302-4338-0"; + UltraFastASP.ApressBookName = "Ultra-Fast ASP.NET 4.5"; + UltraFastASP.ApressBookTechnology = "ASP.NET"; + UltraFastASP.ApressBookAuthor = "Rick Kiessig"; + UltraFastASP.ApressBookDescription = "Ultra-Fast ASP.NET 4.5 provides a practical guide to building extremely fast and scalable web sites using ASP.NET and SQL Server, with eminently usable advice and all of the detail you need to understand the recommendations."; + UltraFastASP.ApressBookImageURI = "/Assets/UltraFastASP.png"; + UltraFastASP.ApressBookPublishedDate = new DateTime(2012, 7, 25); + UltraFastASP.ApressBookUserLevel = "Intermediate to Advanced"; + + ApressBook ASPWebAPI = new ApressBook(); + ASPWebAPI.ApressBookISBN = "978-1-4302-4725-8"; + ASPWebAPI.ApressBookName = "Pro ASP.NET Web API"; + ASPWebAPI.ApressBookTechnology = "ASP.NET"; + ASPWebAPI.ApressBookAuthor = "Tugberk Ugurlu , Alexander Zeitler"; + ASPWebAPI.ApressBookDescription = "With the new ASP.NET Web API framework, HTTP has become a first-class citizen of .NET. Pro ASP.NET Web API shows you how to put this new technology into practice to build flexible, extensible web services that run seamlessly on a range of operating systems and devices."; + ASPWebAPI.ApressBookImageURI = "/Assets/ASPWebAPI.png"; + ASPWebAPI.ApressBookPublishedDate = new DateTime(2013, 3, 13); + ASPWebAPI.ApressBookUserLevel = "Intermediate to Advanced"; + + featuredApressBookListVM.FeaturedApressBooks.Add(WPMigration); + featuredApressBookListVM.FeaturedApressBooks.Add(WPRecipes); + featuredApressBookListVM.FeaturedApressBooks.Add(WPAppDev); + featuredApressBookListVM.FeaturedApressBooks.Add(AzurePlatform); + featuredApressBookListVM.FeaturedApressBooks.Add(SQLAzure); + featuredApressBookListVM.FeaturedApressBooks.Add(UltraFastASP); + featuredApressBookListVM.FeaturedApressBooks.Add(ASPWebAPI); + } + + public async Task> GetAwaitableGroupedFeaturedApressBooks() + { + this.FeaturedApressBooks = await ((App)Application.Current).ReadCustomDataDeferred(); + + // Put Books into Grouped buckets based on Technology. + var query = from individualApressBook in FeaturedApressBooks + orderby individualApressBook.ApressBookTechnology + group individualApressBook by individualApressBook.ApressBookTechnology into g + select new GroupedApressBooks + { + ApressBookGroupName = g.Key, + ApressBookGroupCount = g.Count(), + BookCollection = new ObservableCollection(g.ToList()) + }; + + if (_groupedFeaturedApressBooks == null) + _groupedFeaturedApressBooks = new ObservableCollection(); + + _groupedFeaturedApressBooks = new ObservableCollection(query.ToList()); + + return _groupedFeaturedApressBooks; + } + + #endregion + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/FlipViewDemoViewModel.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/FlipViewDemoViewModel.cs new file mode 100644 index 0000000..8dcb287 --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/FlipViewDemoViewModel.cs @@ -0,0 +1,59 @@ +using ApressDemo.Models; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ApressDemo.ViewModels +{ + public partial class FlipViewDemoViewModel + { + #region "Properties" + + public ObservableCollection FeaturedWindowsPhoneApressBooks { get; set; } + + #endregion + + #region "Methods" + + public void LoadFlipViewDemoVM(FlipViewDemoViewModel flipViewDemoVM) + { + flipViewDemoVM.FeaturedWindowsPhoneApressBooks = new ObservableCollection(); + + ApressBook WPMigration = new ApressBook(); + WPMigration.ApressBookISBN = "978-1-4302-3816-4"; + WPMigration.ApressBookName = "Migrating to Windows Phone"; + WPMigration.ApressBookAuthor = "Jesse Liberty , Jeff Blankenburg"; + WPMigration.ApressBookDescription = "This book offers everything you'll need to upgrade your existing programming knowledge and begin to develop applications for the Windows Phone."; + WPMigration.ApressBookImageURI = "/Assets/MigratingToWP.png"; + WPMigration.ApressBookPublishedDate = new DateTime(2011, 12, 28); + WPMigration.ApressBookUserLevel = "Intermediate"; + + ApressBook WPRecipes = new ApressBook(); + WPRecipes.ApressBookISBN = "978-1-4302-4137-9"; + WPRecipes.ApressBookName = "Windows Phone Recipes"; + WPRecipes.ApressBookAuthor = "Fabio Claudio Ferracchiati , Emanuele Garofalo"; + WPRecipes.ApressBookDescription = "Are you interested in smartphone development? Windows Phone 7.5 (code-named Mango) is packed with new features and functionality that make it a .NET developer's dream. This book contains extensive code samples and detailed walkthroughs that will have you writing sophisticated apps in no time!"; + WPRecipes.ApressBookImageURI = "/Assets/WPRecipes.png"; + WPRecipes.ApressBookPublishedDate = new DateTime(2011, 12, 14); + WPRecipes.ApressBookUserLevel = "Beginner to Intermediate"; + + ApressBook WPAppDev = new ApressBook(); + WPAppDev.ApressBookISBN = "978-1-4302-3936-9"; + WPAppDev.ApressBookName = "Windows Phone App Development"; + WPAppDev.ApressBookAuthor = "Rob Cameron"; + WPAppDev.ApressBookDescription = "Pro Windows Phone 7 Development helps you unlock the potential of Microsoft's newest mobile platform and updates—NoDo and Mango—to develop visually rich, highly functional applications for the Windows Phone Marketplace."; + WPAppDev.ApressBookImageURI = "/Assets/WPAppDev.png"; + WPAppDev.ApressBookPublishedDate = new DateTime(2011, 12, 26); + WPAppDev.ApressBookUserLevel = "Intermediate to Advanced"; + + flipViewDemoVM.FeaturedWindowsPhoneApressBooks.Add(WPMigration); + flipViewDemoVM.FeaturedWindowsPhoneApressBooks.Add(WPRecipes); + flipViewDemoVM.FeaturedWindowsPhoneApressBooks.Add(WPAppDev); + } + + #endregion + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/MVVMFeaturedBookListViewModel.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/MVVMFeaturedBookListViewModel.cs new file mode 100644 index 0000000..fcdbe3a --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/MVVMFeaturedBookListViewModel.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using GalaSoft.MvvmLight; +using System.Collections.ObjectModel; +using ApressDemo.Models; +using ApressDemo.Repository; +using GalaSoft.MvvmLight.Ioc; +using GalaSoft.MvvmLight.Command; + +namespace ApressDemo.ViewModels +{ + public partial class MVVMFeaturedBookListViewModel :ViewModelBase + { + #region "Members" + + private ObservableCollection featuredApressBooks; + private ApressBook selectedBook; + + private IBookService apressBookService; + + #endregion + + #region "Properties" + + public ObservableCollection MVVMFeaturedApressBooks + { + get + { + return featuredApressBooks; + } + set + { + featuredApressBooks = value; + RaisePropertyChanged("MVVMFeaturedApressBooks"); + } + } + + public ApressBook SelectedBook + { + get + { + return selectedBook; + } + set + { + selectedBook = value; + RaisePropertyChanged("SelectedBook"); + } + } + + public RelayCommand BookSelectedCommand { get; set; } + + #endregion + + #region "Constructor" + + public MVVMFeaturedBookListViewModel() + { + apressBookService = SimpleIoc.Default.GetInstance(); + + LoadFeaturedBooks(); + RespondToCommands(); + } + + #endregion + + #region "Methods" + + private async void LoadFeaturedBooks() + { + MVVMFeaturedApressBooks = await apressBookService.GetFeaturedBooks(); + } + + private void RespondToCommands() + { + BookSelectedCommand = new RelayCommand((book) => + { + // Take some action with the user-selected book. + string chosenBookID = SelectedBook.ApressBookISBN; + string chosenBookName = selectedBook.ApressBookName; + }); + } + + #endregion + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/ViewModelLocator.cs b/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/ViewModelLocator.cs new file mode 100644 index 0000000..6f95c4c --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/ViewModels/ViewModelLocator.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using GalaSoft.MvvmLight; +using GalaSoft.MvvmLight.Ioc; +using Microsoft.Practices.ServiceLocation; +using ApressDemo.Repository; + + +namespace ApressDemo.ViewModels +{ + public class ViewModelLocator + { + public ViewModelLocator() + { + ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default); + + SimpleIoc.Default.Register(); + SimpleIoc.Default.Register(); + } + + public MVVMFeaturedBookListViewModel MVVMFeaturedBookListViewModel + { + get + { + return ServiceLocator.Current.GetInstance(); + } + } + } +} diff --git a/ApressBook SourceCode/ApressDemo/ApressDemo/Views/AccountPage.xaml b/ApressBook SourceCode/ApressDemo/ApressDemo/Views/AccountPage.xaml new file mode 100644 index 0000000..ec4f93d --- /dev/null +++ b/ApressBook SourceCode/ApressDemo/ApressDemo/Views/AccountPage.xaml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +