Class LinqToDBForEFToolsImplDefault
- Namespace
- LinqToDB.EntityFrameworkCore
- Assembly
- linq2db.EntityFrameworkCore.dll
Default EF Core - LINQ To DB integration bridge implementation.
public class LinqToDBForEFToolsImplDefault : ILinqToDBForEFTools
- Inheritance
-
LinqToDBForEFToolsImplDefault
- Implements
Properties
EnableChangeTracker
Enables attaching entities to change tracker. Entities will be attached only if AsNoTracking() is not used in query and DbContext is configured to track entities.
public virtual bool EnableChangeTracker { get; set; }
Property Value
PostgreSqlDefaultVersion
Gets or sets default provider version for PostgreSQL Server. Set to v93 dialect.
public static PostgreSQLVersion PostgreSqlDefaultVersion { get; set; }
Property Value
SqlServerDefaultVersion
Gets or sets default provider version for SQL Server. Set to v2008 dialect.
public static SqlServerVersion SqlServerDefaultVersion { get; set; }
Property Value
Methods
ClearCaches()
Force clear of internal caches.
public virtual void ClearCaches()
CompactExpression(Expression)
Compacts expression to handle big filters.
public static Expression CompactExpression(Expression expression)
Parameters
expression
Expression
Returns
- Expression
Compacted expression.
CreateLinqToDBDataProvider(EFProviderInfo, LinqToDBProviderInfo, EFConnectionInfo)
Creates instance of Linq To DB database provider.
protected virtual IDataProvider CreateLinqToDBDataProvider(EFProviderInfo providerInfo, LinqToDBProviderInfo provInfo, EFConnectionInfo connectionInfo)
Parameters
providerInfo
EFProviderInfoEF Core provider settings.
provInfo
LinqToDBProviderInfoLinq To DB provider settings.
connectionInfo
EFConnectionInfoEF Core connection settings.
Returns
- IDataProvider
Linq To DB database provider.
CreateLogger(IDbContextOptions?)
Creates logger instance.
public virtual ILogger? CreateLogger(IDbContextOptions? options)
Parameters
options
IDbContextOptionsDbContext options.
Returns
- ILogger
Logger instance.
CreateMappingSchema(IModel, IMetadataReader?, IValueConverterSelector?, DataOptions)
Creates mapping schema using provided EF Core data model and metadata provider.
public virtual MappingSchema CreateMappingSchema(IModel model, IMetadataReader? metadataReader, IValueConverterSelector? convertorSelector, DataOptions dataOptions)
Parameters
model
IModelEF Core data model.
metadataReader
IMetadataReaderAdditional optional LINQ To DB database metadata provider.
convertorSelector
IValueConverterSelectordataOptions
DataOptionsLinq To DB context options.
Returns
- MappingSchema
Mapping schema for provided EF.Core model.
CreateMetadataReader(IModel?, IInfrastructure<IServiceProvider>?)
Creates metadata provider for specified EF Core data model. Default implementation uses LinqToDB.EntityFrameworkCore.EFCoreMetadataReader metadata provider.
public virtual IMetadataReader CreateMetadataReader(IModel? model, IInfrastructure<IServiceProvider>? accessor)
Parameters
model
IModelEF Core data model.
accessor
IInfrastructure<IServiceProvider>EF Core service provider.
Returns
- IMetadataReader
LINQ To DB metadata provider for specified EF Core model.
CreatePostgreSqlProvider(PostgreSQLVersion, string?)
Creates Linq To DB PostgreSQL database provider instance.
protected virtual IDataProvider CreatePostgreSqlProvider(PostgreSQLVersion version, string? connectionString)
Parameters
version
PostgreSQLVersionPostgreSQL dialect.
connectionString
stringConnection string.
Returns
- IDataProvider
Linq To DB PostgreSQL provider instance.
CreateSqlServerProvider(SqlServerVersion, string?)
Creates Linq To DB SQL Server database provider instance.
protected virtual IDataProvider CreateSqlServerProvider(SqlServerVersion version, string? connectionString)
Parameters
version
SqlServerVersionSQL Server dialect.
connectionString
stringConnection string.
Returns
- IDataProvider
Linq To DB SQL Server provider instance.
DefineConvertors(MappingSchema, IModel, IValueConverterSelector?, DataOptions)
Import type conversions from EF Core model into Linq To DB mapping schema.
public virtual void DefineConvertors(MappingSchema mappingSchema, IModel model, IValueConverterSelector? convertorSelector, DataOptions dataOptions)
Parameters
mappingSchema
MappingSchemaLinq To DB mapping schema.
model
IModelEF Core data mode.
convertorSelector
IValueConverterSelectorType filter.
dataOptions
DataOptionsLinq To DB context options.
EvaluateExpression(Expression?)
Evaluates value of expression.
public static object? EvaluateExpression(Expression? expr)
Parameters
expr
ExpressionExpression to evaluate.
Returns
- object
Expression value.
ExtractConnectionInfo(IDbContextOptions?)
Extracts EF Core connection information object from IDbContextOptions.
public virtual EFConnectionInfo ExtractConnectionInfo(IDbContextOptions? options)
Parameters
options
IDbContextOptionsIDbContextOptions instance.
Returns
- EFConnectionInfo
EF Core connection data.
ExtractModel(IDbContextOptions?)
Extracts EF Core data model instance from IDbContextOptions.
public virtual IModel? ExtractModel(IDbContextOptions? options)
Parameters
options
IDbContextOptionsIDbContextOptions instance.
Returns
- IModel
EF Core data model instance.
GetContextOptions(DbContext?)
Returns EF Core IDbContextOptions for specific DbContext instance.
public virtual IDbContextOptions? GetContextOptions(DbContext? context)
Parameters
Returns
- IDbContextOptions
IDbContextOptions instance.
GetCurrentContext(IQueryable)
Extracts DbContext instance from IQueryable object. Due to unavailability of integration API in EF Core this method use reflection and could became broken after EF Core update.
public virtual DbContext? GetCurrentContext(IQueryable query)
Parameters
query
IQueryableEF Core query.
Returns
GetDataProvider(DataOptions, EFProviderInfo, EFConnectionInfo)
Returns LINQ To DB provider, based on provider data from EF Core. Could be overridden if you have issues with default detection mechanisms.
public virtual IDataProvider GetDataProvider(DataOptions options, EFProviderInfo providerInfo, EFConnectionInfo connectionInfo)
Parameters
options
DataOptionsLinq To DB context options.
providerInfo
EFProviderInfoProvider information, extracted from EF Core.
connectionInfo
EFConnectionInfo
Returns
- IDataProvider
LINQ TO DB provider instance.
GetLinqToDBProviderInfo(EFProviderInfo)
Converts EF Core provider settings to Linq To DB provider settings.
protected virtual LinqToDBProviderInfo GetLinqToDBProviderInfo(EFProviderInfo providerInfo)
Parameters
providerInfo
EFProviderInfoEF Core provider settings.
Returns
- LinqToDBProviderInfo
Linq To DB provider settings.
GetLinqToDBProviderInfo(DatabaseFacade)
Creates Linq To DB provider settings object from DatabaseFacade instance.
protected virtual LinqToDBProviderInfo? GetLinqToDBProviderInfo(DatabaseFacade database)
Parameters
database
DatabaseFacadeEF Core database information object.
Returns
- LinqToDBProviderInfo
Linq To DB provider settings.
GetLinqToDBProviderInfo(RelationalOptionsExtension)
Creates Linq To DB provider settings object from RelationalOptionsExtension instance.
protected virtual LinqToDBProviderInfo? GetLinqToDBProviderInfo(RelationalOptionsExtension extensions)
Parameters
extensions
RelationalOptionsExtensionEF Core provider options.
Returns
- LinqToDBProviderInfo
Linq To DB provider settings.
GetLinqToDBProviderInfo(DbConnection)
Creates Linq To DB provider settings object from DbConnection instance.
protected virtual LinqToDBProviderInfo? GetLinqToDBProviderInfo(DbConnection connection)
Parameters
connection
DbConnectionDatabase connection.
Returns
- LinqToDBProviderInfo
Linq To DB provider settings.
GetMappingSchema(IModel, IMetadataReader?, IValueConverterSelector?, DataOptions?)
Returns mapping schema using provided EF Core data model and metadata provider.
public virtual MappingSchema GetMappingSchema(IModel model, IMetadataReader? metadataReader, IValueConverterSelector? convertorSelector, DataOptions? dataOptions)
Parameters
model
IModelEF Core data model.
metadataReader
IMetadataReaderAdditional optional LINQ To DB database metadata provider.
convertorSelector
IValueConverterSelectordataOptions
DataOptionsLinq To DB context options.
Returns
- MappingSchema
Mapping schema for provided EF.Core model.
GetPropValue<TValue>(object, string)
Gets current property value via reflection.
protected static TValue GetPropValue<TValue>(object obj, string propName)
Parameters
Returns
- TValue
Property value.
Type Parameters
TValue
Property value type.
Exceptions
IsQueryable(MethodCallExpression, bool)
Tests that method is IQueryable<T> extension.
public static bool IsQueryable(MethodCallExpression method, bool enumerable = true)
Parameters
method
MethodCallExpressionMethod to test.
enumerable
boolAllow IEnumerable<T> extensions.
Returns
- bool
true
if method is IQueryable<T> extension.
LogConnectionTrace(TraceInfo, ILogger)
Logs lin2db trace event to logger.
public virtual void LogConnectionTrace(TraceInfo info, ILogger logger)
Parameters
TransformExpression(Expression, IDataContext?, DbContext?, IModel?)
Transforms EF Core expression tree to LINQ To DB expression. Method replaces EF Core EntityQueryable<TResult> instances with LINQ To DB GetTable<T>(IDataContext) calls.
public virtual Expression TransformExpression(Expression expression, IDataContext? dc, DbContext? ctx, IModel? model)
Parameters
expression
ExpressionEF Core expression tree.
dc
IDataContextLINQ To DB IDataContext instance.
ctx
DbContextOptional DbContext instance.
model
IModelEF Core data model instance.
Returns
- Expression
Transformed expression.
TransformQueryRootExpression(IDataContext, QueryRootExpression)
Transforms QueryRootExpression descendants to linq2db analogue. Handles Temporal tables also.
protected virtual Expression TransformQueryRootExpression(IDataContext dc, QueryRootExpression queryRoot)
Parameters
dc
IDataContextData context.
queryRoot
QueryRootExpressionQuery root expression
Returns
- Expression
Transformed expression.
Unwrap(Expression?)
Removes conversions from expression.
public static Expression? Unwrap(Expression? ex)
Parameters
ex
ExpressionExpression.
Returns
- Expression
Unwrapped expression.