-
Notifications
You must be signed in to change notification settings - Fork 38
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.
EntityFrameworkCore.Jet uses OleDB provider for Microsoft Access to access to mdb and accdb files. Microsoft says that only 32bit or 64bit of the OleDB provider can be installed (but you can find some articles to install both). If you have Microsoft Access installed, the platform of the OleDB provider is the same of Microsoft Access (usually 32bits). When you compile your .Net application you have to choose the right Platform or it could not run. The provider published on NuGet (https://www.nuget.org/packages/EntityFrameworkCore.Jet/) is compiled with AnyCPU Platform.
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 | ✔ | ✔ |
CreateIndex | ✔ | ✔ |
CreateTable | ✔ | ✔ |
DropColumn | ✔ | ✔ |
DropForeignKey | ✔ | ✔ |
DropIndex | ✔ | ✔ |
DropPrimaryKey | ✔ | ✔ |
DropTable | ✔ | ✔ |
DropUniqueConstraint | ✔ | ✔ |
RenameColumn | ✗ | ✔ |
RenameIndex | ✗ | ✔ |
RenameTable | ✗ | ✔ |
AlterSequence | ✗ | ✗ |
CreateSchema | ✗ | ✗ |
CreateSequence | ✗ | ✗ |
DropSchema | ✗ | ✗ |
DropSequence | ✗ | ✗ |
RenameSequence | ✗ | ✗ |
RestartSequence | ✗ | ✗ |
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.