by Brette L Scott
Changes to 81 files · Browse files at b3a93018aa68 Showing diff from parent 1b5faf072403 a4f972cbcfb1 Diff from another changeset...
@@ -47,6 +47,12 @@ <DocumentationFile>bin\Migrator\Release\Migrator.XML</DocumentationFile>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="EntityFramework">
+ <HintPath>..\..\packages\EntityFramework.6.0.2\lib\net40\EntityFramework.dll</HintPath>
+ </Reference>
+ <Reference Include="EntityFramework.SqlServer">
+ <HintPath>..\..\packages\EntityFramework.6.0.2\lib\net40\EntityFramework.SqlServer.dll</HintPath>
+ </Reference>
<Reference Include="log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\packages\log4net.2.0.2\lib\net40-full\log4net.dll</HintPath>
@@ -62,12 +68,16 @@ <HintPath>..\..\lib\Npgsql\net-4.0\Npgsql.dll</HintPath>
</Reference>
<Reference Include="System" />
+ <Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Data" />
- <Reference Include="System.Data.SQLite, Version=1.0.84.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
- <HintPath>..\..\lib\System.Data.SQLite.dll</HintPath>
+ <Reference Include="System.Data.SQLite">
+ <HintPath>..\..\packages\System.Data.SQLite.Core.1.0.92.0\lib\net40\System.Data.SQLite.dll</HintPath>
</Reference>
- <Reference Include="System.Data.SQLite.Linq, Version=1.0.84.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
- <HintPath>..\..\lib\System.Data.SQLite.Linq.dll</HintPath>
+ <Reference Include="System.Data.SQLite.EF6">
+ <HintPath>..\..\packages\System.Data.SQLite.EF6.1.0.92.0\lib\net40\System.Data.SQLite.EF6.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Data.SQLite.Linq">
+ <HintPath>..\..\packages\System.Data.SQLite.Linq.1.0.92.0\lib\net40\System.Data.SQLite.Linq.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
@@ -111,6 +121,12 @@ </ItemGroup>
<ItemGroup>
<Content Include="testfolder\test.txt" />
+ <Content Include="x64\SQLite.Interop.dll">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
+ <Content Include="x86\SQLite.Interop.dll">
+ <CopyToOutputDirectory>Always</CopyToOutputDirectory>
+ </Content>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
|
@@ -1,3 +1,29 @@ - <?xml version="1.0"?>
+<?xml version="1.0" encoding="utf-8"?>
<configuration>
- <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
+ <configSections>
+ <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
+ <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
+ </configSections>
+ <startup>
+ <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
+ </startup>
+ <system.data>
+ <DbProviderFactories>
+ <remove invariant="System.Data.SQLite" />
+ <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
+ <remove invariant="System.Data.SQLite.EF6" />
+ <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".Net Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
+ </DbProviderFactories>
+ </system.data>
+ <entityFramework>
+ <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
+ <parameters>
+ <parameter value="v11.0" />
+ </parameters>
+ </defaultConnectionFactory>
+ <providers>
+ <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
+ <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
+ </providers>
+ </entityFramework>
+</configuration>
\ No newline at end of file |
@@ -1,4 +1,9 @@ <?xml version="1.0" encoding="utf-8"?>
<packages>
+ <package id="EntityFramework" version="6.0.2" targetFramework="net40" />
<package id="log4net" version="2.0.2" targetFramework="net40" />
+ <package id="System.Data.SQLite" version="1.0.92.0" targetFramework="net40" />
+ <package id="System.Data.SQLite.Core" version="1.0.92.0" targetFramework="net40" />
+ <package id="System.Data.SQLite.EF6" version="1.0.92.0" targetFramework="net40" />
+ <package id="System.Data.SQLite.Linq" version="1.0.92.0" targetFramework="net40" />
</packages>
\ No newline at end of file |
|
|
|
|
|
|
|
|
|
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,21 @@ + <?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
+ <metadata>
+ <id>EntityFramework</id>
+ <version>6.0.2</version>
+ <title>EntityFramework</title>
+ <authors>Microsoft</authors>
+ <owners>Microsoft</owners>
+ <licenseUrl>http://go.microsoft.com/fwlink/?LinkID=320539</licenseUrl>
+ <projectUrl>http://go.microsoft.com/fwlink/?LinkID=320540</projectUrl>
+ <iconUrl>http://go.microsoft.com/fwlink/?LinkID=386613</iconUrl>
+ <requireLicenseAcceptance>true</requireLicenseAcceptance>
+ <description>Entity Framework is Microsoft's recommended data access technology for new applications.</description>
+ <summary>Entity Framework is Microsoft's recommended data access technology for new applications.</summary>
+ <language>en-US</language>
+ <tags>Microsoft EF Database Data O/RM ADO.NET</tags>
+ <frameworkAssemblies>
+ <frameworkAssembly assemblyName="System.ComponentModel.DataAnnotations" targetFramework="" />
+ </frameworkAssemblies>
+ </metadata>
+</package>
\ No newline at end of file |
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,5 @@ + <configuration>
+ <configSections>
+ <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
+ </configSections>
+</configuration>
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,5 @@ + <configuration>
+ <configSections>
+ <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
+ </configSections>
+</configuration>
|
|
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
|
|
|
|
|
|
|
|
|
@@ -0,0 +1,1054 @@ + # 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.Infrastructure.MigrationsPendingException',
+ 'System.Data.Entity.Migrations.ProjectTypeNotSupportedException'
+)
+
+<#
+.SYNOPSIS
+ Adds or updates an Entity Framework provider entry in the project config
+ file.
+
+.DESCRIPTION
+ Adds an entry into the 'entityFramework' section of the project config
+ file for the specified provider invariant name and provider type. If an
+ entry for the given invariant name already exists, then that entry is
+ updated with the given type name, unless the given type name already
+ matches, in which case no action is taken. The 'entityFramework'
+ section is added if it does not exist. The config file is automatically
+ saved if and only if a change was made.
+
+ This command is typically used only by Entity Framework provider NuGet
+ packages and is run from the 'install.ps1' script.
+
+.PARAMETER Project
+ The Visual Studio project to update. When running in the NuGet install.ps1
+ script the '$project' variable provided as part of that script should be
+ used.
+
+.PARAMETER InvariantName
+ The provider invariant name that uniquely identifies this provider. For
+ example, the Microsoft SQL Server provider is registered with the invariant
+ name 'System.Data.SqlClient'.
+
+.PARAMETER TypeName
+ The assembly-qualified type name of the provider-specific type that
+ inherits from 'System.Data.Entity.Core.Common.DbProviderServices'. For
+ example, for the Microsoft SQL Server provider, this type is
+ 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'.
+#>
+function Add-EFProvider
+{
+ param (
+ [parameter(Position = 0,
+ Mandatory = $true)]
+ $Project,
+ [parameter(Position = 1,
+ Mandatory = $true)]
+ [string] $InvariantName,
+ [parameter(Position = 2,
+ Mandatory = $true)]
+ [string] $TypeName
+ )
+
+ Check-Project $project
+
+ $runner = New-EFConfigRunner $Project
+
+ try
+ {
+ Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.AddProviderCommand @( $InvariantName, $TypeName )
+ $error = Get-RunnerError $runner
+
+ if ($error)
+ {
+ if ($knownExceptions -notcontains $error.TypeName)
+ {
+ Write-Host $error.StackTrace
+ }
+ else
+ {
+ Write-Verbose $error.StackTrace
+ }
+
+ throw $error.Message
+ }
+ }
+ finally
+ {
+ Remove-Runner $runner
+ }
+}
+
+<#
+.SYNOPSIS
+ Adds or updates an Entity Framework default connection factory in the
+ project config file.
+
+.DESCRIPTION
+ Adds an entry into the 'entityFramework' section of the project config
+ file for the connection factory that Entity Framework will use by default
+ when creating new connections by convention. Any existing entry will be
+ overridden if it does not match. The 'entityFramework' section is added if
+ it does not exist. The config file is automatically saved if and only if
+ a change was made.
+
+ This command is typically used only by Entity Framework provider NuGet
+ packages and is run from the 'install.ps1' script.
+
+.PARAMETER Project
+ The Visual Studio project to update. When running in the NuGet install.ps1
+ script the '$project' variable provided as part of that script should be
+ used.
+
+.PARAMETER TypeName
+ The assembly-qualified type name of the connection factory type that
+ implements the 'System.Data.Entity.Infrastructure.IDbConnectionFactory'
+ interface. For example, for the Microsoft SQL Server Express provider
+ connection factory, this type is
+ 'System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework'.
+
+.PARAMETER ConstructorArguments
+ An optional array of strings that will be passed as arguments to the
+ connection factory type constructor.
+#>
+function Add-EFDefaultConnectionFactory
+{
+ param (
+ [parameter(Position = 0,
+ Mandatory = $true)]
+ $Project,
+ [parameter(Position = 1,
+ Mandatory = $true)]
+ [string] $TypeName,
+ [string[]] $ConstructorArguments
+ )
+
+ Check-Project $project
+
+ $runner = New-EFConfigRunner $Project
+
+ try
+ {
+ Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.AddDefaultConnectionFactoryCommand @( $TypeName, $ConstructorArguments )
+ $error = Get-RunnerError $runner
+
+ if ($error)
+ {
+ if ($knownExceptions -notcontains $error.TypeName)
+ {
+ Write-Host $error.StackTrace
+ }
+ else
+ {
+ Write-Verbose $error.StackTrace
+ }
+
+ throw $error.Message
+ }
+ }
+ finally
+ {
+ Remove-Runner $runner
+ }
+}
+
+<#
+.SYNOPSIS
+ Initializes the Entity Framework section in the project config file
+ and sets defaults.
+
+.DESCRIPTION
+ Creates the 'entityFramework' section of the project config file and sets
+ the default connection factory to use SQL Express if it is running on the
+ machine, or LocalDb otherwise. Note that installing a different provider
+ may change the default connection factory. The config file is
+ automatically saved if and only if a change was made.
+
+ In addition, any reference to 'System.Data.Entity.dll' in the project is
+ removed.
+
+ This command is typically used only by Entity Framework provider NuGet
+ packages and is run from the 'install.ps1' script.
+
+.PARAMETER Project
+ The Visual Studio project to update. When running in the NuGet install.ps1
+ script the '$project' variable provided as part of that script should be
+ used.
+#>
+function Initialize-EFConfiguration
+{
+ param (
+ [parameter(Position = 0,
+ Mandatory = $true)]
+ $Project
+ )
+
+ Check-Project $project
+
+ $runner = New-EFConfigRunner $Project
+
+ try
+ {
+ Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand
+ $error = Get-RunnerError $runner
+
+ if ($error)
+ {
+ if ($knownExceptions -notcontains $error.TypeName)
+ {
+ Write-Host $error.StackTrace
+ }
+ else
+ {
+ Write-Verbose $error.StackTrace
+ }
+
+ throw $error.Message
+ }
+ }
+ finally
+ {
+ Remove-Runner $runner
+ }
+}
+
+<#
+.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 omitted, automatic migrations will be disabled.
+
+.PARAMETER MigrationsDirectory
+ Specifies the name of the directory that will contain migrations code files.
+ If omitted, the directory will be named "Migrations".
+
+.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 ContextProjectName
+ Specifies the project which contains the DbContext class to use. If omitted,
+ the context is assumed to be in the same project used for migrations.
+
+.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] $MigrationsDirectory,
+ [string] $ProjectName,
+ [string] $StartUpProjectName,
+ [string] $ContextProjectName,
+ [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 $ContextProjectName $null $ConnectionStringName $ConnectionString $ConnectionProviderName
+
+ try
+ {
+ Invoke-RunnerCommand $runner System.Data.Entity.Migrations.EnableMigrationsCommand @( $EnableAutomaticMigrations.IsPresent, $Force.IsPresent ) @{ 'ContextTypeName' = $ContextTypeName; 'MigrationsDirectory' = $MigrationsDirectory }
+ $error = Get-RunnerError $runner
+
+ if ($error)
+ {
+ if ($knownExceptions -notcontains $error.TypeName)
+ {
+ Write-Host $error.StackTrace
+ }
+ else
+ {
+ Write-Verbose $error.StackTrace
+ }
+
+ throw $error.Message
+ }
+
+ $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show()
+ }
+ 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 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 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 $null $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
+ }
+ else
+ {
+ Write-Verbose $error.StackTrace
+ }
+
+ throw $error.Message
+ }
+ $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show()
+ }
+ 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 omitted, 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
+ omitted, 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 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 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 $null $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
+ }
+ else
+ {
+ Write-Verbose $error.StackTrace
+ }
+
+ throw $error.Message
+ }
+ $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show()
+ }
+ 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 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 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 $null $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
+ }
+ else
+ {
+ Write-Verbose $error.StackTrace
+ }
+
+ throw $error.Message
+ }
+ }
+ finally
+ {
+ Remove-Runner $runner
+ }
+}
+
+function New-MigrationsRunner($ProjectName, $StartUpProjectName, $ContextProjectName, $ConfigurationTypeName, $ConnectionStringName, $ConnectionString, $ConnectionProviderName)
+{
+ $startUpProject = Get-MigrationsStartUpProject $StartUpProjectName $ProjectName
+ Build-Project $startUpProject
+
+ $project = Get-MigrationsProject $ProjectName
+ Build-Project $project
+
+ $contextProject = $project
+ if ($ContextProjectName)
+ {
+ $contextProject = Get-SingleProject $ContextProjectName
+ Build-Project $contextProject
+ }
+
+ $installPath = Get-EntityFrameworkInstallPath $project
+ $toolsPath = Join-Path $installPath tools
+
+ $info = New-AppDomainSetup $project $installPath
+
+ $domain = [AppDomain]::CreateDomain('Migrations', $null, $info)
+ $domain.SetData('project', $project)
+ $domain.SetData('contextProject', $contextProject)
+ $domain.SetData('startUpProject', $startUpProject)
+ $domain.SetData('configurationTypeName', $ConfigurationTypeName)
+ $domain.SetData('connectionStringName', $ConnectionStringName)
+ $domain.SetData('connectionString', $ConnectionString)
+ $domain.SetData('connectionProviderName', $ConnectionProviderName)
+
+ $dispatcher = New-DomainDispatcher $toolsPath
+ $domain.SetData('efDispatcher', $dispatcher)
+
+ return @{
+ Domain = $domain;
+ ToolsPath = $toolsPath
+ }
+}
+
+function New-EFConfigRunner($Project)
+{
+ $installPath = Get-EntityFrameworkInstallPath $Project
+ $toolsPath = Join-Path $installPath tools
+ $info = New-AppDomainSetup $Project $installPath
+
+ $domain = [AppDomain]::CreateDomain('EFConfig', $null, $info)
+ $domain.SetData('project', $Project)
+
+ $dispatcher = New-DomainDispatcher $toolsPath
+ $domain.SetData('efDispatcher', $dispatcher)
+
+ return @{
+ Domain = $domain;
+ ToolsPath = $toolsPath
+ }
+}
+
+function New-AppDomainSetup($Project, $InstallPath)
+{
+ $info = New-Object System.AppDomainSetup -Property @{
+ ShadowCopyFiles = 'true';
+ ApplicationBase = $InstallPath;
+ PrivateBinPath = 'tools';
+ ConfigurationFile = ([AppDomain]::CurrentDomain.SetupInformation.ConfigurationFile)
+ }
+
+ $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'
+ }
+ else
+ {
+ $info.PrivateBinPath += ';lib\net45'
+ }
+
+ return $info
+}
+
+function New-DomainDispatcher($ToolsPath)
+{
+ $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)
+
+ return $dispatcher
+}
+
+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
+}
+
+function Check-Project($project)
+{
+ if (!$project.FullName)
+ {
+ throw "The Project argument must refer to a Visual Studio project. Use the '`$project' variable provided by NuGet when running in install.ps1."
+ }
+}
+
+Export-ModuleMember @( 'Enable-Migrations', 'Add-Migration', 'Update-Database', 'Get-Migrations', 'Add-EFProvider', 'Add-EFDefaultConnectionFactory', 'Initialize-EFConfiguration') -Variable InitialDatabase
+
+# SIG # Begin signature block
+# MIIarwYJKoZIhvcNAQcCoIIaoDCCGpwCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUGD2nrGYv22CsZ8TVTLPYVoMj
+# HJGgghWCMIIEwzCCA6ugAwIBAgITMwAAAEyh6E3MtHR7OwAAAAAATDANBgkqhkiG
+# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
+# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw
+# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTMxMTExMjIxMTMx
+# WhcNMTUwMjExMjIxMTMxWjCBszELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
+# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
+# b3JhdGlvbjENMAsGA1UECxMETU9QUjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNO
+# OkMwRjQtMzA4Ni1ERUY4MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT
+# ZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsdj6GwYrd6jk
+# lF18D+Z6ppLuilQdpPmEdYWXzMtcltDXdS3ZCPtb0u4tJcY3PvWrfhpT5Ve+a+i/
+# ypYK3EbxWh4+AtKy4CaOAGR7vjyT+FgyeYfSGl0jvJxRxA8Q+gRYtRZ2buy8xuW+
+# /K2swUHbqs559RyymUGneiUr/6t4DVg6sV5Q3mRM4MoVKt+m6f6kZi9bEAkJJiHU
+# Pw0vbdL4d5ADbN4UEqWM5zYf9IelsEEXb+NNdGbC/aJxRjVRzGsXUWP6FZSSml9L
+# KLrmFkVJ6Sy1/ouHr/ylbUPcpjD6KSjvmw0sXIPeEo1qtNtx71wUWiojKP+BcFfx
+# jAeaE9gqUwIDAQABo4IBCTCCAQUwHQYDVR0OBBYEFLkNrbNN9NqfGrInJlUNIETY
+# mOL0MB8GA1UdIwQYMBaAFCM0+NlSRnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEsw
+# SaBHoEWGQ2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz
+# L01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsG
+# AQUFBzAChjxodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jv
+# c29mdFRpbWVTdGFtcFBDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI
+# hvcNAQEFBQADggEBAAmKTgav6O2Czx0HftcqpyQLLa+aWyR/lHEMVYgkGlIVY+KQ
+# TQVKmEqc++GnbWhVgrkp6mmpstXjDNrR1nolN3hnHAz72ylaGpc4KjlWRvs1gbnk
+# PUZajuT8dTdYWUmLTts8FZ1zUkvreww6wi3Bs5tSLeA1xbnBV7PoPaE8RPIjFh4K
+# qlk3J9CVUl6ofz9U8IHh3Jq9ZdV49vdMObvd4NY3DpGah4xz53FkUvc+A9jGzXK4
+# NDSYW4zT9Qim63jGUaANDm/0azxAGmAWLKkGUp0cE5DObwIe6nucs/b4l2DyZdHR
+# H4c6wXXwQo167Yxysnv7LIq0kUdU4i5pzBZUGlkwggTsMIID1KADAgECAhMzAAAA
+# sBGvCovQO5/dAAEAAACwMA0GCSqGSIb3DQEBBQUAMHkxCzAJBgNVBAYTAlVTMRMw
+# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
+# aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNp
+# Z25pbmcgUENBMB4XDTEzMDEyNDIyMzMzOVoXDTE0MDQyNDIyMzMzOVowgYMxCzAJ
+# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
+# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1PUFIx
+# HjAcBgNVBAMTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJKoZIhvcNAQEB
+# BQADggEPADCCAQoCggEBAOivXKIgDfgofLwFe3+t7ut2rChTPzrbQH2zjjPmVz+l
+# URU0VKXPtIupP6g34S1Q7TUWTu9NetsTdoiwLPBZXKnr4dcpdeQbhSeb8/gtnkE2
+# KwtA+747urlcdZMWUkvKM8U3sPPrfqj1QRVcCGUdITfwLLoiCxCxEJ13IoWEfE+5
+# G5Cw9aP+i/QMmk6g9ckKIeKq4wE2R/0vgmqBA/WpNdyUV537S9QOgts4jxL+49Z6
+# dIhk4WLEJS4qrp0YHw4etsKvJLQOULzeHJNcSaZ5tbbbzvlweygBhLgqKc+/qQUF
+# 4eAPcU39rVwjgynrx8VKyOgnhNN+xkMLlQAFsU9lccUCAwEAAaOCAWAwggFcMBMG
+# A1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBRZcaZaM03amAeA/4Qevof5cjJB
+# 8jBRBgNVHREESjBIpEYwRDENMAsGA1UECxMETU9QUjEzMDEGA1UEBRMqMzE1OTUr
+# NGZhZjBiNzEtYWQzNy00YWEzLWE2NzEtNzZiYzA1MjM0NGFkMB8GA1UdIwQYMBaA
+# FMsR6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9j
+# cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8w
+# OC0zMS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6
+# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMx
+# LTIwMTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQAx124qElczgdWdxuv5OtRETQie
+# 7l7falu3ec8CnLx2aJ6QoZwLw3+ijPFNupU5+w3g4Zv0XSQPG42IFTp8263Os8ls
+# ujksRX0kEVQmMA0N/0fqAwfl5GZdLHudHakQ+hywdPJPaWueqSSE2u2WoN9zpO9q
+# GqxLYp7xfMAUf0jNTbJE+fA8k21C2Oh85hegm2hoCSj5ApfvEQO6Z1Ktwemzc6bS
+# Y81K4j7k8079/6HguwITO10g3lU/o66QQDE4dSheBKlGbeb1enlAvR/N6EXVruJd
+# PvV1x+ZmY2DM1ZqEh40kMPfvNNBjHbFCZ0oOS786Du+2lTqnOOQlkgimiGaCMIIF
+# vDCCA6SgAwIBAgIKYTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZIm
+# iZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQD
+# EyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMx
+# MjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBC
+# mXZTbD4b1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1VwqJyq4gSfTw
+# aKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNEf9eB2/O98jakyVxF3K+tPeAoaJcap6Vy
+# c1bxF5Tk/TWUcqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2L1TdFDBZ
+# +NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049oDI9kM2hOAaFXE5WgigqBTK3S9dP
+# Y+fSLWLxRT3nrAgA9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzBrAlf
+# A9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMsR6MrS
+# tBZYAck3LjMWFrlMmgofMAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQAB
+# MCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+mPLzYLTAZBgkrBgEEAYI3
+# FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnk
+# pDBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp
+# L2NybC9wcm9kdWN0cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEE
+# SDBGMEQGCCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl
+# cnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+
+# fyZGr+tvQLEytWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAhXaw9L0y6
+# oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6WcIC36C1DEVs0t40rSvHDnqA2iA6VW
+# 4LiKS1fylUKc8fPv7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WRTsgb
+# 0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZEolHN+emjWFbdmwJFRC9f9Nqu
+# 1IIybvyklRPk62nnqaIsvsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJ
+# NRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxPbQ4TTj18KUicctHzbMrB
+# 7HCjV5JXfZSNoBtIA1r3z6NnCnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDord
+# EN5k9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7B2BHZWBATrBC7E7t
+# s3Z52Ao0CW0cgDEf4g5U3eWh++VHEK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jsh
+# rg1cnPCiroZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONxPdcAfmJH0c6I
+# ybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3UAjWwz0wggYHMIID76ADAgECAgphFmg0
+# AAAAAAAcMA0GCSqGSIb3DQEBBQUAMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAX
+# BgoJkiaJk/IsZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290
+# IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMx
+# MzAzMDlaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
+# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf
+# BgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEB
+# BQADggEPADCCAQoCggEBAJ+hbLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn
+# 0UytdDAgEesH1VSVFUmUG0KSrphcMCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0
+# Zxws/HvniB3q506jocEjU8qN+kXPCdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4n
+# rIZPVVIM5AMs+2qQkDBuh/NZMJ36ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YR
+# JylmqJfk0waBSqL5hKcRRxQJgp+E7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54
+# QTF3zJvfO4OToWECtR0Nsfz3m7IBziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8G
+# A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsG
+# A1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJg
+# QFYnl+UlE/wq4QpTlVnkpKFjpGEwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcG
+# CgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3Qg
+# Q2VydGlmaWNhdGUgQXV0aG9yaXR5ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJ
+# MEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1
+# Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYB
+# BQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9z
+# b2Z0Um9vdENlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEB
+# BQUAA4ICAQAQl4rDXANENt3ptK132855UU0BsS50cVttDBOrzr57j7gu1BKijG1i
+# uFcCy04gE1CZ3XpA4le7r1iaHOEdAYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+r
+# kuTnjWrVgMHmlPIGL4UD6ZEqJCJw+/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGct
+# xVEO6mJcPxaYiyA/4gcaMvnMMUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/F
+# NSteo7/rvH0LQnvUU3Ih7jDKu3hlXFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbo
+# nXCUbKw5TNT2eb+qGHpiKe+imyk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0
+# NbhOxXEjEiZ2CzxSjHFaRkMUvLOzsE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPp
+# K+m79EjMLNTYMoBMJipIJF9a6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2J
+# oXZhtG6hE6a/qkfwEm/9ijJssv7fUciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0
+# eFQF1EEuUKyUsKV4q7OglnUa2ZKHE3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng
+# 9wFlb4kLfchpyOZu6qeXzjEp/w7FW1zYTRuh2Povnj8uVRZryROj/TGCBJcwggST
+# AgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
+# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAh
+# BgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBAhMzAAAAsBGvCovQO5/d
+# AAEAAACwMAkGBSsOAwIaBQCggbAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
+# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFHlP
+# wIpDUAGAnbgDrTywRVvTXuBEMFAGCisGAQQBgjcCAQwxQjBAoCKAIABFAG4AdABp
+# AHQAeQAgAEYAcgBhAG0AZQB3AG8AcgBroRqAGGh0dHA6Ly9tc2RuLmNvbS9kYXRh
+# L2VmIDANBgkqhkiG9w0BAQEFAASCAQBGhre2E1qw0m8EQgJBaVLi6CgwVn7+qSCY
+# WqIIcygRNohB5i3zj61/qTEa4DZLc0F3hvGC6aNwwjUbnoU4nZoqOSQgta2DaVul
+# uhm7Y+BTZsXvYY9q26UjgUbo1jdBrWelIbu+3YV+pE00UVuV0RabWkEdFBr9HeOV
+# nZYczzdVvnYkkkFxO25SVHZWT2nyWhYxMYv+HLoUBND1BmZzNYWnJqegL4BrczNm
+# exycbGbRVEO45QOJEK+3vA4o6GKPk09wcFEmkvlncGKTz4fGhYWf5ELykT0TSQuL
+# vP1PN35OUNzlpqc2FuWCDosVl8FUhphYXpiw/1sUnI5nPG8aGiUboYICKDCCAiQG
+# CSqGSIb3DQEJBjGCAhUwggIRAgEBMIGOMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
+# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
+# ZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD
+# QQITMwAAAEyh6E3MtHR7OwAAAAAATDAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkD
+# MQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTMxMjExMjIxODIyWjAjBgkq
+# hkiG9w0BCQQxFgQU0jwg1lgVl4Ydsz+7YfTew/L6w9EwDQYJKoZIhvcNAQEFBQAE
+# ggEAE5v+eUOejFOPJm9KTWV3trMOU5afQi0n39o/1ow7rvHPXB6fPf4vEAfHLc5M
+# I01Pkq6e+0dU48Ycqncr1qL5RVrDJgHIVIGQaMZ3cur80ifFVToLUgo8ie1hCGla
+# egR9gDAPXt9kMmUlh2HWyrN3/8RrMo98h8uMD/lk0jGCl5ZXowhYi1+dGsi5Vt4X
+# sz/hVapCufzGLD6HaTbqTLRj3rAuycixVJPH8gVozNemt0JbLq/QAYprlssnN86b
+# 6t86PRgDV6XFSfathsc49L3GrvrwG5PmhIeM6mOEjDhoR1OQazGiOWyDllhzvfrj
+# sjRwuQtMASWcD8MnYCgA+lqXQA==
+# SIG # End signature block
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,48 @@ + 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 used with Entity Framework
+ Migrations.
+
+ 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.
+
+ The following Entity Framework cmdlets are used by NuGet packages that
+ install Entity Framework providers. These commands are not usually used as
+ part of normal application development.
+
+ Cmdlet Description
+ ------------------------------ ---------------------------------------
+ Add-EFProvider Adds or updates an Entity Framework
+ provider entry in the project config
+ file.
+
+ Add-EFDefaultConnectionFactory Adds or updates an Entity Framework
+ default connection factory in the
+ project config file.
+
+ Initialize-EFConfiguration Initializes the Entity Framework
+ section in the project config file and
+ sets defaults.
+
+SEE ALSO
+ Enable-Migrations
+ Add-Migration
+ Update-Database
+ Get-Migrations
|
|
|
@@ -0,0 +1,154 @@ + param($installPath, $toolsPath, $package, $project)
+
+if (Get-Module | ?{ $_.Name -eq 'EntityFramework' })
+{
+ Remove-Module EntityFramework
+}
+
+Import-Module (Join-Path $toolsPath EntityFramework.psd1)
+
+# SIG # Begin signature block
+# MIIarwYJKoZIhvcNAQcCoIIaoDCCGpwCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUjXj4E03IfImYfKMB4CA3DfY0
+# KZmgghWCMIIEwzCCA6ugAwIBAgITMwAAADPlJ4ajDkoqgAAAAAAAMzANBgkqhkiG
+# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
+# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw
+# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTMwMzI3MjAwODIz
+# WhcNMTQwNjI3MjAwODIzWjCBszELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
+# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
+# b3JhdGlvbjENMAsGA1UECxMETU9QUjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNO
+# OkY1MjgtMzc3Ny04QTc2MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT
+# ZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyt7KGQ8fllaC
+# X9hCMtQIbbadwMLtfDirWDOta4FQuIghCl2vly2QWsfDLrJM1GN0WP3fxYlU0AvM
+# /ZyEEXmsoyEibTPgrt4lQEWSTg1jCCuLN91PB2rcKs8QWo9XXZ09+hdjAsZwPrsi
+# 7Vux9zK65HG8ef/4y+lXP3R75vJ9fFdYL6zSDqjZiNlAHzoiQeIJJgKgzOUlzoxn
+# g99G+IVNw9pmHsdzfju0dhempaCgdFWo5WAYQWI4x2VGqwQWZlbq+abLQs9dVGQv
+# gfjPOAAPEGvhgy6NPkjsSVZK7Jpp9MsPEPsHNEpibAGNbscghMpc0WOZHo5d7A+l
+# Fkiqa94hLwIDAQABo4IBCTCCAQUwHQYDVR0OBBYEFABYGz7txfEGk74xPTa0rAtd
+# MvCBMB8GA1UdIwQYMBaAFCM0+NlSRnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEsw
+# SaBHoEWGQ2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz
+# L01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsG
+# AQUFBzAChjxodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jv
+# c29mdFRpbWVTdGFtcFBDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI
+# hvcNAQEFBQADggEBAAL/44wD6u9+OLm5fJ87UoOk+iM41AO4alm16uBviAP0b1Fq
+# lTp1hegc3AfFTp0bqM4kRxQkTzV3sZy8J3uPXU/8BouXl/kpm/dAHVKBjnZIA37y
+# mxe3rtlbIpFjOzJfNfvGkTzM7w6ZgD4GkTgTegxMvjPbv+2tQcZ8GyR8E9wK/EuK
+# IAUdCYmROQdOIU7ebHxwu6vxII74mHhg3IuUz2W+lpAPoJyE7Vy1fEGgYS29Q2dl
+# GiqC1KeKWfcy46PnxY2yIruSKNiwjFOPaEdHodgBsPFhFcQXoS3jOmxPb6897t4p
+# sETLw5JnugDOD44R79ECgjFJlJidUUh4rR3WQLYwggTsMIID1KADAgECAhMzAAAA
+# sBGvCovQO5/dAAEAAACwMA0GCSqGSIb3DQEBBQUAMHkxCzAJBgNVBAYTAlVTMRMw
+# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
+# aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNp
+# Z25pbmcgUENBMB4XDTEzMDEyNDIyMzMzOVoXDTE0MDQyNDIyMzMzOVowgYMxCzAJ
+# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
+# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1PUFIx
+# HjAcBgNVBAMTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJKoZIhvcNAQEB
+# BQADggEPADCCAQoCggEBAOivXKIgDfgofLwFe3+t7ut2rChTPzrbQH2zjjPmVz+l
+# URU0VKXPtIupP6g34S1Q7TUWTu9NetsTdoiwLPBZXKnr4dcpdeQbhSeb8/gtnkE2
+# KwtA+747urlcdZMWUkvKM8U3sPPrfqj1QRVcCGUdITfwLLoiCxCxEJ13IoWEfE+5
+# G5Cw9aP+i/QMmk6g9ckKIeKq4wE2R/0vgmqBA/WpNdyUV537S9QOgts4jxL+49Z6
+# dIhk4WLEJS4qrp0YHw4etsKvJLQOULzeHJNcSaZ5tbbbzvlweygBhLgqKc+/qQUF
+# 4eAPcU39rVwjgynrx8VKyOgnhNN+xkMLlQAFsU9lccUCAwEAAaOCAWAwggFcMBMG
+# A1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBRZcaZaM03amAeA/4Qevof5cjJB
+# 8jBRBgNVHREESjBIpEYwRDENMAsGA1UECxMETU9QUjEzMDEGA1UEBRMqMzE1OTUr
+# NGZhZjBiNzEtYWQzNy00YWEzLWE2NzEtNzZiYzA1MjM0NGFkMB8GA1UdIwQYMBaA
+# FMsR6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9j
+# cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8w
+# OC0zMS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6
+# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMx
+# LTIwMTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQAx124qElczgdWdxuv5OtRETQie
+# 7l7falu3ec8CnLx2aJ6QoZwLw3+ijPFNupU5+w3g4Zv0XSQPG42IFTp8263Os8ls
+# ujksRX0kEVQmMA0N/0fqAwfl5GZdLHudHakQ+hywdPJPaWueqSSE2u2WoN9zpO9q
+# GqxLYp7xfMAUf0jNTbJE+fA8k21C2Oh85hegm2hoCSj5ApfvEQO6Z1Ktwemzc6bS
+# Y81K4j7k8079/6HguwITO10g3lU/o66QQDE4dSheBKlGbeb1enlAvR/N6EXVruJd
+# PvV1x+ZmY2DM1ZqEh40kMPfvNNBjHbFCZ0oOS786Du+2lTqnOOQlkgimiGaCMIIF
+# vDCCA6SgAwIBAgIKYTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZIm
+# iZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQD
+# EyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMx
+# MjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBC
+# mXZTbD4b1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1VwqJyq4gSfTw
+# aKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNEf9eB2/O98jakyVxF3K+tPeAoaJcap6Vy
+# c1bxF5Tk/TWUcqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2L1TdFDBZ
+# +NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049oDI9kM2hOAaFXE5WgigqBTK3S9dP
+# Y+fSLWLxRT3nrAgA9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzBrAlf
+# A9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMsR6MrS
+# tBZYAck3LjMWFrlMmgofMAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQAB
+# MCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+mPLzYLTAZBgkrBgEEAYI3
+# FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnk
+# pDBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp
+# L2NybC9wcm9kdWN0cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEE
+# SDBGMEQGCCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl
+# cnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+
+# fyZGr+tvQLEytWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAhXaw9L0y6
+# oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6WcIC36C1DEVs0t40rSvHDnqA2iA6VW
+# 4LiKS1fylUKc8fPv7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WRTsgb
+# 0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZEolHN+emjWFbdmwJFRC9f9Nqu
+# 1IIybvyklRPk62nnqaIsvsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJ
+# NRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxPbQ4TTj18KUicctHzbMrB
+# 7HCjV5JXfZSNoBtIA1r3z6NnCnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDord
+# EN5k9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7B2BHZWBATrBC7E7t
+# s3Z52Ao0CW0cgDEf4g5U3eWh++VHEK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jsh
+# rg1cnPCiroZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONxPdcAfmJH0c6I
+# ybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3UAjWwz0wggYHMIID76ADAgECAgphFmg0
+# AAAAAAAcMA0GCSqGSIb3DQEBBQUAMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAX
+# BgoJkiaJk/IsZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290
+# IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMx
+# MzAzMDlaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
+# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf
+# BgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEB
+# BQADggEPADCCAQoCggEBAJ+hbLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn
+# 0UytdDAgEesH1VSVFUmUG0KSrphcMCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0
+# Zxws/HvniB3q506jocEjU8qN+kXPCdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4n
+# rIZPVVIM5AMs+2qQkDBuh/NZMJ36ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YR
+# JylmqJfk0waBSqL5hKcRRxQJgp+E7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54
+# QTF3zJvfO4OToWECtR0Nsfz3m7IBziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8G
+# A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsG
+# A1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJg
+# QFYnl+UlE/wq4QpTlVnkpKFjpGEwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcG
+# CgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3Qg
+# Q2VydGlmaWNhdGUgQXV0aG9yaXR5ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJ
+# MEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1
+# Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYB
+# BQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9z
+# b2Z0Um9vdENlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEB
+# BQUAA4ICAQAQl4rDXANENt3ptK132855UU0BsS50cVttDBOrzr57j7gu1BKijG1i
+# uFcCy04gE1CZ3XpA4le7r1iaHOEdAYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+r
+# kuTnjWrVgMHmlPIGL4UD6ZEqJCJw+/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGct
+# xVEO6mJcPxaYiyA/4gcaMvnMMUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/F
+# NSteo7/rvH0LQnvUU3Ih7jDKu3hlXFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbo
+# nXCUbKw5TNT2eb+qGHpiKe+imyk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0
+# NbhOxXEjEiZ2CzxSjHFaRkMUvLOzsE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPp
+# K+m79EjMLNTYMoBMJipIJF9a6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2J
+# oXZhtG6hE6a/qkfwEm/9ijJssv7fUciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0
+# eFQF1EEuUKyUsKV4q7OglnUa2ZKHE3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng
+# 9wFlb4kLfchpyOZu6qeXzjEp/w7FW1zYTRuh2Povnj8uVRZryROj/TGCBJcwggST
+# AgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
+# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAh
+# BgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBAhMzAAAAsBGvCovQO5/d
+# AAEAAACwMAkGBSsOAwIaBQCggbAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
+# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFOrT
+# ZEbL6mMRie0QxeNrtIXxNuY6MFAGCisGAQQBgjcCAQwxQjBAoCKAIABFAG4AdABp
+# AHQAeQAgAEYAcgBhAG0AZQB3AG8AcgBroRqAGGh0dHA6Ly9tc2RuLmNvbS9kYXRh
+# L2VmIDANBgkqhkiG9w0BAQEFAASCAQAp46rF491ax2xI+ywddNCS8k+nfEHapr0P
+# /5psYf8iQn+QOp8boRjDaP3AVdnbf+ZHAhkqc+/1RoEI6FbfLqPECRFKAdMip3vR
+# cHC/CcTsCTrJzn9/seSsoVFO+6zY4K8VNtlGD4cQNXkOy+2WAdvXlyiUi4qKC7tr
+# XyF6KsbdhqXynrfRHkPUTMm1KakaH571roCd40WQrNh5Sec4m1ndOoY6pR2y3c/d
+# EyTV/T3IhH0i8AsQxFOhDnxFNDWPKY83my2mZCWiW9XTMykCqNsBcQ2iAIb3oIx7
+# A7iLTvyDiVYrYfzVcJmJGqSZjAkHiKj02uIA/mWNyblckled8XzJoYICKDCCAiQG
+# CSqGSIb3DQEJBjGCAhUwggIRAgEBMIGOMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
+# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
+# ZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD
+# QQITMwAAADPlJ4ajDkoqgAAAAAAAMzAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkD
+# MQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTMxMjExMjIxODIyWjAjBgkq
+# hkiG9w0BCQQxFgQUmKcMuWdwUtNtz9/a4twIEFV7cyAwDQYJKoZIhvcNAQEFBQAE
+# ggEASfeGe/Nnk70Ean0S8UfT2IhkTdLVUDXPTfsrKwJxy+JoAfCjx8AOJieMB2l6
+# bSde4f2pBLFua+L5vRWTGik/nM3sufwJD6QjYKkWPjCCOwKr9tzeOQgR7AtWO540
+# pu9j7iqmK5PDrV45PfhzIQPc20UTzflzHo3P8VJJvQO79TIUIOtUKTYyOq7nRZfx
+# TmKpbrtXjwuN/2HDjS8/A6z1uiNBcecShvW+1IUQ/3HEQXKwEgjt5JjupMcB9Bob
+# n62/pt7XutAKRXir536nnjs4zg3RTHw0LbyD5dymYplZ88cojv9WBMN//2pXDbec
+# 7AVTn0E88TfrS2mWABexn+qeNg==
+# SIG # End signature block
|
|
|
@@ -0,0 +1,153 @@ + param($installPath, $toolsPath, $package, $project)
+
+Initialize-EFConfiguration $project
+Add-EFProvider $project 'System.Data.SqlClient' 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'
+
+Write-Host
+Write-Host "Type 'get-help EntityFramework' to see all available Entity Framework commands."
+
+# SIG # Begin signature block
+# MIIarwYJKoZIhvcNAQcCoIIaoDCCGpwCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUt8mwpdjiFmu2B4KBh+vEeQ+V
+# VnSgghWCMIIEwzCCA6ugAwIBAgITMwAAADQkMUDJoMF5jQAAAAAANDANBgkqhkiG
+# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
+# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw
+# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTMwMzI3MjAwODI1
+# WhcNMTQwNjI3MjAwODI1WjCBszELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
+# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
+# b3JhdGlvbjENMAsGA1UECxMETU9QUjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNO
+# OkI4RUMtMzBBNC03MTQ0MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT
+# ZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5RoHrQqWLNS2
+# NGTLNCDyvARYgou1CdxS1HCf4lws5/VqpPW2LrGBhlkB7ElsKQQe9TiLVxj1wDIN
+# 7TSQ7MZF5buKCiWq76F7h9jxcGdKzWrc5q8FkT3tBXDrQc+rsSVmu6uitxj5eBN4
+# dc2LM1x97WfE7QP9KKxYYMF7vYCNM5NhYgixj1ESZY9BfsTVJektZkHTQzT6l4H4
+# /Ieh7TlSH/jpPv9egMkGNgfb27lqxzfPhrUaS0rUJfLHyI2vYWeK2lMv80wegyxj
+# yqAQUhG6gVhzQoTjNLLu6pO+TILQfZYLT38vzxBdGkVmqwLxXyQARsHBVdKDckIi
+# hjqkvpNQAQIDAQABo4IBCTCCAQUwHQYDVR0OBBYEFF9LQt4MuTig1GY2jVb7dFlJ
+# ZoErMB8GA1UdIwQYMBaAFCM0+NlSRnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEsw
+# SaBHoEWGQ2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz
+# L01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsG
+# AQUFBzAChjxodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jv
+# c29mdFRpbWVTdGFtcFBDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI
+# hvcNAQEFBQADggEBAA9CUKDVHq0XPx8Kpis3imdYLbEwTzvvwldp7GXTTMVQcvJz
+# JfbkhALFdRxxWEOr8cmqjt/Kb1g8iecvzXo17GbX1V66jp9XhpQQoOtRN61X9id7
+# I08Z2OBtdgQlMGESraWOoya2SOVT8kVOxbiJJxCdqePPI+l5bK6TaDoa8xPEFLZ6
+# Op5B2plWntDT4BaWkHJMrwH3JAb7GSuYslXMep/okjprMXuA8w6eV4u35gW2OSWa
+# l4IpNos4rq6LGqzu5+wuv0supQc1gfMTIOq0SpOev5yDVn+tFS9cKXELlGc4/DC/
+# Zef1Od7qIu2HjKuyO7UBwq3g/I4lFQwivp8M7R0wggTsMIID1KADAgECAhMzAAAA
+# sBGvCovQO5/dAAEAAACwMA0GCSqGSIb3DQEBBQUAMHkxCzAJBgNVBAYTAlVTMRMw
+# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
+# aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNp
+# Z25pbmcgUENBMB4XDTEzMDEyNDIyMzMzOVoXDTE0MDQyNDIyMzMzOVowgYMxCzAJ
+# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
+# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1PUFIx
+# HjAcBgNVBAMTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJKoZIhvcNAQEB
+# BQADggEPADCCAQoCggEBAOivXKIgDfgofLwFe3+t7ut2rChTPzrbQH2zjjPmVz+l
+# URU0VKXPtIupP6g34S1Q7TUWTu9NetsTdoiwLPBZXKnr4dcpdeQbhSeb8/gtnkE2
+# KwtA+747urlcdZMWUkvKM8U3sPPrfqj1QRVcCGUdITfwLLoiCxCxEJ13IoWEfE+5
+# G5Cw9aP+i/QMmk6g9ckKIeKq4wE2R/0vgmqBA/WpNdyUV537S9QOgts4jxL+49Z6
+# dIhk4WLEJS4qrp0YHw4etsKvJLQOULzeHJNcSaZ5tbbbzvlweygBhLgqKc+/qQUF
+# 4eAPcU39rVwjgynrx8VKyOgnhNN+xkMLlQAFsU9lccUCAwEAAaOCAWAwggFcMBMG
+# A1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBRZcaZaM03amAeA/4Qevof5cjJB
+# 8jBRBgNVHREESjBIpEYwRDENMAsGA1UECxMETU9QUjEzMDEGA1UEBRMqMzE1OTUr
+# NGZhZjBiNzEtYWQzNy00YWEzLWE2NzEtNzZiYzA1MjM0NGFkMB8GA1UdIwQYMBaA
+# FMsR6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9j
+# cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8w
+# OC0zMS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6
+# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMx
+# LTIwMTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQAx124qElczgdWdxuv5OtRETQie
+# 7l7falu3ec8CnLx2aJ6QoZwLw3+ijPFNupU5+w3g4Zv0XSQPG42IFTp8263Os8ls
+# ujksRX0kEVQmMA0N/0fqAwfl5GZdLHudHakQ+hywdPJPaWueqSSE2u2WoN9zpO9q
+# GqxLYp7xfMAUf0jNTbJE+fA8k21C2Oh85hegm2hoCSj5ApfvEQO6Z1Ktwemzc6bS
+# Y81K4j7k8079/6HguwITO10g3lU/o66QQDE4dSheBKlGbeb1enlAvR/N6EXVruJd
+# PvV1x+ZmY2DM1ZqEh40kMPfvNNBjHbFCZ0oOS786Du+2lTqnOOQlkgimiGaCMIIF
+# vDCCA6SgAwIBAgIKYTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZIm
+# iZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQD
+# EyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMx
+# MjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD
+# QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBC
+# mXZTbD4b1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1VwqJyq4gSfTw
+# aKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNEf9eB2/O98jakyVxF3K+tPeAoaJcap6Vy
+# c1bxF5Tk/TWUcqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2L1TdFDBZ
+# +NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049oDI9kM2hOAaFXE5WgigqBTK3S9dP
+# Y+fSLWLxRT3nrAgA9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzBrAlf
+# A9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMsR6MrS
+# tBZYAck3LjMWFrlMmgofMAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQAB
+# MCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+mPLzYLTAZBgkrBgEEAYI3
+# FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnk
+# pDBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp
+# L2NybC9wcm9kdWN0cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEE
+# SDBGMEQGCCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl
+# cnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+
+# fyZGr+tvQLEytWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAhXaw9L0y6
+# oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6WcIC36C1DEVs0t40rSvHDnqA2iA6VW
+# 4LiKS1fylUKc8fPv7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WRTsgb
+# 0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZEolHN+emjWFbdmwJFRC9f9Nqu
+# 1IIybvyklRPk62nnqaIsvsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJ
+# NRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxPbQ4TTj18KUicctHzbMrB
+# 7HCjV5JXfZSNoBtIA1r3z6NnCnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDord
+# EN5k9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7B2BHZWBATrBC7E7t
+# s3Z52Ao0CW0cgDEf4g5U3eWh++VHEK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jsh
+# rg1cnPCiroZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONxPdcAfmJH0c6I
+# ybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3UAjWwz0wggYHMIID76ADAgECAgphFmg0
+# AAAAAAAcMA0GCSqGSIb3DQEBBQUAMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAX
+# BgoJkiaJk/IsZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290
+# IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMx
+# MzAzMDlaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
+# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf
+# BgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEB
+# BQADggEPADCCAQoCggEBAJ+hbLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn
+# 0UytdDAgEesH1VSVFUmUG0KSrphcMCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0
+# Zxws/HvniB3q506jocEjU8qN+kXPCdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4n
+# rIZPVVIM5AMs+2qQkDBuh/NZMJ36ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YR
+# JylmqJfk0waBSqL5hKcRRxQJgp+E7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54
+# QTF3zJvfO4OToWECtR0Nsfz3m7IBziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8G
+# A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsG
+# A1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJg
+# QFYnl+UlE/wq4QpTlVnkpKFjpGEwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcG
+# CgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3Qg
+# Q2VydGlmaWNhdGUgQXV0aG9yaXR5ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJ
+# MEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1
+# Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYB
+# BQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9z
+# b2Z0Um9vdENlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEB
+# BQUAA4ICAQAQl4rDXANENt3ptK132855UU0BsS50cVttDBOrzr57j7gu1BKijG1i
+# uFcCy04gE1CZ3XpA4le7r1iaHOEdAYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+r
+# kuTnjWrVgMHmlPIGL4UD6ZEqJCJw+/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGct
+# xVEO6mJcPxaYiyA/4gcaMvnMMUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/F
+# NSteo7/rvH0LQnvUU3Ih7jDKu3hlXFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbo
+# nXCUbKw5TNT2eb+qGHpiKe+imyk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0
+# NbhOxXEjEiZ2CzxSjHFaRkMUvLOzsE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPp
+# K+m79EjMLNTYMoBMJipIJF9a6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2J
+# oXZhtG6hE6a/qkfwEm/9ijJssv7fUciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0
+# eFQF1EEuUKyUsKV4q7OglnUa2ZKHE3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng
+# 9wFlb4kLfchpyOZu6qeXzjEp/w7FW1zYTRuh2Povnj8uVRZryROj/TGCBJcwggST
+# AgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
+# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAh
+# BgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBAhMzAAAAsBGvCovQO5/d
+# AAEAAACwMAkGBSsOAwIaBQCggbAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
+# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFJiz
+# f4JawBv4s6ihwSKoeZTRDcAvMFAGCisGAQQBgjcCAQwxQjBAoCKAIABFAG4AdABp
+# AHQAeQAgAEYAcgBhAG0AZQB3AG8AcgBroRqAGGh0dHA6Ly9tc2RuLmNvbS9kYXRh
+# L2VmIDANBgkqhkiG9w0BAQEFAASCAQBl1eyDt2dp8f759lxqbnnQy+TYCdsEAqxP
+# 5AY0A38rcH28zRXOGRwxLo1o7uwmP9WFgmBvTa5yvDLVXI9OPsQ2yy1ugJT9GLro
+# l2v6TbtUikmli9JQ1cMXAQKCvJWr7q8pie9Xlv/Kf2hD/KdxqACw/O+wXVu43cZq
+# ewAUd4OsKQ5kWTalsog9sIQ9NoggMVDGwPQc4F/da9LwXaL9hwl+8J0l2V5TZefk
+# X5Hxsae0Souw8RR+u55r3OMyGxX4jANDVpsMzVh3bmNwsq0OaNtJ5WXx/1R5+72D
+# yZQPi+wpjcSn8oDJEhCAvNT/jzX6NsxbnZr3fxEn8MfMB5BmkInAoYICKDCCAiQG
+# CSqGSIb3DQEJBjGCAhUwggIRAgEBMIGOMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
+# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
+# ZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD
+# QQITMwAAADQkMUDJoMF5jQAAAAAANDAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkD
+# MQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTMxMjExMjIxODIyWjAjBgkq
+# hkiG9w0BCQQxFgQU/5ZEGkCagXUs+tIh1LXCDL6NUJYwDQYJKoZIhvcNAQEFBQAE
+# ggEAtpTJFzcUcZFzoxIShHYZSu/ts/KGjQk37aEWQByTGJ19kCzLyWrrtkmPNIro
+# cKCqLeNw8mYfX8SbcfjzPVDcTs2j7xzBYoFNvOlaz6DPOXSDV7S4pYvgr4sYj/sc
+# JcFj07HjbkJm6kdYDqxs4+xOM7+AeSCKGS6TWebZeAiwPVMhIQsOJ7iN4nY0t1UK
+# J6cyz/zx5j2cnnawJDiUNMR8se8Rik2/b9AiP1LBEobxCdp2JZGDZRif0BqTK6hk
+# Oh1Sh9EM7T83dWopjFVOd9wtWlaLgOWXLxErXG8IRhFyzb6P8te7FBvZTrpKGecI
+# E7RuNvrIsP+LARvXmg1ecj/T4w==
+# SIG # End signature block
|
|
|
|
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,39 @@ + <?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
+ <metadata>
+ <id>System.Data.SQLite</id>
+ <version>1.0.92.0</version>
+ <title>System.Data.SQLite (x86/x64)</title>
+ <authors>SQLite Development Team</authors>
+ <owners>SQLite Development Team</owners>
+ <licenseUrl>http://www.sqlite.org/copyright.html</licenseUrl>
+ <projectUrl>http://system.data.sqlite.org/</projectUrl>
+ <iconUrl>http://system.data.sqlite.org/images/sqlite32.png</iconUrl>
+ <requireLicenseAcceptance>false</requireLicenseAcceptance>
+ <description>The official SQLite database engine for both x86 and x64 along with the ADO.NET provider. This package includes support for LINQ and Entity Framework 6.</description>
+ <copyright>Public Domain</copyright>
+ <language>en-US</language>
+ <tags>sqlite database ado.net provider interop</tags>
+ <dependencies>
+ <group targetFramework=".NETFramework2.0">
+ <dependency id="System.Data.SQLite.Core" version="1.0.92.0" />
+ <dependency id="System.Data.SQLite.Linq" version="1.0.92.0" />
+ </group>
+ <group targetFramework=".NETFramework4.0">
+ <dependency id="System.Data.SQLite.Core" version="1.0.92.0" />
+ <dependency id="System.Data.SQLite.Linq" version="1.0.92.0" />
+ <dependency id="System.Data.SQLite.EF6" version="1.0.92.0" />
+ </group>
+ <group targetFramework=".NETFramework4.5">
+ <dependency id="System.Data.SQLite.Core" version="1.0.92.0" />
+ <dependency id="System.Data.SQLite.Linq" version="1.0.92.0" />
+ <dependency id="System.Data.SQLite.EF6" version="1.0.92.0" />
+ </group>
+ <group targetFramework=".NETFramework4.5.1">
+ <dependency id="System.Data.SQLite.Core" version="1.0.92.0" />
+ <dependency id="System.Data.SQLite.Linq" version="1.0.92.0" />
+ <dependency id="System.Data.SQLite.EF6" version="1.0.92.0" />
+ </group>
+ </dependencies>
+ </metadata>
+</package>
\ No newline at end of file |
|
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,18 @@ + <?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
+ <metadata>
+ <id>System.Data.SQLite.Core</id>
+ <version>1.0.92.0</version>
+ <title>System.Data.SQLite Core (x86/x64)</title>
+ <authors>SQLite Development Team</authors>
+ <owners>SQLite Development Team</owners>
+ <licenseUrl>http://www.sqlite.org/copyright.html</licenseUrl>
+ <projectUrl>http://system.data.sqlite.org/</projectUrl>
+ <iconUrl>http://system.data.sqlite.org/images/sqlite32.png</iconUrl>
+ <requireLicenseAcceptance>false</requireLicenseAcceptance>
+ <description>The official SQLite database engine for both x86 and x64 along with the ADO.NET provider.</description>
+ <copyright>Public Domain</copyright>
+ <language>en-US</language>
+ <tags>sqlite database ado.net provider interop</tags>
+ </metadata>
+</package>
\ No newline at end of file |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
|
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
|
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
|
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,36 @@ + ###############################################################################
+#
+# install.ps1 --
+#
+# Written by Joe Mistachkin.
+# Released to the public domain, use at your own risk!
+#
+###############################################################################
+
+param($installPath, $toolsPath, $package, $project)
+
+$platformNames = "x86", "x64"
+$fileName = "SQLite.Interop.dll"
+$propertyName = "CopyToOutputDirectory"
+
+foreach($platformName in $platformNames) {
+ $folder = $project.ProjectItems.Item($platformName)
+
+ if ($folder -eq $null) {
+ continue
+ }
+
+ $item = $folder.ProjectItems.Item($fileName)
+
+ if ($item -eq $null) {
+ continue
+ }
+
+ $property = $item.Properties.Item($propertyName)
+
+ if ($property -eq $null) {
+ continue
+ }
+
+ $property.Value = 1
+}
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,36 @@ + ###############################################################################
+#
+# install.ps1 --
+#
+# Written by Joe Mistachkin.
+# Released to the public domain, use at your own risk!
+#
+###############################################################################
+
+param($installPath, $toolsPath, $package, $project)
+
+$platformNames = "x86", "x64"
+$fileName = "SQLite.Interop.dll"
+$propertyName = "CopyToOutputDirectory"
+
+foreach($platformName in $platformNames) {
+ $folder = $project.ProjectItems.Item($platformName)
+
+ if ($folder -eq $null) {
+ continue
+ }
+
+ $item = $folder.ProjectItems.Item($fileName)
+
+ if ($item -eq $null) {
+ continue
+ }
+
+ $property = $item.Properties.Item($propertyName)
+
+ if ($property -eq $null) {
+ continue
+ }
+
+ $property.Value = 1
+}
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,36 @@ + ###############################################################################
+#
+# install.ps1 --
+#
+# Written by Joe Mistachkin.
+# Released to the public domain, use at your own risk!
+#
+###############################################################################
+
+param($installPath, $toolsPath, $package, $project)
+
+$platformNames = "x86", "x64"
+$fileName = "SQLite.Interop.dll"
+$propertyName = "CopyToOutputDirectory"
+
+foreach($platformName in $platformNames) {
+ $folder = $project.ProjectItems.Item($platformName)
+
+ if ($folder -eq $null) {
+ continue
+ }
+
+ $item = $folder.ProjectItems.Item($fileName)
+
+ if ($item -eq $null) {
+ continue
+ }
+
+ $property = $item.Properties.Item($propertyName)
+
+ if ($property -eq $null) {
+ continue
+ }
+
+ $property.Value = 1
+}
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,36 @@ + ###############################################################################
+#
+# install.ps1 --
+#
+# Written by Joe Mistachkin.
+# Released to the public domain, use at your own risk!
+#
+###############################################################################
+
+param($installPath, $toolsPath, $package, $project)
+
+$platformNames = "x86", "x64"
+$fileName = "SQLite.Interop.dll"
+$propertyName = "CopyToOutputDirectory"
+
+foreach($platformName in $platformNames) {
+ $folder = $project.ProjectItems.Item($platformName)
+
+ if ($folder -eq $null) {
+ continue
+ }
+
+ $item = $folder.ProjectItems.Item($fileName)
+
+ if ($item -eq $null) {
+ continue
+ }
+
+ $property = $item.Properties.Item($propertyName)
+
+ if ($property -eq $null) {
+ continue
+ }
+
+ $property.Value = 1
+}
|
|
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,32 @@ + <?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
+ <metadata>
+ <id>System.Data.SQLite.EF6</id>
+ <version>1.0.92.0</version>
+ <title>System.Data.SQLite EF6 (x86/x64)</title>
+ <authors>SQLite Development Team</authors>
+ <owners>SQLite Development Team</owners>
+ <licenseUrl>http://www.sqlite.org/copyright.html</licenseUrl>
+ <projectUrl>http://system.data.sqlite.org/</projectUrl>
+ <iconUrl>http://system.data.sqlite.org/images/sqlite32.png</iconUrl>
+ <requireLicenseAcceptance>false</requireLicenseAcceptance>
+ <description>Support for Entity Framework 6 using System.Data.SQLite.</description>
+ <copyright>Public Domain</copyright>
+ <language>en-US</language>
+ <tags>sqlite database ado.net provider interop</tags>
+ <dependencies>
+ <group targetFramework=".NETFramework4.0">
+ <dependency id="System.Data.SQLite.Core" version="1.0.92.0" />
+ <dependency id="EntityFramework" version="6.0.0.0" />
+ </group>
+ <group targetFramework=".NETFramework4.5">
+ <dependency id="System.Data.SQLite.Core" version="1.0.92.0" />
+ <dependency id="EntityFramework" version="6.0.0.0" />
+ </group>
+ <group targetFramework=".NETFramework4.5.1">
+ <dependency id="System.Data.SQLite.Core" version="1.0.92.0" />
+ <dependency id="EntityFramework" version="6.0.0.0" />
+ </group>
+ </dependencies>
+ </metadata>
+</package>
\ No newline at end of file |
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,12 @@ + <configuration>
+ <system.data>
+ <DbProviderFactories>
+ <remove invariant="System.Data.SQLite" />
+ <remove invariant="System.Data.SQLite.EF6" />
+ <add name="SQLite Data Provider (Entity Framework 6)"
+ invariant="System.Data.SQLite.EF6"
+ description=".Net Framework Data Provider for SQLite (Entity Framework 6)"
+ type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
+ </DbProviderFactories>
+ </system.data>
+</configuration>
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,12 @@ + <configuration>
+ <system.data>
+ <DbProviderFactories>
+ <remove invariant="System.Data.SQLite" />
+ <remove invariant="System.Data.SQLite.EF6" />
+ <add name="SQLite Data Provider (Entity Framework 6)"
+ invariant="System.Data.SQLite.EF6"
+ description=".Net Framework Data Provider for SQLite (Entity Framework 6)"
+ type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
+ </DbProviderFactories>
+ </system.data>
+</configuration>
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,12 @@ + <configuration>
+ <system.data>
+ <DbProviderFactories>
+ <remove invariant="System.Data.SQLite" />
+ <remove invariant="System.Data.SQLite.EF6" />
+ <add name="SQLite Data Provider (Entity Framework 6)"
+ invariant="System.Data.SQLite.EF6"
+ description=".Net Framework Data Provider for SQLite (Entity Framework 6)"
+ type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
+ </DbProviderFactories>
+ </system.data>
+</configuration>
|
Change 1 of 1
|
||
---|---|---|
|
@@ -0,0 +1,12 @@ + <configuration>
+ <system.data>
+ <DbProviderFactories>
+ <remove invariant="System.Data.SQLite" />
+ <remove invariant="System.Data.SQLite.EF6" />
+ <add name="SQLite Data Provider (Entity Framework 6)"
+ invariant="System.Data.SQLite.EF6"
+ description=".Net Framework Data Provider for SQLite (Entity Framework 6)"
+ type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
+ </DbProviderFactories>
+ </system.data>
+</configuration>
|
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
|
|
|
|
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
|
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
||
---|---|---|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
|
|
|
|
|
|
|
|
This file's diff was not loaded because this changeset is very large. Load changes Loading... |
Loading...