Class LinqToDBForEFTools
- Namespace
- LinqToDB.EntityFrameworkCore
- Assembly
- linq2db.EntityFrameworkCore.dll
EF Core DbContext extensions to call LINQ To DB functionality.
public static class LinqToDBForEFTools
- Inheritance
-
LinqToDBForEFTools
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 static bool EnableChangeTracker { get; set; }
Property Value
Implementation
Gets or sets EF Core to LINQ To DB integration bridge implementation.
public static ILinqToDBForEFTools Implementation { get; set; }
Property Value
Methods
BulkCopyAsync<T>(DbContext, BulkCopyOptions, IAsyncEnumerable<T>, CancellationToken)
Asynchronously performs bulk insert operation.
public static Task<BulkCopyRowsCopied> BulkCopyAsync<T>(this DbContext context, BulkCopyOptions options, IAsyncEnumerable<T> source, CancellationToken cancellationToken = default) where T : class
Parameters
context
DbContextDatabase context.
options
BulkCopyOptionsOperation options.
source
IAsyncEnumerable<T>Records to insert.
cancellationToken
CancellationTokenAsynchronous operation cancellation token.
Returns
- Task<BulkCopyRowsCopied>
Task with bulk insert operation status.
Type Parameters
T
Mapping type of inserted record.
BulkCopyAsync<T>(DbContext, BulkCopyOptions, IEnumerable<T>, CancellationToken)
Asynchronously performs bulk insert operation.
public static Task<BulkCopyRowsCopied> BulkCopyAsync<T>(this DbContext context, BulkCopyOptions options, IEnumerable<T> source, CancellationToken cancellationToken = default) where T : class
Parameters
context
DbContextDatabase context.
options
BulkCopyOptionsOperation options.
source
IEnumerable<T>Records to insert.
cancellationToken
CancellationTokenAsynchronous operation cancellation token.
Returns
- Task<BulkCopyRowsCopied>
Task with bulk insert operation status.
Type Parameters
T
Mapping type of inserted record.
BulkCopyAsync<T>(DbContext, IAsyncEnumerable<T>, CancellationToken)
Asynchronously performs bulk insert operation.
public static Task<BulkCopyRowsCopied> BulkCopyAsync<T>(this DbContext context, IAsyncEnumerable<T> source, CancellationToken cancellationToken = default) where T : class
Parameters
context
DbContextDatabase context.
source
IAsyncEnumerable<T>Records to insert.
cancellationToken
CancellationTokenAsynchronous operation cancellation token.
Returns
- Task<BulkCopyRowsCopied>
Task with bulk insert operation status.
Type Parameters
T
Mapping type of inserted record.
BulkCopyAsync<T>(DbContext, IEnumerable<T>, CancellationToken)
Asynchronously performs bulk insert operation.
public static Task<BulkCopyRowsCopied> BulkCopyAsync<T>(this DbContext context, IEnumerable<T> source, CancellationToken cancellationToken = default) where T : class
Parameters
context
DbContextDatabase context.
source
IEnumerable<T>Records to insert.
cancellationToken
CancellationTokenAsynchronous operation cancellation token.
Returns
- Task<BulkCopyRowsCopied>
Task with bulk insert operation status.
Type Parameters
T
Mapping type of inserted record.
BulkCopyAsync<T>(DbContext, int, IAsyncEnumerable<T>, CancellationToken)
Asynchronously performs bulk insert operation.
public static Task<BulkCopyRowsCopied> BulkCopyAsync<T>(this DbContext context, int maxBatchSize, IAsyncEnumerable<T> source, CancellationToken cancellationToken = default) where T : class
Parameters
context
DbContextDatabase context.
maxBatchSize
intNumber of rows in each batch. At the end of each batch, the rows in the batch are sent to the server.
source
IAsyncEnumerable<T>Records to insert.
cancellationToken
CancellationTokenAsynchronous operation cancellation token.
Returns
- Task<BulkCopyRowsCopied>
Task with bulk insert operation status.
Type Parameters
T
Mapping type of inserted record.
BulkCopyAsync<T>(DbContext, int, IEnumerable<T>, CancellationToken)
Asynchronously performs bulk insert operation.
public static Task<BulkCopyRowsCopied> BulkCopyAsync<T>(this DbContext context, int maxBatchSize, IEnumerable<T> source, CancellationToken cancellationToken = default) where T : class
Parameters
context
DbContextDatabase context.
maxBatchSize
intNumber of rows in each batch. At the end of each batch, the rows in the batch are sent to the server.
source
IEnumerable<T>Records to insert.
cancellationToken
CancellationTokenAsynchronous operation cancellation token.
Returns
- Task<BulkCopyRowsCopied>
Task with bulk insert operation status.
Type Parameters
T
Mapping type of inserted record.
BulkCopy<T>(DbContext, BulkCopyOptions, IEnumerable<T>)
Performs bulk insert operation.
public static BulkCopyRowsCopied BulkCopy<T>(this DbContext context, BulkCopyOptions options, IEnumerable<T> source) where T : class
Parameters
context
DbContextDatabase context.
options
BulkCopyOptionsOperation options.
source
IEnumerable<T>Records to insert.
Returns
- BulkCopyRowsCopied
Bulk insert operation status.
Type Parameters
T
Mapping type of inserted record.
BulkCopy<T>(DbContext, IEnumerable<T>)
Performs bulk insert operation.
public static BulkCopyRowsCopied BulkCopy<T>(this DbContext context, IEnumerable<T> source) where T : class
Parameters
context
DbContextDatabase context.
source
IEnumerable<T>Records to insert.
Returns
- BulkCopyRowsCopied
Bulk insert operation status.
Type Parameters
T
Mapping type of inserted record.
BulkCopy<T>(DbContext, int, IEnumerable<T>)
Performs bulk insert operation.
public static BulkCopyRowsCopied BulkCopy<T>(this DbContext context, int maxBatchSize, IEnumerable<T> source) where T : class
Parameters
context
DbContextDatabase context.
maxBatchSize
intNumber of rows in each batch. At the end of each batch, the rows in the batch are sent to the server.
source
IEnumerable<T>Records to insert.
Returns
- BulkCopyRowsCopied
Bulk insert operation status.
Type Parameters
T
Mapping type of inserted record.
ClearCaches()
Clears internal caches
public static void ClearCaches()
CreateLinq2DbConnectionDetached(DbContext)
Creates LINQ To DB DataConnection instance that creates new database connection using connection information from EF Core DbContext instance.
[Obsolete("Use CreateLinqToDBConnectionDetached overload.")]
public static DataConnection CreateLinq2DbConnectionDetached(this DbContext context)
Parameters
Returns
- DataConnection
LINQ To DB DataConnection instance.
CreateLinqToDBConnection(DbContext, IDbContextTransaction?)
Creates LINQ To DB DataConnection instance, attached to provided EF Core DbContext instance connection and transaction.
public static DataConnection CreateLinqToDBConnection(this DbContext context, IDbContextTransaction? transaction = null)
Parameters
context
DbContextEF Core DbContext instance.
transaction
IDbContextTransactionOptional transaction instance, to which created connection should be attached. If not specified, will use current DbContext transaction if it available.
Returns
- DataConnection
LINQ To DB DataConnection instance.
CreateLinqToDBConnection(DbContextOptions)
Creates new LINQ To DB DataConnection instance using connectivity information from EF Core DbContextOptions instance.
public static DataConnection CreateLinqToDBConnection(this DbContextOptions options)
Parameters
options
DbContextOptionsEF Core DbContextOptions instance.
Returns
- DataConnection
New LINQ To DB DataConnection instance.
CreateLinqToDBConnectionDetached(DbContext)
Creates LINQ To DB DataConnection instance that creates new database connection using connection information from EF Core DbContext instance.
public static DataConnection CreateLinqToDBConnectionDetached(this DbContext context)
Parameters
Returns
- DataConnection
LINQ To DB DataConnection instance.
CreateLinqToDBContext(DbContext, IDbContextTransaction?)
Creates Linq To DB data context for EF Core database context.
public static IDataContext CreateLinqToDBContext(this DbContext context, IDbContextTransaction? transaction = null)
Parameters
context
DbContextEF Core database context.
transaction
IDbContextTransactionTransaction instance.
Returns
- IDataContext
Linq To DB data context.
CreateLinqToDbConnection(DbContext, IDbContextTransaction?)
Creates LINQ To DB DataConnection instance, attached to provided EF Core DbContext instance connection and transaction.
[Obsolete("Use CreateLinqToDBConnection overload.")]
public static DataConnection CreateLinqToDbConnection(this DbContext context, IDbContextTransaction? transaction = null)
Parameters
context
DbContextEF Core DbContext instance.
transaction
IDbContextTransactionOptional transaction instance, to which created connection should be attached. If not specified, will use current DbContext transaction if it available.
Returns
- DataConnection
LINQ To DB DataConnection instance.
CreateLinqToDbConnection(DbContextOptions)
Creates new LINQ To DB DataConnection instance using connectivity information from EF Core DbContextOptions instance.
[Obsolete("Use CreateLinqToDBConnection overload.")]
public static DataConnection CreateLinqToDbConnection(this DbContextOptions options)
Parameters
options
DbContextOptionsEF Core DbContextOptions instance.
Returns
- DataConnection
New LINQ To DB DataConnection instance.
CreateLinqToDbContext(DbContext, IDbContextTransaction?)
Creates Linq To DB data context for EF Core database context.
[Obsolete("Use CreateLinqToDBContext overload.")]
public static IDataContext CreateLinqToDbContext(this DbContext context, IDbContextTransaction? transaction = null)
Parameters
context
DbContextEF Core database context.
transaction
IDbContextTransactionTransaction instance.
Returns
- IDataContext
Linq To DB data context.
CreateLogger(IDbContextOptions?)
Creates logger instance.
public static ILogger? CreateLogger(IDbContextOptions? options)
Parameters
options
IDbContextOptionsDbContext options.
Returns
- ILogger
Logger instance.
GetConnectionInfo(EFProviderInfo)
Extracts database connection information from EF Core provider data.
public static EFConnectionInfo GetConnectionInfo(EFProviderInfo info)
Parameters
info
EFProviderInfoEF Core database provider data.
Returns
- EFConnectionInfo
Database connection information.
GetContextOptions(DbContext)
Returns EF Core DbContextOptions for specific DbContext instance.
public static IDbContextOptions? GetContextOptions(DbContext context)
Parameters
Returns
- IDbContextOptions
DbContextOptions instance.
GetCurrentContext(IQueryable)
Extracts DbContext instance from IQueryable object.
public static 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.
public static IDataProvider GetDataProvider(DataOptions options, EFProviderInfo info, EFConnectionInfo connectionInfo)
Parameters
options
DataOptionsLinq To DB context options.
info
EFProviderInfoEF Core provider information.
connectionInfo
EFConnectionInfoDatabase connection information.
Returns
- IDataProvider
LINQ TO DB provider instance.
GetEFProviderInfo(DbContext)
Returns EF Core database provider information for specific DbContext instance.
public static EFProviderInfo GetEFProviderInfo(DbContext context)
Parameters
Returns
- EFProviderInfo
EF Core provider information.
GetEFProviderInfo(DbContextOptions)
Returns EF Core database provider information for specific DbContextOptions instance.
public static EFProviderInfo GetEFProviderInfo(DbContextOptions options)
Parameters
options
DbContextOptionsEF Core DbContextOptions instance.
Returns
- EFProviderInfo
EF Core provider information.
GetEFProviderInfo(DbConnection)
Returns EF Core database provider information for specific DbConnection instance.
public static EFProviderInfo GetEFProviderInfo(DbConnection connection)
Parameters
connection
DbConnectionEF Core DbConnection instance.
Returns
- EFProviderInfo
EF Core provider information.
GetLinqToDBOptions(DbContext)
Returns Linq To DB context options from EF Context.
public static DataOptions? GetLinqToDBOptions(this DbContext context)
Parameters
context
DbContext
Returns
- DataOptions
Db context object.
GetLinqToDBOptions(IDbContextOptions)
Returns Linq To DB context options from EF Context options.
public static DataOptions? GetLinqToDBOptions(this IDbContextOptions contextOptions)
Parameters
contextOptions
IDbContextOptions
Returns
- DataOptions
Db context options.
GetMappingSchema(IModel, IInfrastructure<IServiceProvider>?, DataOptions?)
Creates mapping schema using provided EF Core data model.
public static MappingSchema GetMappingSchema(IModel model, IInfrastructure<IServiceProvider>? accessor, DataOptions? dataOptions)
Parameters
model
IModelEF Core data model.
accessor
IInfrastructure<IServiceProvider>EF Core service provider.
dataOptions
DataOptionsLinq To DB context options.
Returns
- MappingSchema
Mapping schema for provided EF Core model.
GetMetadataReader(IModel?, IInfrastructure<IServiceProvider>?)
Creates or return existing metadata provider for provided EF Core data model. If model is null, empty metadata provider will be returned.
public static IMetadataReader? GetMetadataReader(IModel? model, IInfrastructure<IServiceProvider>? accessor)
Parameters
model
IModelEF Core data model instance. Could be
null
.accessor
IInfrastructure<IServiceProvider>EF Core service provider.
Returns
- IMetadataReader
LINQ To DB metadata provider.
GetModel(DbContextOptions?)
Extracts EF Core data model instance from DbContextOptions.
public static IModel? GetModel(DbContextOptions? options)
Parameters
options
DbContextOptionsDbContextOptions instance.
Returns
- IModel
EF Core data model instance.
GetTable<T>(DbContext)
Returns queryable source for specified mapping class for current DBContext, mapped to database table or view.
public static ITable<T> GetTable<T>(this DbContext context) where T : class
Parameters
context
DbContext
Returns
- ITable<T>
Queryable source.
Type Parameters
T
Mapping class type.
Initialize()
Initializes integration of LINQ To DB with EF Core.
public static void Initialize()
Into<T>(DbContext, ITable<T>)
Starts LINQ query definition for insert operation.
public static IValueInsertable<T> Into<T>(this DbContext context, ITable<T> target) where T : notnull
Parameters
Returns
- IValueInsertable<T>
Insertable source query.
Type Parameters
T
Target table mapping class.
ToLinqToDBTable<T>(DbSet<T>)
Converts EF.Core DbSet<TEntity> instance to LINQ To DB ITable<T> instance.
public static ITable<T> ToLinqToDBTable<T>(this DbSet<T> dbSet) where T : class
Parameters
dbSet
DbSet<T>EF.Core DbSet<TEntity> instance.
Returns
Type Parameters
T
Mapping entity type.
ToLinqToDBTable<T>(DbSet<T>, IDataContext)
Converts EF.Core DbSet<TEntity> instance to LINQ To DB ITable<T> instance using existing LINQ To DB IDataContext instance.
public static ITable<T> ToLinqToDBTable<T>(this DbSet<T> dbSet, IDataContext dataContext) where T : class
Parameters
dbSet
DbSet<T>EF.Core DbSet<TEntity> instance.
dataContext
IDataContextLINQ To DB data context instance.
Returns
Type Parameters
T
Mapping entity type.
ToLinqToDB<T>(IQueryable<T>)
Converts EF Core's query to LINQ To DB query and attach it to current EF Core connection.
public static IQueryable<T> ToLinqToDB<T>(this IQueryable<T> query)
Parameters
query
IQueryable<T>EF Core query.
Returns
- IQueryable<T>
LINQ To DB query, attached to current EF Core connection.
Type Parameters
T
Entity type.
ToLinqToDB<T>(IQueryable<T>, IDataContext)
Converts EF Core's query to LINQ To DB query and attach it to provided LINQ To DB IDataContext.
public static IQueryable<T> ToLinqToDB<T>(this IQueryable<T> query, IDataContext dc)
Parameters
query
IQueryable<T>EF Core query.
dc
IDataContextLINQ To DB IDataContext to use with provided query.
Returns
- IQueryable<T>
LINQ To DB query, attached to provided IDataContext.
Type Parameters
T
Entity type.
TransformExpression(Expression, IDataContext?, DbContext?, IModel?)
Transforms EF Core expression tree to LINQ To DB expression.
public static 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.
UseLinqToDB(DbContextOptionsBuilder, Action<LinqToDBContextOptionsBuilder>?)
Registers custom options related to LinqToDB provider.
public static DbContextOptionsBuilder UseLinqToDB(this DbContextOptionsBuilder optionsBuilder, Action<LinqToDBContextOptionsBuilder>? linq2dbOptionsAction = null)
Parameters
optionsBuilder
DbContextOptionsBuilderlinq2dbOptionsAction
Action<LinqToDBContextOptionsBuilder>Custom options action.
Returns
UseLinqToDb(DbContextOptionsBuilder, Action<LinqToDBContextOptionsBuilder>?)
Registers custom options related to LinqToDB provider.
[Obsolete("Use UseLinqToDB overload.")]
public static DbContextOptionsBuilder UseLinqToDb(this DbContextOptionsBuilder optionsBuilder, Action<LinqToDBContextOptionsBuilder>? linq2dbOptionsAction = null)
Parameters
optionsBuilder
DbContextOptionsBuilderlinq2dbOptionsAction
Action<LinqToDBContextOptionsBuilder>Custom options action.