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.