|
12 | 12 | using Microsoft.Extensions.Logging;
|
13 | 13 |
|
14 | 14 | using JetBrains.Annotations;
|
| 15 | +using Microsoft.EntityFrameworkCore.Diagnostics; |
15 | 16 | using Microsoft.EntityFrameworkCore.Query;
|
16 | 17 | using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
|
17 | 18 |
|
@@ -94,7 +95,7 @@ public static ILinqToDBForEFTools Implementation
|
94 | 95 | {
|
95 | 96 | _implementation = value ?? throw new ArgumentNullException(nameof(value));
|
96 | 97 | _metadataReaders.Clear();
|
97 |
| - _defaultMetadataReader = new Lazy<IMetadataReader>(() => Implementation.CreateMetadataReader(null, null, null)); |
| 98 | + _defaultMetadataReader = new Lazy<IMetadataReader>(() => Implementation.CreateMetadataReader(null, null, null, null)); |
98 | 99 | }
|
99 | 100 | }
|
100 | 101 |
|
@@ -125,14 +126,15 @@ static LinqToDBForEFTools()
|
125 | 126 | /// <param name="model">EF.Core data model instance. Could be <c>null</c>.</param>
|
126 | 127 | /// <param name="dependencies"></param>
|
127 | 128 | /// <param name="mappingSource"></param>
|
| 129 | + /// <param name="logger"></param> |
128 | 130 | /// <returns>LINQ To DB metadata provider.</returns>
|
129 | 131 | public static IMetadataReader GetMetadataReader([JetBrains.Annotations.CanBeNull] IModel model,
|
130 |
| - RelationalSqlTranslatingExpressionVisitorDependencies dependencies, IRelationalTypeMappingSource mappingSource) |
| 132 | + RelationalSqlTranslatingExpressionVisitorDependencies dependencies, IRelationalTypeMappingSource mappingSource, IDiagnosticsLogger<DbLoggerCategory.Query> logger) |
131 | 133 | {
|
132 | 134 | if (model == null)
|
133 | 135 | return _defaultMetadataReader.Value;
|
134 | 136 |
|
135 |
| - return _metadataReaders.GetOrAdd(model, m => Implementation.CreateMetadataReader(model, dependencies, mappingSource)); |
| 137 | + return _metadataReaders.GetOrAdd(model, m => Implementation.CreateMetadataReader(model, dependencies, mappingSource, logger)); |
136 | 138 | }
|
137 | 139 |
|
138 | 140 | /// <summary>
|
@@ -219,13 +221,15 @@ public static IDataProvider GetDataProvider(EFProviderInfo info, EFConnectionInf
|
219 | 221 | /// <param name="convertorSelector">EF Core registry for type conversion.</param>
|
220 | 222 | /// <param name="dependencies"></param>
|
221 | 223 | /// <param name="mappingSource"></param>
|
| 224 | + /// <param name="logger"></param> |
222 | 225 | /// <returns>Mapping schema for provided EF.Core model.</returns>
|
223 | 226 | public static MappingSchema GetMappingSchema(IModel model,
|
224 | 227 | IValueConverterSelector convertorSelector,
|
225 | 228 | RelationalSqlTranslatingExpressionVisitorDependencies dependencies,
|
226 |
| - IRelationalTypeMappingSource mappingSource) |
| 229 | + IRelationalTypeMappingSource mappingSource, |
| 230 | + IDiagnosticsLogger<DbLoggerCategory.Query> logger) |
227 | 231 | {
|
228 |
| - return Implementation.GetMappingSchema(model, GetMetadataReader(model, dependencies, mappingSource), convertorSelector); |
| 232 | + return Implementation.GetMappingSchema(model, GetMetadataReader(model, dependencies, mappingSource, logger), convertorSelector); |
229 | 233 | }
|
230 | 234 |
|
231 | 235 | /// <summary>
|
@@ -292,7 +296,8 @@ public static DataConnection CreateLinqToDbConnection(this DbContext context,
|
292 | 296 | var dependencies = context.GetService<RelationalSqlTranslatingExpressionVisitorDependencies>();
|
293 | 297 | var mappingSource = context.GetService<IRelationalTypeMappingSource>();
|
294 | 298 | var converters = context.GetService<IValueConverterSelector>();
|
295 |
| - var mappingSchema = GetMappingSchema(context.Model, converters, dependencies, mappingSource); |
| 299 | + var dLogger = context.GetService<IDiagnosticsLogger<DbLoggerCategory.Query>>(); |
| 300 | + var mappingSchema = GetMappingSchema(context.Model, converters, dependencies, mappingSource, dLogger); |
296 | 301 | if (mappingSchema != null)
|
297 | 302 | dc.AddMappingSchema(mappingSchema);
|
298 | 303 |
|
@@ -329,7 +334,8 @@ public static IDataContext CreateLinqToDbContext(this DbContext context,
|
329 | 334 | var dependencies = context.GetService<RelationalSqlTranslatingExpressionVisitorDependencies>();
|
330 | 335 | var mappingSource = context.GetService<IRelationalTypeMappingSource>();
|
331 | 336 | var converters = context.GetService<IValueConverterSelector>();
|
332 |
| - var mappingSchema = GetMappingSchema(context.Model, converters, dependencies, mappingSource); |
| 337 | + var dLogger = context.GetService<IDiagnosticsLogger<DbLoggerCategory.Query>>(); |
| 338 | + var mappingSchema = GetMappingSchema(context.Model, converters, dependencies, mappingSource, dLogger); |
333 | 339 | var logger = CreateLogger(info.Options);
|
334 | 340 |
|
335 | 341 | if (transaction != null)
|
@@ -400,7 +406,8 @@ public static DataConnection CreateLinq2DbConnectionDetached([JetBrains.Annotati
|
400 | 406 | var dependencies = context.GetService<RelationalSqlTranslatingExpressionVisitorDependencies>();
|
401 | 407 | var mappingSource = context.GetService<IRelationalTypeMappingSource>();
|
402 | 408 | var converters = context.GetService<IValueConverterSelector>();
|
403 |
| - var mappingSchema = GetMappingSchema(context.Model, converters, dependencies, mappingSource); |
| 409 | + var dLogger = context.GetService<IDiagnosticsLogger<DbLoggerCategory.Query>>(); |
| 410 | + var mappingSchema = GetMappingSchema(context.Model, converters, dependencies, mappingSource, dLogger); |
404 | 411 | if (mappingSchema != null)
|
405 | 412 | dc.AddMappingSchema(mappingSchema);
|
406 | 413 |
|
@@ -495,7 +502,7 @@ public static DataConnection CreateLinqToDbConnection(this DbContextOptions opti
|
495 | 502 |
|
496 | 503 | if (model != null)
|
497 | 504 | {
|
498 |
| - var mappingSchema = GetMappingSchema(model, null, null, null); |
| 505 | + var mappingSchema = GetMappingSchema(model, null, null, null, null); |
499 | 506 | if (mappingSchema != null)
|
500 | 507 | dc.AddMappingSchema(mappingSchema);
|
501 | 508 | }
|
|
0 commit comments