.NET Framework  This feature is not supported by the .NET Framework implementation of the Data Provider.

Overview

There are limitations when using the EFCore Provider to access a Teradata SQL Engine. The SQL Engine does not support all the features provided by Entity Framework Core. When possible, the EFCore Provider will throw a NotSupportedException if it detects an unsupported Entity Framework Core feature or a LINQ query that is not supported by the SQL Engine. The Data Provider will throw a TdException if the EFCore Provider does not detect an unsupported feature or generates an unsupported SQL statement.

In the discussions of the limitations, examples may be given on what causes these exceptions to be thrown. There may not always be a concise example that demonstrates a pattern in a LINQ statement that will cause an exception, because the structure of the SQL statements is affected by the Model and the LINQ statements.

Modeling Limitations

The following Entity Framework Core concepts are not supported by the EFCore Provider because they are not supported by the SQL Engine:

The following SQL Engine features are not supported by the EFCore Provider:

Query Limitations

The following query limitations exist:

Migrations Limitations

The Teradata SQL Engine does not support the relational database concept of "schema" and only supports a two-part naming convention for qualified object names (i.e., "DatabaseName.TableName", not "catalog.schema.table"). However, a schema may be considered functionally equivalent to a database object in the Teradata SQL Engine. Therefore, schemas are mapped to database objects by the Teradata EFCore Provider. ModelBuilder extensions are provided to annotate such database objects appropriately.

The EnsureSchema migration operation is supposed to only create the schema if it does not already exist. Due to limitations of the SQL Engine, this operation requires the use of a stored procedure. A procedure named "__EFEnsureSchemaProc" is created in the default database automatically during the initial migration for this purpose. This procedure is only required for Migrations with schemas and may be dropped manually if it is no longer needed.

Scaffolding Limitations

Limitations Using the Current Session Character Set

It is recommended to use a Unicode session character set in order to fully support all object names in the EFCore Provider. If a character cannot be represented within the current client session character set, the Teradata SQL Engine will return a translation error character in the object name. The object name in this form cannot be submitted back to Teradata. For this reason, the session character set that is used to generate the Model must also be used in generating queries.

For more information on extended object name support in the .NET Data Provider see Extended Object Names in the Data Provider.