|
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