-
Notifications
You must be signed in to change notification settings - Fork 35
Limitations
When using the Jet provider, there are a few limitations you should be aware of. Most of these are a result of limitations in the underlying database engine and are not specific to Entity Framework Core.
The common relational library (shared by Entity Framework relational database providers) defines APIs for modelling concepts that are common to most relational database engines. Unsupported concepts: * Schemas * Sequences * Rowversion
Unsupported concepts implemented by the provider with some limitations * Guid
Unsupported concepts masked by the provider * DateTimeOffsett * Ansi strings
The Jet database engine does not support some schema operations that are supported by the majority of other relational databases. These operations are implemented using ADOX dll. If the dll is not installed the provider runs but some of the migration operations are not supported.
Operation | Native DDL Support | ADOX Support |
---|---|---|
AddColumn | ✔ | ✔ |
AddForeignKey | ✔ | ✔ |
AddPrimaryKey | ✔ | ✔ |
AddUniqueConstraint | ✔ | ✔ |
AlterColumn | ✔ | ✔ |
AlterSequence | ✗ | ✗ |
CreateIndex | ✔ | ✔ |
CreateSchema | ✗ | ✗ |
CreateSequence | ✗ | ✗ |
CreateTable | ✔ | ✔ |
DropColumn | ✔ | ✔ |
DropForeignKey | ✔ | ✔ |
DropIndex | ✔ | ✔ |
DropPrimaryKey | ✔ | ✔ |
DropSchema | ✗ | ✗ |
DropSequence | ✗ | ✗ |
DropTable | ✔ | ✔ |
DropUniqueConstraint | ✔ | ✔ |
RenameColumn | ✗ | ✔ |
RenameIndex | ✔ | ✔ |
RenameSequence | ✗ | ✗ |
RenameTable | ✔ | ✔ |
RestartSequence | ✗ | ✗ |
Tip
You can workaround some of these limitations by manually writing code in your migrations to perform a table rebuild. A table rebuild involves renaming the existing table, creating a new table, copying data to the new table, and dropping the old table. You will need to use the Sql(string)
method to perform some of these steps.
Common databases consider a reference null if one of the columns of the foreign key constraint is null. On Jet, to have a null reference, all the columns of a foreign key constraint must be set to null.