@tsonic/efcore 10.0.1 → 10.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/Microsoft.EntityFrameworkCore/bindings.json +2247 -5
  2. package/Microsoft.EntityFrameworkCore/internal/index.d.ts +30 -5
  3. package/Microsoft.EntityFrameworkCore.ChangeTracking/bindings.json +1707 -6
  4. package/Microsoft.EntityFrameworkCore.ChangeTracking/internal/index.d.ts +74 -14
  5. package/Microsoft.EntityFrameworkCore.ChangeTracking.Internal/bindings.json +4784 -172
  6. package/Microsoft.EntityFrameworkCore.ChangeTracking.Internal/internal/index.d.ts +210 -25
  7. package/Microsoft.EntityFrameworkCore.ChangeTracking.Internal.d.ts +1 -1
  8. package/Microsoft.EntityFrameworkCore.ChangeTracking.d.ts +3 -3
  9. package/Microsoft.EntityFrameworkCore.Design/bindings.json +1175 -171
  10. package/Microsoft.EntityFrameworkCore.Design/internal/index.d.ts +52 -3
  11. package/Microsoft.EntityFrameworkCore.Design.Internal/bindings.json +306 -2
  12. package/Microsoft.EntityFrameworkCore.Design.Internal/internal/index.d.ts +15 -2
  13. package/Microsoft.EntityFrameworkCore.Diagnostics/bindings.json +2919 -10
  14. package/Microsoft.EntityFrameworkCore.Diagnostics/internal/index.d.ts +28 -3
  15. package/Microsoft.EntityFrameworkCore.Diagnostics.Internal/bindings.json +1027 -77
  16. package/Microsoft.EntityFrameworkCore.Diagnostics.Internal/internal/index.d.ts +53 -17
  17. package/Microsoft.EntityFrameworkCore.Infrastructure/bindings.json +4386 -655
  18. package/Microsoft.EntityFrameworkCore.Infrastructure/internal/index.d.ts +229 -23
  19. package/Microsoft.EntityFrameworkCore.Infrastructure.Internal/bindings.json +251 -7
  20. package/Microsoft.EntityFrameworkCore.Infrastructure.Internal/internal/index.d.ts +11 -4
  21. package/Microsoft.EntityFrameworkCore.Infrastructure.d.ts +3 -2
  22. package/Microsoft.EntityFrameworkCore.Internal/bindings.json +754 -2
  23. package/Microsoft.EntityFrameworkCore.Internal/internal/index.d.ts +1 -1
  24. package/Microsoft.EntityFrameworkCore.Metadata/bindings.json +8776 -125
  25. package/Microsoft.EntityFrameworkCore.Metadata/internal/index.d.ts +174 -27
  26. package/Microsoft.EntityFrameworkCore.Metadata.Builders/bindings.json +5621 -147
  27. package/Microsoft.EntityFrameworkCore.Metadata.Builders/internal/index.d.ts +255 -33
  28. package/Microsoft.EntityFrameworkCore.Metadata.Builders.d.ts +1 -1
  29. package/Microsoft.EntityFrameworkCore.Metadata.Conventions/bindings.json +8740 -1109
  30. package/Microsoft.EntityFrameworkCore.Metadata.Conventions/internal/index.d.ts +604 -79
  31. package/Microsoft.EntityFrameworkCore.Metadata.Conventions.Infrastructure/bindings.json +152 -3
  32. package/Microsoft.EntityFrameworkCore.Metadata.Conventions.Infrastructure/internal/index.d.ts +15 -2
  33. package/Microsoft.EntityFrameworkCore.Metadata.Conventions.Infrastructure.d.ts +1 -0
  34. package/Microsoft.EntityFrameworkCore.Metadata.Conventions.Internal/bindings.json +144 -0
  35. package/Microsoft.EntityFrameworkCore.Metadata.Conventions.d.ts +7 -5
  36. package/Microsoft.EntityFrameworkCore.Metadata.Internal/bindings.json +16619 -30
  37. package/Microsoft.EntityFrameworkCore.Metadata.Internal/internal/index.d.ts +673 -91
  38. package/Microsoft.EntityFrameworkCore.Migrations/bindings.json +2197 -67
  39. package/Microsoft.EntityFrameworkCore.Migrations/internal/index.d.ts +119 -11
  40. package/Microsoft.EntityFrameworkCore.Migrations.Internal/bindings.json +1304 -119
  41. package/Microsoft.EntityFrameworkCore.Migrations.Internal/internal/index.d.ts +70 -5
  42. package/Microsoft.EntityFrameworkCore.Migrations.Internal.d.ts +3 -3
  43. package/Microsoft.EntityFrameworkCore.Migrations.Operations/bindings.json +4318 -46
  44. package/Microsoft.EntityFrameworkCore.Migrations.Operations/internal/index.d.ts +293 -36
  45. package/Microsoft.EntityFrameworkCore.Migrations.Operations.Builders/bindings.json +102 -0
  46. package/Microsoft.EntityFrameworkCore.Migrations.Operations.Builders/internal/index.d.ts +6 -1
  47. package/Microsoft.EntityFrameworkCore.Migrations.d.ts +5 -4
  48. package/Microsoft.EntityFrameworkCore.Query/bindings.json +17431 -7313
  49. package/Microsoft.EntityFrameworkCore.Query/internal/index.d.ts +721 -85
  50. package/Microsoft.EntityFrameworkCore.Query.Internal/bindings.json +3807 -228
  51. package/Microsoft.EntityFrameworkCore.Query.Internal/internal/index.d.ts +299 -49
  52. package/Microsoft.EntityFrameworkCore.Query.Internal.d.ts +3 -3
  53. package/Microsoft.EntityFrameworkCore.Query.SqlExpressions/bindings.json +3589 -953
  54. package/Microsoft.EntityFrameworkCore.Query.SqlExpressions/internal/index.d.ts +327 -127
  55. package/Microsoft.EntityFrameworkCore.Query.d.ts +6 -5
  56. package/Microsoft.EntityFrameworkCore.Scaffolding/bindings.json +125 -3
  57. package/Microsoft.EntityFrameworkCore.Scaffolding/internal/index.d.ts +8 -1
  58. package/Microsoft.EntityFrameworkCore.Scaffolding.Metadata/bindings.json +1160 -9
  59. package/Microsoft.EntityFrameworkCore.Scaffolding.Metadata/internal/index.d.ts +80 -10
  60. package/Microsoft.EntityFrameworkCore.Storage/bindings.json +5813 -272
  61. package/Microsoft.EntityFrameworkCore.Storage/internal/index.d.ts +432 -55
  62. package/Microsoft.EntityFrameworkCore.Storage.Internal/bindings.json +534 -6
  63. package/Microsoft.EntityFrameworkCore.Storage.Internal/internal/index.d.ts +50 -7
  64. package/Microsoft.EntityFrameworkCore.Storage.Internal.d.ts +2 -1
  65. package/Microsoft.EntityFrameworkCore.Storage.Json/bindings.json +570 -2
  66. package/Microsoft.EntityFrameworkCore.Storage.Json/internal/index.d.ts +7 -1
  67. package/Microsoft.EntityFrameworkCore.Storage.ValueConversion/bindings.json +652 -2
  68. package/Microsoft.EntityFrameworkCore.Storage.ValueConversion/internal/index.d.ts +9 -1
  69. package/Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal/bindings.json +663 -16
  70. package/Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal/internal/index.d.ts +28 -1
  71. package/Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal.d.ts +1 -1
  72. package/Microsoft.EntityFrameworkCore.Storage.d.ts +4 -4
  73. package/Microsoft.EntityFrameworkCore.Update/bindings.json +2027 -340
  74. package/Microsoft.EntityFrameworkCore.Update/internal/index.d.ts +89 -8
  75. package/Microsoft.EntityFrameworkCore.Update.Internal/bindings.json +1074 -6
  76. package/Microsoft.EntityFrameworkCore.Update.Internal/internal/index.d.ts +44 -8
  77. package/Microsoft.EntityFrameworkCore.Update.Internal.d.ts +1 -1
  78. package/Microsoft.EntityFrameworkCore.Update.d.ts +2 -2
  79. package/Microsoft.EntityFrameworkCore.ValueGeneration/bindings.json +479 -5
  80. package/Microsoft.EntityFrameworkCore.ValueGeneration/internal/index.d.ts +46 -7
  81. package/Microsoft.EntityFrameworkCore.ValueGeneration.Internal/bindings.json +262 -2
  82. package/Microsoft.EntityFrameworkCore.ValueGeneration.Internal/internal/index.d.ts +13 -2
  83. package/Microsoft.EntityFrameworkCore.ValueGeneration.d.ts +1 -1
  84. package/Microsoft.EntityFrameworkCore.d.ts +2 -1
  85. package/Microsoft.Extensions.DependencyInjection/bindings.json +15 -0
  86. package/System.Transactions/bindings.json +6 -0
  87. package/package.json +1 -1
@@ -16,22 +16,23 @@ import type { IAnnotation, IConcurrencyDetector, ICoreSingletonOptions, ICurrent
16
16
  import type { IDbContextServices } from "../../Microsoft.EntityFrameworkCore.Internal/internal/index.js";
17
17
  import type { IClrCollectionAccessor, IComplexProperty, IComplexType, IEntityType, IKey, IModel, INavigation, INavigationBase, IProperty, IPropertyBase, ITableBase, ITypeBase, MemberIdentity } from "../../Microsoft.EntityFrameworkCore.Metadata/internal/index.js";
18
18
  import type { RelationalCommandResolver, ResultContext, SingleQueryResultCoordinator, SplitQueryResultCoordinator } from "../../Microsoft.EntityFrameworkCore.Query.Internal/internal/index.js";
19
- import type { CaseWhenClause, ColumnExpression, OrderingExpression, SelectExpression, SqlExpression, SqlParameterExpression } from "../../Microsoft.EntityFrameworkCore.Query.SqlExpressions/internal/index.js";
19
+ import type { AtTimeZoneExpression, CaseExpression, CaseWhenClause, CollateExpression, ColumnExpression, ColumnValueSetter, CrossApplyExpression, CrossJoinExpression, DeleteExpression, DistinctExpression, ExceptExpression, ExistsExpression, FromSqlExpression, InExpression, InnerJoinExpression, IntersectExpression, JsonScalarExpression, LeftJoinExpression, LikeExpression, OrderingExpression, OuterApplyExpression, ProjectionExpression, RightJoinExpression, RowNumberExpression, RowValueExpression, ScalarSubqueryExpression, SelectExpression, SetOperationBase, SqlBinaryExpression, SqlConstantExpression, SqlExpression, SqlFragmentExpression, SqlFunctionExpression, SqlParameterExpression, SqlUnaryExpression, TableExpression, TableExpressionBase, TableValuedFunctionExpression, UnionExpression, UpdateExpression, ValuesExpression } from "../../Microsoft.EntityFrameworkCore.Query.SqlExpressions/internal/index.js";
20
20
  import type { JsonReaderData } from "../../Microsoft.EntityFrameworkCore.Storage.Json/internal/index.js";
21
- import type { IExceptionDetector, IExecutionStrategy, IParameterNameGeneratorFactory, IRelationalCommand, IRelationalCommandBuilderFactory, IRelationalConnection, IRelationalTypeMappingSource, ISqlGenerationHelper, ITypeMappingSource, MaterializationContext, ReaderColumn, RelationalCommandBuilderDependencies, RelationalTypeMapping } from "../../Microsoft.EntityFrameworkCore.Storage/internal/index.js";
21
+ import type { IExceptionDetector, IExecutionStrategy, IntTypeMapping, IParameterNameGeneratorFactory, IRelationalCommand, IRelationalCommandBuilder, IRelationalCommandBuilderFactory, IRelationalConnection, IRelationalTypeMappingSource, ISqlGenerationHelper, ITypeMappingSource, MaterializationContext, ReaderColumn, RelationalCommandBuilderDependencies, RelationalTypeMapping } from "../../Microsoft.EntityFrameworkCore.Storage/internal/index.js";
22
22
  import type { DbContext, DbLoggerCategory_Database_Command, DbLoggerCategory_Query, ParameterTranslationMode, QuerySplittingBehavior, QueryTrackingBehavior } from "../../Microsoft.EntityFrameworkCore/internal/index.js";
23
23
  import * as System_Collections_Generic_Internal from "@tsonic/dotnet/System.Collections.Generic.js";
24
- import type { Dictionary, HashSet, IAsyncEnumerable, ICollection, IEnumerable as IEnumerable__System_Collections_Generic, IEqualityComparer, IReadOnlyCollection, IReadOnlyDictionary, IReadOnlyList, ISet, List } from "@tsonic/dotnet/System.Collections.Generic.js";
24
+ import type { Dictionary, HashSet, IAsyncEnumerable, ICollection, IEnumerable as IEnumerable__System_Collections_Generic, IEqualityComparer, IReadOnlyCollection, IReadOnlyDictionary, IReadOnlyList, IReadOnlySet, ISet, List } from "@tsonic/dotnet/System.Collections.Generic.js";
25
25
  import * as System_Collections_Internal from "@tsonic/dotnet/System.Collections.js";
26
26
  import type { IEnumerable } from "@tsonic/dotnet/System.Collections.js";
27
27
  import type { DbCommand, DbDataReader } from "@tsonic/dotnet/System.Data.Common.js";
28
28
  import * as System_Internal from "@tsonic/dotnet/System.js";
29
- import type { Action, Attribute, Boolean as ClrBoolean, Enum, Exception, Func, IComparable, IConvertible, IDisposable, IEquatable, IFormattable, Int32, ISpanFormattable, Nullable, Object as ClrObject, String as ClrString, Type, ValueTuple, ValueType, Void } from "@tsonic/dotnet/System.js";
29
+ import type { Action, Attribute, Boolean as ClrBoolean, Char, Enum, Exception, Func, IComparable, IConvertible, IDisposable, IEquatable, IFormattable, Int32, ISpanFormattable, Nullable, Object as ClrObject, ReadOnlySpan, String as ClrString, Type, ValueTuple, ValueType, Void } from "@tsonic/dotnet/System.js";
30
30
  import * as System_Linq_Expressions_Internal from "@tsonic/dotnet/System.Linq.Expressions.js";
31
- import type { ConstantExpression, Expression, ExpressionType, ExpressionVisitor, LambdaExpression, NewArrayExpression, ParameterExpression } from "@tsonic/dotnet/System.Linq.Expressions.js";
31
+ import type { BinaryExpression, BlockExpression, ConditionalExpression, ConstantExpression, DefaultExpression, Expression, ExpressionType, ExpressionVisitor, GotoExpression, IndexExpression, InvocationExpression, LabelExpression, LambdaExpression, ListInitExpression, LoopExpression, MemberExpression, MemberInitExpression, MethodCallExpression, NewArrayExpression, NewExpression, ParameterExpression, SwitchExpression, TryExpression, TypeBinaryExpression, UnaryExpression } from "@tsonic/dotnet/System.Linq.Expressions.js";
32
32
  import * as System_Linq_Internal from "@tsonic/dotnet/System.Linq.js";
33
33
  import type { IQueryable, IQueryProvider } from "@tsonic/dotnet/System.Linq.js";
34
34
  import type { MemberInfo, MethodInfo } from "@tsonic/dotnet/System.Reflection.js";
35
+ import type { StringBuilder } from "@tsonic/dotnet/System.Text.js";
35
36
  import type { CancellationToken } from "@tsonic/dotnet/System.Threading.js";
36
37
  import type { Task } from "@tsonic/dotnet/System.Threading.Tasks.js";
37
38
  import type { IMemoryCache } from "@tsonic/microsoft-extensions/Microsoft.Extensions.Caching.Memory.js";
@@ -384,7 +385,12 @@ export const StructuralTypeMaterializerSourceParameters: {
384
385
 
385
386
  export type StructuralTypeMaterializerSourceParameters = StructuralTypeMaterializerSourceParameters$instance;
386
387
 
387
- export interface CollectionResultExpression$instance extends Expression {
388
+ export abstract class CollectionResultExpression$protected {
389
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
390
+ }
391
+
392
+
393
+ export interface CollectionResultExpression$instance extends CollectionResultExpression$protected, Expression {
388
394
  readonly ElementType: Type;
389
395
  readonly Navigation: INavigationBase;
390
396
  readonly NodeType: ExpressionType;
@@ -411,7 +417,12 @@ export interface CollectionResultExpression$instance extends IPrintableExpressio
411
417
  export type CollectionResultExpression = CollectionResultExpression$instance & __CollectionResultExpression$views;
412
418
 
413
419
 
414
- export interface CompiledQueryCacheKeyGenerator$instance {
420
+ export abstract class CompiledQueryCacheKeyGenerator$protected {
421
+ protected readonly Dependencies: CompiledQueryCacheKeyGeneratorDependencies;
422
+ }
423
+
424
+
425
+ export interface CompiledQueryCacheKeyGenerator$instance extends CompiledQueryCacheKeyGenerator$protected {
415
426
  GenerateCacheKey(query: Expression, async: boolean): unknown;
416
427
  }
417
428
 
@@ -449,14 +460,19 @@ export const CompiledQueryCacheKeyGeneratorDependencies: {
449
460
 
450
461
  export type CompiledQueryCacheKeyGeneratorDependencies = CompiledQueryCacheKeyGeneratorDependencies$instance;
451
462
 
452
- export interface EntityQueryRootExpression$instance extends QueryRootExpression$instance {
463
+ export abstract class EntityQueryRootExpression$protected {
464
+ protected Print(expressionPrinter: ExpressionPrinter): void;
465
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
466
+ }
467
+
468
+
469
+ export interface EntityQueryRootExpression$instance extends EntityQueryRootExpression$protected, QueryRootExpression$instance {
453
470
  readonly CanReduce: boolean;
454
471
  readonly EntityType: IEntityType;
455
472
  readonly NodeType: ExpressionType;
456
473
  DetachQueryProvider(): Expression;
457
474
  Equals(obj: unknown): boolean;
458
475
  GetHashCode(): int;
459
- Print(expressionPrinter: ExpressionPrinter): void;
460
476
  UpdateEntityType(entityType: IEntityType): EntityQueryRootExpression;
461
477
  }
462
478
 
@@ -471,12 +487,15 @@ export interface __EntityQueryRootExpression$views {
471
487
  As_IPrintableExpression(): IPrintableExpression$instance;
472
488
  }
473
489
 
474
- export interface EntityQueryRootExpression$instance extends IPrintableExpression$instance {}
475
-
476
490
  export type EntityQueryRootExpression = EntityQueryRootExpression$instance & __EntityQueryRootExpression$views;
477
491
 
478
492
 
479
- export interface EnumerableExpression$instance extends Expression {
493
+ export abstract class EnumerableExpression$protected {
494
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
495
+ }
496
+
497
+
498
+ export interface EnumerableExpression$instance extends EnumerableExpression$protected, Expression {
480
499
  readonly IsDistinct: boolean;
481
500
  readonly NodeType: ExpressionType;
482
501
  readonly Orderings: IReadOnlyList<OrderingExpression>;
@@ -508,7 +527,12 @@ export interface EnumerableExpression$instance extends IPrintableExpression$inst
508
527
  export type EnumerableExpression = EnumerableExpression$instance & __EnumerableExpression$views;
509
528
 
510
529
 
511
- export interface EvaluatableExpressionFilter$instance {
530
+ export abstract class EvaluatableExpressionFilter$protected {
531
+ protected readonly Dependencies: EvaluatableExpressionFilterDependencies;
532
+ }
533
+
534
+
535
+ export interface EvaluatableExpressionFilter$instance extends EvaluatableExpressionFilter$protected {
512
536
  IsEvaluatableExpression(expression: Expression, model: IModel): boolean;
513
537
  }
514
538
 
@@ -558,7 +582,33 @@ export const ExpressionEqualityComparer: {
558
582
 
559
583
  export type ExpressionEqualityComparer = ExpressionEqualityComparer$instance;
560
584
 
561
- export interface ExpressionPrinter$instance extends ExpressionVisitor {
585
+ export abstract class ExpressionPrinter$protected {
586
+ protected VisitBinary(binaryExpression: BinaryExpression): Expression;
587
+ protected VisitBlock(blockExpression: BlockExpression): Expression;
588
+ protected VisitConditional(conditionalExpression: ConditionalExpression): Expression;
589
+ protected VisitConstant(constantExpression: ConstantExpression): Expression;
590
+ protected VisitDefault(defaultExpression: DefaultExpression): Expression;
591
+ protected VisitExtension(extensionExpression: Expression): Expression;
592
+ protected VisitGoto(gotoExpression: GotoExpression): Expression;
593
+ protected VisitIndex(indexExpression: IndexExpression): Expression;
594
+ protected VisitInvocation(invocationExpression: InvocationExpression): Expression;
595
+ protected VisitLabel(labelExpression: LabelExpression): Expression;
596
+ protected VisitLambda<T>(lambdaExpression: Expression<T>): Expression;
597
+ protected VisitLoop(loopExpression: LoopExpression): Expression;
598
+ protected VisitMember(memberExpression: MemberExpression): Expression;
599
+ protected VisitMemberInit(memberInitExpression: MemberInitExpression): Expression;
600
+ protected VisitMethodCall(methodCallExpression: MethodCallExpression): Expression;
601
+ protected VisitNew(newExpression: NewExpression): Expression;
602
+ protected VisitNewArray(newArrayExpression: NewArrayExpression): Expression;
603
+ protected VisitParameter(parameterExpression: ParameterExpression): Expression;
604
+ protected VisitSwitch(switchExpression: SwitchExpression): Expression;
605
+ protected VisitTry(tryExpression: TryExpression): Expression;
606
+ protected VisitTypeBinary(typeBinaryExpression: TypeBinaryExpression): Expression;
607
+ protected VisitUnary(unaryExpression: UnaryExpression): Expression;
608
+ }
609
+
610
+
611
+ export interface ExpressionPrinter$instance extends ExpressionPrinter$protected, ExpressionVisitor {
562
612
  Append(value: string): ExpressionPrinter;
563
613
  AppendLine(): ExpressionPrinter;
564
614
  AppendLine(value: string): ExpressionPrinter;
@@ -582,7 +632,12 @@ export const ExpressionPrinter: {
582
632
 
583
633
  export type ExpressionPrinter = ExpressionPrinter$instance;
584
634
 
585
- export interface GroupByShaperExpression$instance extends Expression {
635
+ export abstract class GroupByShaperExpression$protected {
636
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
637
+ }
638
+
639
+
640
+ export interface GroupByShaperExpression$instance extends GroupByShaperExpression$protected, Expression {
586
641
  readonly GroupingEnumerable: ShapedQueryExpression;
587
642
  readonly KeySelector: Expression;
588
643
  readonly NodeType: ExpressionType;
@@ -606,7 +661,12 @@ export interface GroupByShaperExpression$instance extends IPrintableExpression$i
606
661
  export type GroupByShaperExpression = GroupByShaperExpression$instance & __GroupByShaperExpression$views;
607
662
 
608
663
 
609
- export interface IncludeExpression$instance extends Expression {
664
+ export abstract class IncludeExpression$protected {
665
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
666
+ }
667
+
668
+
669
+ export interface IncludeExpression$instance extends IncludeExpression$protected, Expression {
610
670
  readonly EntityExpression: Expression;
611
671
  readonly Navigation: INavigationBase;
612
672
  readonly NavigationExpression: Expression;
@@ -632,10 +692,15 @@ export interface IncludeExpression$instance extends IPrintableExpression$instanc
632
692
  export type IncludeExpression = IncludeExpression$instance & __IncludeExpression$views;
633
693
 
634
694
 
635
- export interface InlineQueryRootExpression$instance extends QueryRootExpression$instance {
695
+ export abstract class InlineQueryRootExpression$protected {
696
+ protected Print(expressionPrinter: ExpressionPrinter): void;
697
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
698
+ }
699
+
700
+
701
+ export interface InlineQueryRootExpression$instance extends InlineQueryRootExpression$protected, QueryRootExpression$instance {
636
702
  readonly Values: IReadOnlyList<Expression>;
637
703
  DetachQueryProvider(): Expression;
638
- Print(expressionPrinter: ExpressionPrinter): void;
639
704
  Update(values: IReadOnlyList<Expression>): InlineQueryRootExpression;
640
705
  }
641
706
 
@@ -650,12 +715,15 @@ export interface __InlineQueryRootExpression$views {
650
715
  As_IPrintableExpression(): IPrintableExpression$instance;
651
716
  }
652
717
 
653
- export interface InlineQueryRootExpression$instance extends IPrintableExpression$instance {}
654
-
655
718
  export type InlineQueryRootExpression = InlineQueryRootExpression$instance & __InlineQueryRootExpression$views;
656
719
 
657
720
 
658
- export interface JsonQueryExpression$instance extends Expression {
721
+ export abstract class JsonQueryExpression$protected {
722
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
723
+ }
724
+
725
+
726
+ export interface JsonQueryExpression$instance extends JsonQueryExpression$protected, Expression {
659
727
  readonly IsCollection: boolean;
660
728
  readonly IsNullable: boolean;
661
729
  readonly JsonColumn: ColumnExpression;
@@ -690,7 +758,12 @@ export interface JsonQueryExpression$instance extends IPrintableExpression$insta
690
758
  export type JsonQueryExpression = JsonQueryExpression$instance & __JsonQueryExpression$views;
691
759
 
692
760
 
693
- export interface LiftableConstantExpression$instance extends Expression {
761
+ export abstract class LiftableConstantExpression$protected {
762
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
763
+ }
764
+
765
+
766
+ export interface LiftableConstantExpression$instance extends LiftableConstantExpression$protected, Expression {
694
767
  readonly NodeType: ExpressionType;
695
768
  readonly OriginalExpression: ConstantExpression;
696
769
  readonly ResolverExpression: LambdaExpression;
@@ -751,8 +824,16 @@ export interface LiftableConstantFactory$instance extends ILiftableConstantFacto
751
824
  export type LiftableConstantFactory = LiftableConstantFactory$instance & __LiftableConstantFactory$views;
752
825
 
753
826
 
754
- export interface LiftableConstantProcessor$instance extends ExpressionVisitor {
755
- readonly LiftedConstants: IReadOnlyList<ValueTuple<ParameterExpression, Expression>>;
827
+ export abstract class LiftableConstantProcessor$protected {
828
+ protected InlineConstant(liftableConstant: LiftableConstantExpression): ConstantExpression;
829
+ protected LiftConstant(liftableConstant: LiftableConstantExpression): ParameterExpression;
830
+ protected VisitBinary(binaryExpression: BinaryExpression): Expression;
831
+ protected VisitExtension(node: Expression): Expression;
832
+ }
833
+
834
+
835
+ export interface LiftableConstantProcessor$instance extends LiftableConstantProcessor$protected, ExpressionVisitor {
836
+ LiftedConstants: IReadOnlyList<ValueTuple<ParameterExpression, Expression>>;
756
837
  InlineConstants(expression: Expression, supportsPrecompiledQuery: boolean): Expression;
757
838
  LiftConstants(expression: Expression, contextParameter: ParameterExpression, variableNames: HashSet<System_Internal.String>): Expression;
758
839
  }
@@ -767,12 +848,15 @@ export interface __LiftableConstantProcessor$views {
767
848
  As_ILiftableConstantProcessor(): ILiftableConstantProcessor$instance;
768
849
  }
769
850
 
770
- export interface LiftableConstantProcessor$instance extends ILiftableConstantProcessor$instance {}
771
-
772
851
  export type LiftableConstantProcessor = LiftableConstantProcessor$instance & __LiftableConstantProcessor$views;
773
852
 
774
853
 
775
- export interface MaterializeCollectionNavigationExpression$instance extends Expression {
854
+ export abstract class MaterializeCollectionNavigationExpression$protected {
855
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
856
+ }
857
+
858
+
859
+ export interface MaterializeCollectionNavigationExpression$instance extends MaterializeCollectionNavigationExpression$protected, Expression {
776
860
  readonly Navigation: INavigationBase;
777
861
  readonly NodeType: ExpressionType;
778
862
  readonly Subquery: Expression;
@@ -795,7 +879,13 @@ export interface MaterializeCollectionNavigationExpression$instance extends IPri
795
879
  export type MaterializeCollectionNavigationExpression = MaterializeCollectionNavigationExpression$instance & __MaterializeCollectionNavigationExpression$views;
796
880
 
797
881
 
798
- export interface MaterializerLiftableConstantContext$instance {
882
+ export abstract class MaterializerLiftableConstantContext$protected {
883
+ protected readonly EqualityContract: Type;
884
+ protected PrintMembers(builder: StringBuilder): boolean;
885
+ }
886
+
887
+
888
+ export interface MaterializerLiftableConstantContext$instance extends MaterializerLiftableConstantContext$protected {
799
889
  Dependencies: ShapedQueryCompilingExpressionVisitorDependencies;
800
890
  _Clone_$(): MaterializerLiftableConstantContext;
801
891
  Deconstruct(Dependencies: ShapedQueryCompilingExpressionVisitorDependencies): void;
@@ -808,12 +898,18 @@ export interface MaterializerLiftableConstantContext$instance {
808
898
 
809
899
  export const MaterializerLiftableConstantContext: {
810
900
  new(Dependencies: ShapedQueryCompilingExpressionVisitorDependencies): MaterializerLiftableConstantContext;
901
+ new(original: MaterializerLiftableConstantContext): MaterializerLiftableConstantContext;
811
902
  };
812
903
 
813
904
 
814
905
  export type MaterializerLiftableConstantContext = MaterializerLiftableConstantContext$instance;
815
906
 
816
- export interface NavigationExpansionExtensibilityHelper$instance {
907
+ export abstract class NavigationExpansionExtensibilityHelper$protected {
908
+ protected readonly Dependencies: NavigationExpansionExtensibilityHelperDependencies;
909
+ }
910
+
911
+
912
+ export interface NavigationExpansionExtensibilityHelper$instance extends NavigationExpansionExtensibilityHelper$protected {
817
913
  AreQueryRootsCompatible(first: EntityQueryRootExpression, second: EntityQueryRootExpression): boolean;
818
914
  CreateQueryRoot(entityType: IEntityType, source: EntityQueryRootExpression): EntityQueryRootExpression;
819
915
  ValidateQueryRootCreation(entityType: IEntityType, source: EntityQueryRootExpression): void;
@@ -861,11 +957,16 @@ export const NotParameterizedAttribute: {
861
957
 
862
958
  export type NotParameterizedAttribute = NotParameterizedAttribute$instance;
863
959
 
864
- export interface ParameterQueryRootExpression$instance extends QueryRootExpression$instance {
960
+ export abstract class ParameterQueryRootExpression$protected {
961
+ protected Print(expressionPrinter: ExpressionPrinter): void;
962
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
963
+ }
964
+
965
+
966
+ export interface ParameterQueryRootExpression$instance extends ParameterQueryRootExpression$protected, QueryRootExpression$instance {
865
967
  readonly ParameterExpression: ParameterExpression;
866
968
  readonly QueryParameterExpression: QueryParameterExpression;
867
969
  DetachQueryProvider(): Expression;
868
- Print(expressionPrinter: ExpressionPrinter): void;
869
970
  }
870
971
 
871
972
 
@@ -881,13 +982,11 @@ export interface __ParameterQueryRootExpression$views {
881
982
  As_IPrintableExpression(): IPrintableExpression$instance;
882
983
  }
883
984
 
884
- export interface ParameterQueryRootExpression$instance extends IPrintableExpression$instance {}
885
-
886
985
  export type ParameterQueryRootExpression = ParameterQueryRootExpression$instance & __ParameterQueryRootExpression$views;
887
986
 
888
987
 
889
988
  export interface ParametersCacheDecorator$instance {
890
- readonly CanCache: boolean;
989
+ CanCache: boolean;
891
990
  GetAndDisableCaching(): Dictionary<System_Internal.String, unknown | undefined>;
892
991
  IsNull(parameterName: string): boolean;
893
992
  }
@@ -900,7 +999,12 @@ export const ParametersCacheDecorator: {
900
999
 
901
1000
  export type ParametersCacheDecorator = ParametersCacheDecorator$instance;
902
1001
 
903
- export interface ProjectionBindingExpression$instance extends Expression {
1002
+ export abstract class ProjectionBindingExpression$protected {
1003
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
1004
+ }
1005
+
1006
+
1007
+ export interface ProjectionBindingExpression$instance extends ProjectionBindingExpression$protected, Expression {
904
1008
  readonly Index: Nullable<System_Internal.Int32>;
905
1009
  readonly NodeType: ExpressionType;
906
1010
  readonly ProjectionMember: ProjectionMember | undefined;
@@ -943,14 +1047,71 @@ export const ProjectionMember: {
943
1047
 
944
1048
  export type ProjectionMember = ProjectionMember$instance;
945
1049
 
946
- export interface QueryableMethodTranslatingExpressionVisitor$instance extends ExpressionVisitor {
947
- readonly TranslationErrorDetails: string | undefined;
1050
+ export abstract class QueryableMethodTranslatingExpressionVisitor$protected {
1051
+ protected readonly Dependencies: QueryableMethodTranslatingExpressionVisitorDependencies;
1052
+ protected readonly QueryCompilationContext: QueryCompilationContext;
1053
+ protected AddTranslationErrorDetails(details: string): void;
1054
+ protected abstract CreateShapedQueryExpression(entityType: IEntityType): ShapedQueryExpression | undefined;
1055
+ protected abstract CreateSubqueryVisitor(): QueryableMethodTranslatingExpressionVisitor;
1056
+ protected MarkShaperNullable(shaperExpression: Expression): Expression;
1057
+ protected abstract TranslateAll(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
1058
+ protected abstract TranslateAny(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
1059
+ protected abstract TranslateAverage(source: ShapedQueryExpression, selector: LambdaExpression, resultType: Type): ShapedQueryExpression | undefined;
1060
+ protected abstract TranslateCast(source: ShapedQueryExpression, castType: Type): ShapedQueryExpression | undefined;
1061
+ protected abstract TranslateConcat(source1: ShapedQueryExpression, source2: ShapedQueryExpression): ShapedQueryExpression | undefined;
1062
+ protected abstract TranslateContains(source: ShapedQueryExpression, item: Expression): ShapedQueryExpression | undefined;
1063
+ protected abstract TranslateCount(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
1064
+ protected abstract TranslateDefaultIfEmpty(source: ShapedQueryExpression, defaultValue: Expression): ShapedQueryExpression | undefined;
1065
+ protected abstract TranslateDistinct(source: ShapedQueryExpression): ShapedQueryExpression | undefined;
1066
+ protected abstract TranslateElementAtOrDefault(source: ShapedQueryExpression, index: Expression, returnDefault: boolean): ShapedQueryExpression | undefined;
1067
+ protected abstract TranslateExcept(source1: ShapedQueryExpression, source2: ShapedQueryExpression): ShapedQueryExpression | undefined;
1068
+ protected TranslateExecuteDelete(source: ShapedQueryExpression): Expression | undefined;
1069
+ protected TranslateExecuteUpdate(source: ShapedQueryExpression, setters: IReadOnlyList<QueryableMethodTranslatingExpressionVisitor_ExecuteUpdateSetter>): Expression | undefined;
1070
+ protected abstract TranslateFirstOrDefault(source: ShapedQueryExpression, predicate: LambdaExpression, returnType: Type, returnDefault: boolean): ShapedQueryExpression | undefined;
1071
+ protected abstract TranslateGroupBy(source: ShapedQueryExpression, keySelector: LambdaExpression, elementSelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
1072
+ protected abstract TranslateGroupJoin(outer: ShapedQueryExpression, inner: ShapedQueryExpression, outerKeySelector: LambdaExpression, innerKeySelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
1073
+ protected TranslateInlineQueryRoot(inlineQueryRootExpression: InlineQueryRootExpression): ShapedQueryExpression | undefined;
1074
+ protected abstract TranslateIntersect(source1: ShapedQueryExpression, source2: ShapedQueryExpression): ShapedQueryExpression | undefined;
1075
+ protected abstract TranslateJoin(outer: ShapedQueryExpression, inner: ShapedQueryExpression, outerKeySelector: LambdaExpression, innerKeySelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
1076
+ protected abstract TranslateLastOrDefault(source: ShapedQueryExpression, predicate: LambdaExpression, returnType: Type, returnDefault: boolean): ShapedQueryExpression | undefined;
1077
+ protected abstract TranslateLeftJoin(outer: ShapedQueryExpression, inner: ShapedQueryExpression, outerKeySelector: LambdaExpression, innerKeySelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
1078
+ protected abstract TranslateLongCount(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
1079
+ protected abstract TranslateMax(source: ShapedQueryExpression, selector: LambdaExpression, resultType: Type): ShapedQueryExpression | undefined;
1080
+ protected TranslateMemberAccess(source: Expression, member: MemberIdentity): ShapedQueryExpression | undefined;
1081
+ protected abstract TranslateMin(source: ShapedQueryExpression, selector: LambdaExpression, resultType: Type): ShapedQueryExpression | undefined;
1082
+ protected abstract TranslateOfType(source: ShapedQueryExpression, resultType: Type): ShapedQueryExpression | undefined;
1083
+ protected abstract TranslateOrderBy(source: ShapedQueryExpression, keySelector: LambdaExpression, ascending: boolean): ShapedQueryExpression | undefined;
1084
+ protected TranslateParameterQueryRoot(parameterQueryRootExpression: ParameterQueryRootExpression): ShapedQueryExpression | undefined;
1085
+ protected abstract TranslateReverse(source: ShapedQueryExpression): ShapedQueryExpression | undefined;
1086
+ protected abstract TranslateRightJoin(outer: ShapedQueryExpression, inner: ShapedQueryExpression, outerKeySelector: LambdaExpression, innerKeySelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
1087
+ protected abstract TranslateSelect(source: ShapedQueryExpression, selector: LambdaExpression): ShapedQueryExpression;
1088
+ protected abstract TranslateSelectMany(source: ShapedQueryExpression, selector: LambdaExpression): ShapedQueryExpression | undefined;
1089
+ protected abstract TranslateSelectMany(source: ShapedQueryExpression, collectionSelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
1090
+ protected abstract TranslateSingleOrDefault(source: ShapedQueryExpression, predicate: LambdaExpression, returnType: Type, returnDefault: boolean): ShapedQueryExpression | undefined;
1091
+ protected abstract TranslateSkip(source: ShapedQueryExpression, count: Expression): ShapedQueryExpression | undefined;
1092
+ protected abstract TranslateSkipWhile(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
1093
+ protected abstract TranslateSum(source: ShapedQueryExpression, selector: LambdaExpression, resultType: Type): ShapedQueryExpression | undefined;
1094
+ protected abstract TranslateTake(source: ShapedQueryExpression, count: Expression): ShapedQueryExpression | undefined;
1095
+ protected abstract TranslateTakeWhile(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
1096
+ protected abstract TranslateThenBy(source: ShapedQueryExpression, keySelector: LambdaExpression, ascending: boolean): ShapedQueryExpression | undefined;
1097
+ protected abstract TranslateUnion(source1: ShapedQueryExpression, source2: ShapedQueryExpression): ShapedQueryExpression | undefined;
1098
+ protected abstract TranslateWhere(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
1099
+ protected VisitExtension(extensionExpression: Expression): Expression;
1100
+ protected VisitMember(memberExpression: MemberExpression): Expression;
1101
+ protected VisitMethodCall(methodCallExpression: MethodCallExpression): Expression;
1102
+ }
1103
+
1104
+
1105
+ export interface QueryableMethodTranslatingExpressionVisitor$instance extends QueryableMethodTranslatingExpressionVisitor$protected, ExpressionVisitor {
1106
+ get TranslationErrorDetails(): string | undefined;
1107
+ set TranslationErrorDetails(value: string);
948
1108
  Translate(expression: Expression): Expression;
949
1109
  TranslateSubquery(expression: Expression): ShapedQueryExpression | undefined;
950
1110
  }
951
1111
 
952
1112
 
953
1113
  export const QueryableMethodTranslatingExpressionVisitor: {
1114
+ new(dependencies: QueryableMethodTranslatingExpressionVisitorDependencies, queryCompilationContext: QueryCompilationContext, subquery: boolean): QueryableMethodTranslatingExpressionVisitor;
954
1115
  };
955
1116
 
956
1117
 
@@ -991,18 +1152,24 @@ export const QueryableMethodTranslatingExpressionVisitorDependencies: {
991
1152
 
992
1153
  export type QueryableMethodTranslatingExpressionVisitorDependencies = QueryableMethodTranslatingExpressionVisitorDependencies$instance;
993
1154
 
994
- export interface QueryCompilationContext$instance {
1155
+ export abstract class QueryCompilationContext$protected {
1156
+ protected readonly Dependencies: QueryCompilationContextDependencies;
1157
+ }
1158
+
1159
+
1160
+ export interface QueryCompilationContext$instance extends QueryCompilationContext$protected {
995
1161
  readonly ContextOptions: IDbContextOptions;
996
1162
  readonly ContextType: Type;
997
- readonly IgnoreAutoIncludes: boolean;
998
- readonly IgnoredQueryFilters: HashSet<System_Internal.String> | undefined;
999
- readonly IgnoreQueryFilters: boolean;
1163
+ IgnoreAutoIncludes: boolean;
1164
+ get IgnoredQueryFilters(): HashSet<System_Internal.String> | undefined;
1165
+ set IgnoredQueryFilters(value: HashSet<System_Internal.String>);
1166
+ IgnoreQueryFilters: boolean;
1000
1167
  readonly IsAsync: boolean;
1001
1168
  readonly IsBuffering: boolean;
1002
1169
  readonly IsPrecompiling: boolean;
1003
1170
  readonly Logger: IDiagnosticsLogger_1<DbLoggerCategory_Query>;
1004
1171
  readonly Model: IModel;
1005
- readonly QueryTrackingBehavior: QueryTrackingBehavior;
1172
+ QueryTrackingBehavior: QueryTrackingBehavior;
1006
1173
  readonly SupportsPrecompiledQuery: boolean;
1007
1174
  readonly Tags: ISet<System_Internal.String>;
1008
1175
  AddTag(tag: string): void;
@@ -1052,7 +1219,12 @@ export const QueryCompilationContextDependencies: {
1052
1219
 
1053
1220
  export type QueryCompilationContextDependencies = QueryCompilationContextDependencies$instance;
1054
1221
 
1055
- export interface QueryContext$instance {
1222
+ export abstract class QueryContext$protected {
1223
+ protected readonly Dependencies: QueryContextDependencies;
1224
+ }
1225
+
1226
+
1227
+ export interface QueryContext$instance extends QueryContext$protected {
1056
1228
  CancellationToken: CancellationToken;
1057
1229
  readonly CommandLogger: IDiagnosticsLogger_1<DbLoggerCategory_Database_Command> | IRelationalCommandDiagnosticsLogger;
1058
1230
  readonly ConcurrencyDetector: IConcurrencyDetector;
@@ -1069,6 +1241,7 @@ export interface QueryContext$instance {
1069
1241
 
1070
1242
 
1071
1243
  export const QueryContext: {
1244
+ new(dependencies: QueryContextDependencies): QueryContext;
1072
1245
  };
1073
1246
 
1074
1247
 
@@ -1097,7 +1270,12 @@ export const QueryContextDependencies: {
1097
1270
 
1098
1271
  export type QueryContextDependencies = QueryContextDependencies$instance;
1099
1272
 
1100
- export interface QueryParameterExpression$instance extends Expression {
1273
+ export abstract class QueryParameterExpression$protected {
1274
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
1275
+ }
1276
+
1277
+
1278
+ export interface QueryParameterExpression$instance extends QueryParameterExpression$protected, Expression {
1101
1279
  readonly IsNonNullableReferenceType: boolean;
1102
1280
  readonly Name: string;
1103
1281
  readonly NodeType: ExpressionType;
@@ -1125,7 +1303,13 @@ export interface QueryParameterExpression$instance extends IPrintableExpression$
1125
1303
  export type QueryParameterExpression = QueryParameterExpression$instance & __QueryParameterExpression$views;
1126
1304
 
1127
1305
 
1128
- export interface QueryRootExpression$instance extends Expression {
1306
+ export abstract class QueryRootExpression$protected {
1307
+ protected abstract Print(expressionPrinter: ExpressionPrinter): void;
1308
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
1309
+ }
1310
+
1311
+
1312
+ export interface QueryRootExpression$instance extends QueryRootExpression$protected, Expression {
1129
1313
  readonly CanReduce: boolean;
1130
1314
  readonly ElementType: Type;
1131
1315
  readonly NodeType: ExpressionType;
@@ -1138,6 +1322,8 @@ export interface QueryRootExpression$instance extends Expression {
1138
1322
 
1139
1323
 
1140
1324
  export const QueryRootExpression: {
1325
+ new(asyncQueryProvider: IAsyncQueryProvider, elementType: Type): QueryRootExpression;
1326
+ new(elementType: Type): QueryRootExpression;
1141
1327
  };
1142
1328
 
1143
1329
 
@@ -1150,7 +1336,14 @@ export interface QueryRootExpression$instance extends IPrintableExpression$insta
1150
1336
  export type QueryRootExpression = QueryRootExpression$instance & __QueryRootExpression$views;
1151
1337
 
1152
1338
 
1153
- export interface QueryRootProcessor$instance extends ExpressionVisitor {
1339
+ export abstract class QueryRootProcessor$protected {
1340
+ protected ShouldConvertToInlineQueryRoot(expression: Expression): boolean;
1341
+ protected ShouldConvertToParameterQueryRoot(queryParameterExpression: QueryParameterExpression): boolean;
1342
+ protected VisitMethodCall(methodCallExpression: MethodCallExpression): Expression;
1343
+ }
1344
+
1345
+
1346
+ export interface QueryRootProcessor$instance extends QueryRootProcessor$protected, ExpressionVisitor {
1154
1347
  }
1155
1348
 
1156
1349
 
@@ -1161,7 +1354,72 @@ export const QueryRootProcessor: {
1161
1354
 
1162
1355
  export type QueryRootProcessor = QueryRootProcessor$instance;
1163
1356
 
1164
- export interface QuerySqlGenerator$instance extends SqlExpressionVisitor {
1357
+ export abstract class QuerySqlGenerator$protected {
1358
+ protected readonly AliasSeparator: string;
1359
+ protected readonly Dependencies: QuerySqlGeneratorDependencies;
1360
+ protected readonly Sql: IRelationalCommandBuilder;
1361
+ protected CheckComposableSql(sql: string): void;
1362
+ protected CheckComposableSqlTrimmed(sql: ReadOnlySpan<System_Internal.Char>): void;
1363
+ protected GenerateEmptyProjection(selectExpression: SelectExpression): void;
1364
+ protected GenerateExists(existsExpression: ExistsExpression, negated: boolean): void;
1365
+ protected GenerateFrom(selectExpression: SelectExpression): void;
1366
+ protected GenerateIn(inExpression: InExpression, negated: boolean): void;
1367
+ protected GenerateLike(likeExpression: LikeExpression, negated: boolean): void;
1368
+ protected GenerateLimitOffset(selectExpression: SelectExpression): void;
1369
+ protected GenerateOrderings(selectExpression: SelectExpression): void;
1370
+ protected GenerateProjection(selectExpression: SelectExpression): void;
1371
+ protected GeneratePseudoFromClause(): void;
1372
+ protected GenerateRootCommand(queryExpression: Expression): void;
1373
+ protected GenerateSetOperation(setOperation: SetOperationBase): void;
1374
+ protected GenerateSetOperationOperand(setOperation: SetOperationBase, operand: SelectExpression): void;
1375
+ protected GenerateTagsHeaderComment(selectExpression: SelectExpression): void;
1376
+ protected GenerateTagsHeaderComment(tags: ISet<System_Internal.String>): void;
1377
+ protected GenerateTop(selectExpression: SelectExpression): void;
1378
+ protected GenerateValues(valuesExpression: ValuesExpression): void;
1379
+ protected GetOperator(binaryExpression: SqlBinaryExpression): string;
1380
+ protected RequiresParentheses(outerExpression: SqlExpression, innerExpression: SqlExpression): boolean;
1381
+ protected TryGenerateWithoutWrappingSelect(selectExpression: SelectExpression): boolean;
1382
+ protected TryGetOperatorInfo(expression: SqlExpression, precedence: int, isAssociative: boolean): boolean;
1383
+ protected VisitAtTimeZone(atTimeZoneExpression: AtTimeZoneExpression): Expression;
1384
+ protected VisitCase(caseExpression: CaseExpression): Expression;
1385
+ protected VisitCollate(collateExpression: CollateExpression): Expression;
1386
+ protected VisitColumn(columnExpression: ColumnExpression): Expression;
1387
+ protected VisitCrossApply(crossApplyExpression: CrossApplyExpression): Expression;
1388
+ protected VisitCrossJoin(crossJoinExpression: CrossJoinExpression): Expression;
1389
+ protected VisitDelete(deleteExpression: DeleteExpression): Expression;
1390
+ protected VisitDistinct(distinctExpression: DistinctExpression): Expression;
1391
+ protected VisitExcept(exceptExpression: ExceptExpression): Expression;
1392
+ protected VisitExists(existsExpression: ExistsExpression): Expression;
1393
+ protected VisitFromSql(fromSqlExpression: FromSqlExpression): Expression;
1394
+ protected VisitIn(inExpression: InExpression): Expression;
1395
+ protected VisitInnerJoin(innerJoinExpression: InnerJoinExpression): Expression;
1396
+ protected VisitIntersect(intersectExpression: IntersectExpression): Expression;
1397
+ protected VisitJsonScalar(jsonScalarExpression: JsonScalarExpression): Expression;
1398
+ protected VisitLeftJoin(leftJoinExpression: LeftJoinExpression): Expression;
1399
+ protected VisitLike(likeExpression: LikeExpression): Expression;
1400
+ protected VisitOrdering(orderingExpression: OrderingExpression): Expression;
1401
+ protected VisitOuterApply(outerApplyExpression: OuterApplyExpression): Expression;
1402
+ protected VisitProjection(projectionExpression: ProjectionExpression): Expression;
1403
+ protected VisitRightJoin(rightJoinExpression: RightJoinExpression): Expression;
1404
+ protected VisitRowNumber(rowNumberExpression: RowNumberExpression): Expression;
1405
+ protected VisitRowValue(rowValueExpression: RowValueExpression): Expression;
1406
+ protected VisitScalarSubquery(scalarSubqueryExpression: ScalarSubqueryExpression): Expression;
1407
+ protected VisitSelect(selectExpression: SelectExpression): Expression;
1408
+ protected VisitSqlBinary(sqlBinaryExpression: SqlBinaryExpression): Expression;
1409
+ protected VisitSqlConstant(sqlConstantExpression: SqlConstantExpression): Expression;
1410
+ protected VisitSqlFragment(sqlFragmentExpression: SqlFragmentExpression): Expression;
1411
+ protected VisitSqlFunction(sqlFunctionExpression: SqlFunctionExpression): Expression;
1412
+ protected VisitSqlParameter(sqlParameterExpression: SqlParameterExpression): Expression;
1413
+ protected VisitSqlUnary(sqlUnaryExpression: SqlUnaryExpression): Expression;
1414
+ protected VisitTable(tableExpression: TableExpression): Expression;
1415
+ protected VisitTableValuedFunction(tableValuedFunctionExpression: TableValuedFunctionExpression): Expression;
1416
+ protected VisitUnion(unionExpression: UnionExpression): Expression;
1417
+ protected VisitUpdate(updateExpression: UpdateExpression): Expression;
1418
+ protected VisitValues(valuesExpression: ValuesExpression): Expression;
1419
+ }
1420
+
1421
+
1422
+ export interface QuerySqlGenerator$instance extends QuerySqlGenerator$protected, SqlExpressionVisitor {
1165
1423
  GetCommand(queryExpression: Expression): IRelationalCommand;
1166
1424
  }
1167
1425
 
@@ -1191,7 +1449,13 @@ export const QuerySqlGeneratorDependencies: {
1191
1449
 
1192
1450
  export type QuerySqlGeneratorDependencies = QuerySqlGeneratorDependencies$instance;
1193
1451
 
1194
- export interface QueryTranslationPostprocessor$instance {
1452
+ export abstract class QueryTranslationPostprocessor$protected {
1453
+ protected readonly Dependencies: QueryTranslationPostprocessorDependencies;
1454
+ protected readonly QueryCompilationContext: QueryCompilationContext;
1455
+ }
1456
+
1457
+
1458
+ export interface QueryTranslationPostprocessor$instance extends QueryTranslationPostprocessor$protected {
1195
1459
  Process(query: Expression): Expression;
1196
1460
  }
1197
1461
 
@@ -1219,7 +1483,15 @@ export const QueryTranslationPostprocessorDependencies: {
1219
1483
 
1220
1484
  export type QueryTranslationPostprocessorDependencies = QueryTranslationPostprocessorDependencies$instance;
1221
1485
 
1222
- export interface QueryTranslationPreprocessor$instance {
1486
+ export abstract class QueryTranslationPreprocessor$protected {
1487
+ protected readonly Dependencies: QueryTranslationPreprocessorDependencies;
1488
+ protected readonly IsEfConstantSupported: boolean;
1489
+ protected readonly QueryCompilationContext: QueryCompilationContext;
1490
+ protected ProcessQueryRoots(expression: Expression): Expression;
1491
+ }
1492
+
1493
+
1494
+ export interface QueryTranslationPreprocessor$instance extends QueryTranslationPreprocessor$protected {
1223
1495
  NormalizeQueryableMethod(expression: Expression): Expression;
1224
1496
  Process(query: Expression): Expression;
1225
1497
  }
@@ -1251,7 +1523,13 @@ export const QueryTranslationPreprocessorDependencies: {
1251
1523
 
1252
1524
  export type QueryTranslationPreprocessorDependencies = QueryTranslationPreprocessorDependencies$instance;
1253
1525
 
1254
- export interface RelationalAggregateMethodCallTranslatorProvider$instance {
1526
+ export abstract class RelationalAggregateMethodCallTranslatorProvider$protected {
1527
+ protected readonly Dependencies: RelationalAggregateMethodCallTranslatorProviderDependencies;
1528
+ protected AddTranslators(translators: IEnumerable__System_Collections_Generic<IAggregateMethodCallTranslator>): void;
1529
+ }
1530
+
1531
+
1532
+ export interface RelationalAggregateMethodCallTranslatorProvider$instance extends RelationalAggregateMethodCallTranslatorProvider$protected {
1255
1533
  Translate(model: IModel, method: MethodInfo, source: EnumerableExpression, arguments: IReadOnlyList<SqlExpression>, logger: IDiagnosticsLogger_1<DbLoggerCategory_Query>): SqlExpression | undefined;
1256
1534
  }
1257
1535
 
@@ -1289,7 +1567,12 @@ export const RelationalAggregateMethodCallTranslatorProviderDependencies: {
1289
1567
 
1290
1568
  export type RelationalAggregateMethodCallTranslatorProviderDependencies = RelationalAggregateMethodCallTranslatorProviderDependencies$instance;
1291
1569
 
1292
- export interface RelationalCollectionShaperExpression$instance extends Expression {
1570
+ export abstract class RelationalCollectionShaperExpression$protected {
1571
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
1572
+ }
1573
+
1574
+
1575
+ export interface RelationalCollectionShaperExpression$instance extends RelationalCollectionShaperExpression$protected, Expression {
1293
1576
  readonly ElementType: Type;
1294
1577
  readonly InnerShaper: Expression;
1295
1578
  readonly Navigation: INavigationBase;
@@ -1319,7 +1602,12 @@ export interface RelationalCollectionShaperExpression$instance extends IPrintabl
1319
1602
  export type RelationalCollectionShaperExpression = RelationalCollectionShaperExpression$instance & __RelationalCollectionShaperExpression$views;
1320
1603
 
1321
1604
 
1322
- export interface RelationalCompiledQueryCacheKeyGenerator$instance extends CompiledQueryCacheKeyGenerator$instance {
1605
+ export abstract class RelationalCompiledQueryCacheKeyGenerator$protected {
1606
+ protected readonly RelationalDependencies: RelationalCompiledQueryCacheKeyGeneratorDependencies;
1607
+ }
1608
+
1609
+
1610
+ export interface RelationalCompiledQueryCacheKeyGenerator$instance extends RelationalCompiledQueryCacheKeyGenerator$protected, CompiledQueryCacheKeyGenerator$instance {
1323
1611
  GenerateCacheKey(query: Expression, async: boolean): unknown;
1324
1612
  }
1325
1613
 
@@ -1353,7 +1641,12 @@ export const RelationalCompiledQueryCacheKeyGeneratorDependencies: {
1353
1641
 
1354
1642
  export type RelationalCompiledQueryCacheKeyGeneratorDependencies = RelationalCompiledQueryCacheKeyGeneratorDependencies$instance;
1355
1643
 
1356
- export interface RelationalEvaluatableExpressionFilter$instance extends EvaluatableExpressionFilter$instance {
1644
+ export abstract class RelationalEvaluatableExpressionFilter$protected {
1645
+ protected readonly RelationalDependencies: RelationalEvaluatableExpressionFilterDependencies;
1646
+ }
1647
+
1648
+
1649
+ export interface RelationalEvaluatableExpressionFilter$instance extends RelationalEvaluatableExpressionFilter$protected, EvaluatableExpressionFilter$instance {
1357
1650
  IsEvaluatableExpression(expression: Expression, model: IModel): boolean;
1358
1651
  }
1359
1652
 
@@ -1386,7 +1679,12 @@ export const RelationalEvaluatableExpressionFilterDependencies: {
1386
1679
 
1387
1680
  export type RelationalEvaluatableExpressionFilterDependencies = RelationalEvaluatableExpressionFilterDependencies$instance;
1388
1681
 
1389
- export interface RelationalGroupByResultExpression$instance extends Expression {
1682
+ export abstract class RelationalGroupByResultExpression$protected {
1683
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
1684
+ }
1685
+
1686
+
1687
+ export interface RelationalGroupByResultExpression$instance extends RelationalGroupByResultExpression$protected, Expression {
1390
1688
  readonly ElementShaper: Expression;
1391
1689
  readonly KeyIdentifier: Expression;
1392
1690
  readonly KeyIdentifierValueComparers: IReadOnlyList<ValueComparer>;
@@ -1411,7 +1709,12 @@ export interface RelationalGroupByResultExpression$instance extends IPrintableEx
1411
1709
  export type RelationalGroupByResultExpression = RelationalGroupByResultExpression$instance & __RelationalGroupByResultExpression$views;
1412
1710
 
1413
1711
 
1414
- export interface RelationalGroupByShaperExpression$instance extends GroupByShaperExpression$instance {
1712
+ export abstract class RelationalGroupByShaperExpression$protected {
1713
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
1714
+ }
1715
+
1716
+
1717
+ export interface RelationalGroupByShaperExpression$instance extends RelationalGroupByShaperExpression$protected, GroupByShaperExpression$instance {
1415
1718
  readonly ElementSelector: Expression;
1416
1719
  Print(expressionPrinter: ExpressionPrinter): void;
1417
1720
  }
@@ -1464,7 +1767,12 @@ export interface __RelationalLiftableConstantFactory$views {
1464
1767
  export type RelationalLiftableConstantFactory = RelationalLiftableConstantFactory$instance & __RelationalLiftableConstantFactory$views;
1465
1768
 
1466
1769
 
1467
- export interface RelationalLiftableConstantProcessor$instance extends LiftableConstantProcessor$instance {
1770
+ export abstract class RelationalLiftableConstantProcessor$protected {
1771
+ protected InlineConstant(liftableConstant: LiftableConstantExpression): ConstantExpression;
1772
+ }
1773
+
1774
+
1775
+ export interface RelationalLiftableConstantProcessor$instance extends RelationalLiftableConstantProcessor$protected, LiftableConstantProcessor$instance {
1468
1776
  InlineConstants(expression: Expression, supportsPrecompiledQuery: boolean): Expression;
1469
1777
  LiftConstants(expression: Expression, contextParameter: ParameterExpression, variableNames: HashSet<System_Internal.String>): Expression;
1470
1778
  }
@@ -1482,7 +1790,13 @@ export interface __RelationalLiftableConstantProcessor$views {
1482
1790
  export type RelationalLiftableConstantProcessor = RelationalLiftableConstantProcessor$instance & __RelationalLiftableConstantProcessor$views;
1483
1791
 
1484
1792
 
1485
- export interface RelationalMaterializerLiftableConstantContext$instance extends MaterializerLiftableConstantContext {
1793
+ export abstract class RelationalMaterializerLiftableConstantContext$protected {
1794
+ protected readonly EqualityContract: Type;
1795
+ protected PrintMembers(builder: StringBuilder): boolean;
1796
+ }
1797
+
1798
+
1799
+ export interface RelationalMaterializerLiftableConstantContext$instance extends RelationalMaterializerLiftableConstantContext$protected, MaterializerLiftableConstantContext {
1486
1800
  CommandBuilderDependencies: RelationalCommandBuilderDependencies;
1487
1801
  RelationalDependencies: RelationalShapedQueryCompilingExpressionVisitorDependencies;
1488
1802
  _Clone_$(): RelationalMaterializerLiftableConstantContext;
@@ -1499,12 +1813,19 @@ export interface RelationalMaterializerLiftableConstantContext$instance extends
1499
1813
 
1500
1814
  export const RelationalMaterializerLiftableConstantContext: {
1501
1815
  new(Dependencies: ShapedQueryCompilingExpressionVisitorDependencies, RelationalDependencies: RelationalShapedQueryCompilingExpressionVisitorDependencies, CommandBuilderDependencies: RelationalCommandBuilderDependencies): RelationalMaterializerLiftableConstantContext;
1816
+ new(original: RelationalMaterializerLiftableConstantContext): RelationalMaterializerLiftableConstantContext;
1502
1817
  };
1503
1818
 
1504
1819
 
1505
1820
  export type RelationalMaterializerLiftableConstantContext = RelationalMaterializerLiftableConstantContext$instance;
1506
1821
 
1507
- export interface RelationalMemberTranslatorProvider$instance {
1822
+ export abstract class RelationalMemberTranslatorProvider$protected {
1823
+ protected readonly Dependencies: RelationalMemberTranslatorProviderDependencies;
1824
+ protected AddTranslators(translators: IEnumerable__System_Collections_Generic<IMemberTranslator>): void;
1825
+ }
1826
+
1827
+
1828
+ export interface RelationalMemberTranslatorProvider$instance extends RelationalMemberTranslatorProvider$protected {
1508
1829
  Translate(instance: SqlExpression, member: MemberInfo, returnType: Type, logger: IDiagnosticsLogger_1<DbLoggerCategory_Query>): SqlExpression | undefined;
1509
1830
  }
1510
1831
 
@@ -1541,7 +1862,13 @@ export const RelationalMemberTranslatorProviderDependencies: {
1541
1862
 
1542
1863
  export type RelationalMemberTranslatorProviderDependencies = RelationalMemberTranslatorProviderDependencies$instance;
1543
1864
 
1544
- export interface RelationalMethodCallTranslatorProvider$instance {
1865
+ export abstract class RelationalMethodCallTranslatorProvider$protected {
1866
+ protected readonly Dependencies: RelationalMethodCallTranslatorProviderDependencies;
1867
+ protected AddTranslators(translators: IEnumerable__System_Collections_Generic<IMethodCallTranslator>): void;
1868
+ }
1869
+
1870
+
1871
+ export interface RelationalMethodCallTranslatorProvider$instance extends RelationalMethodCallTranslatorProvider$protected {
1545
1872
  Translate(model: IModel, instance: SqlExpression, method: MethodInfo, arguments: IReadOnlyList<SqlExpression>, logger: IDiagnosticsLogger_1<DbLoggerCategory_Query>): SqlExpression | undefined;
1546
1873
  }
1547
1874
 
@@ -1579,7 +1906,15 @@ export const RelationalMethodCallTranslatorProviderDependencies: {
1579
1906
 
1580
1907
  export type RelationalMethodCallTranslatorProviderDependencies = RelationalMethodCallTranslatorProviderDependencies$instance;
1581
1908
 
1582
- export interface RelationalParameterBasedSqlProcessor$instance {
1909
+ export abstract class RelationalParameterBasedSqlProcessor$protected {
1910
+ protected readonly Dependencies: RelationalParameterBasedSqlProcessorDependencies;
1911
+ protected readonly Parameters: RelationalParameterBasedSqlProcessorParameters;
1912
+ protected ExpandFromSqlParameter(queryExpression: Expression, Decorator: ParametersCacheDecorator): Expression;
1913
+ protected ProcessSqlNullability(queryExpression: Expression, Decorator: ParametersCacheDecorator): Expression;
1914
+ }
1915
+
1916
+
1917
+ export interface RelationalParameterBasedSqlProcessor$instance extends RelationalParameterBasedSqlProcessor$protected {
1583
1918
  Optimize(queryExpression: Expression, parametersValues: IReadOnlyDictionary<System_Internal.String, unknown>, canCache: boolean): Expression;
1584
1919
  Process(queryExpression: Expression, parameters: Dictionary<System_Internal.String, unknown>, canCache: boolean): Expression;
1585
1920
  Process(queryExpression: Expression, parametersDecorator: ParametersCacheDecorator): Expression;
@@ -1631,12 +1966,80 @@ export const RelationalParameterBasedSqlProcessorParameters: {
1631
1966
 
1632
1967
  export type RelationalParameterBasedSqlProcessorParameters = RelationalParameterBasedSqlProcessorParameters$instance;
1633
1968
 
1634
- export interface RelationalQueryableMethodTranslatingExpressionVisitor$instance extends QueryableMethodTranslatingExpressionVisitor {
1969
+ export abstract class RelationalQueryableMethodTranslatingExpressionVisitor$protected {
1970
+ protected readonly RelationalDependencies: RelationalQueryableMethodTranslatingExpressionVisitorDependencies;
1971
+ protected CreateSelect(entityType: IEntityType): SelectExpression;
1972
+ protected CreateSelect(jsonQueryExpression: JsonQueryExpression, tableExpressionBase: TableExpressionBase, identifierColumnName: string, identifierColumnType: Type, identifierColumnTypeMapping: RelationalTypeMapping): SelectExpression;
1973
+ protected CreateShapedQueryExpression(entityType: IEntityType): ShapedQueryExpression;
1974
+ protected CreateSubqueryVisitor(): QueryableMethodTranslatingExpressionVisitor;
1975
+ protected GenerateJsonPartialUpdateSetter(target: Expression, value: SqlExpression, existingSetterValue: SqlExpression): SqlExpression | undefined;
1976
+ protected IsNaturallyOrdered(selectExpression: SelectExpression): boolean;
1977
+ protected IsOrdered(selectExpression: SelectExpression): boolean;
1978
+ protected IsValidSelectExpressionForExecuteDelete(selectExpression: SelectExpression): boolean;
1979
+ protected IsValidSelectExpressionForExecuteDelete(selectExpression: SelectExpression, shaper: StructuralTypeShaperExpression, tableExpression: TableExpression): boolean;
1980
+ protected IsValidSelectExpressionForExecuteUpdate(selectExpression: SelectExpression, targetTable: TableExpressionBase, tableExpression: TableExpression): boolean;
1981
+ protected TransformJsonQueryToTable(jsonQueryExpression: JsonQueryExpression): ShapedQueryExpression | undefined;
1982
+ protected TranslateAll(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
1983
+ protected TranslateAny(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
1984
+ protected TranslateAverage(source: ShapedQueryExpression, selector: LambdaExpression, resultType: Type): ShapedQueryExpression | undefined;
1985
+ protected TranslateCast(source: ShapedQueryExpression, resultType: Type): ShapedQueryExpression;
1986
+ protected TranslateConcat(source1: ShapedQueryExpression, source2: ShapedQueryExpression): ShapedQueryExpression;
1987
+ protected TranslateContains(source: ShapedQueryExpression, item: Expression): ShapedQueryExpression | undefined;
1988
+ protected TranslateCount(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
1989
+ protected TranslateDefaultIfEmpty(source: ShapedQueryExpression, defaultValue: Expression): ShapedQueryExpression | undefined;
1990
+ protected TranslateDistinct(source: ShapedQueryExpression): ShapedQueryExpression;
1991
+ protected TranslateElementAtOrDefault(source: ShapedQueryExpression, index: Expression, returnDefault: boolean): ShapedQueryExpression | undefined;
1992
+ protected TranslateExcept(source1: ShapedQueryExpression, source2: ShapedQueryExpression): ShapedQueryExpression;
1993
+ protected TranslateExecuteDelete2(source: ShapedQueryExpression): DeleteExpression | undefined;
1994
+ protected TranslateExecuteDelete(source: ShapedQueryExpression): Expression | undefined;
1995
+ protected TranslateExecuteUpdate2(source: ShapedQueryExpression, setters: IReadOnlyList<QueryableMethodTranslatingExpressionVisitor_ExecuteUpdateSetter>): UpdateExpression | undefined;
1996
+ protected TranslateExecuteUpdate(source: ShapedQueryExpression, setters: IReadOnlyList<QueryableMethodTranslatingExpressionVisitor_ExecuteUpdateSetter>): Expression | undefined;
1997
+ protected TranslateExpression(expression: Expression, applyDefaultTypeMapping?: boolean): SqlExpression | undefined;
1998
+ protected TranslateFirstOrDefault(source: ShapedQueryExpression, predicate: LambdaExpression, returnType: Type, returnDefault: boolean): ShapedQueryExpression | undefined;
1999
+ protected TranslateGroupBy(source: ShapedQueryExpression, keySelector: LambdaExpression, elementSelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
2000
+ protected TranslateGroupJoin(outer: ShapedQueryExpression, inner: ShapedQueryExpression, outerKeySelector: LambdaExpression, innerKeySelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
2001
+ protected TranslateInlineQueryRoot(inlineQueryRootExpression: InlineQueryRootExpression): ShapedQueryExpression | undefined;
2002
+ protected TranslateIntersect(source1: ShapedQueryExpression, source2: ShapedQueryExpression): ShapedQueryExpression;
2003
+ protected TranslateJoin(outer: ShapedQueryExpression, inner: ShapedQueryExpression, outerKeySelector: LambdaExpression, innerKeySelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
2004
+ protected TranslateLambdaExpression(shapedQueryExpression: ShapedQueryExpression, lambdaExpression: LambdaExpression): SqlExpression | undefined;
2005
+ protected TranslateLastOrDefault(source: ShapedQueryExpression, predicate: LambdaExpression, returnType: Type, returnDefault: boolean): ShapedQueryExpression | undefined;
2006
+ protected TranslateLeftJoin(outer: ShapedQueryExpression, inner: ShapedQueryExpression, outerKeySelector: LambdaExpression, innerKeySelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
2007
+ protected TranslateLongCount(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
2008
+ protected TranslateMax(source: ShapedQueryExpression, selector: LambdaExpression, resultType: Type): ShapedQueryExpression | undefined;
2009
+ protected TranslateMemberAccess(source: Expression, member: MemberIdentity): ShapedQueryExpression | undefined;
2010
+ protected TranslateMin(source: ShapedQueryExpression, selector: LambdaExpression, resultType: Type): ShapedQueryExpression | undefined;
2011
+ protected TranslateOfType(source: ShapedQueryExpression, resultType: Type): ShapedQueryExpression | undefined;
2012
+ protected TranslateOrderBy(source: ShapedQueryExpression, keySelector: LambdaExpression, ascending: boolean): ShapedQueryExpression | undefined;
2013
+ protected TranslateParameterQueryRoot(parameterQueryRootExpression: ParameterQueryRootExpression): ShapedQueryExpression | undefined;
2014
+ protected TranslatePrimitiveCollection(sqlExpression: SqlExpression, property: IProperty, tableAlias: string): ShapedQueryExpression | undefined;
2015
+ protected TranslateReverse(source: ShapedQueryExpression): ShapedQueryExpression | undefined;
2016
+ protected TranslateRightJoin(outer: ShapedQueryExpression, inner: ShapedQueryExpression, outerKeySelector: LambdaExpression, innerKeySelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
2017
+ protected TranslateSelect(source: ShapedQueryExpression, selector: LambdaExpression): ShapedQueryExpression;
2018
+ protected TranslateSelectMany(source: ShapedQueryExpression, selector: LambdaExpression): ShapedQueryExpression | undefined;
2019
+ protected TranslateSelectMany(source: ShapedQueryExpression, collectionSelector: LambdaExpression, resultSelector: LambdaExpression): ShapedQueryExpression | undefined;
2020
+ protected TranslateSingleOrDefault(source: ShapedQueryExpression, predicate: LambdaExpression, returnType: Type, returnDefault: boolean): ShapedQueryExpression | undefined;
2021
+ protected TranslateSkip(source: ShapedQueryExpression, count: Expression): ShapedQueryExpression | undefined;
2022
+ protected TranslateSkipWhile(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
2023
+ protected TranslateSum(source: ShapedQueryExpression, selector: LambdaExpression, resultType: Type): ShapedQueryExpression | undefined;
2024
+ protected TranslateTake(source: ShapedQueryExpression, count: Expression): ShapedQueryExpression | undefined;
2025
+ protected TranslateTakeWhile(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
2026
+ protected TranslateThenBy(source: ShapedQueryExpression, keySelector: LambdaExpression, ascending: boolean): ShapedQueryExpression | undefined;
2027
+ protected TranslateUnion(source1: ShapedQueryExpression, source2: ShapedQueryExpression): ShapedQueryExpression;
2028
+ protected TranslateWhere(source: ShapedQueryExpression, predicate: LambdaExpression): ShapedQueryExpression | undefined;
2029
+ protected TrySerializeScalarToJson(target: JsonScalarExpression, value: SqlExpression, jsonValue: SqlExpression): boolean;
2030
+ protected TryTranslateSetters(source: ShapedQueryExpression, setters: IReadOnlyList<QueryableMethodTranslatingExpressionVisitor_ExecuteUpdateSetter>, columnSetters: IReadOnlyList<ColumnValueSetter>, targetTable: TableExpressionBase): boolean;
2031
+ protected VisitExtension(extensionExpression: Expression): Expression;
2032
+ protected VisitMethodCall(methodCallExpression: MethodCallExpression): Expression;
2033
+ }
2034
+
2035
+
2036
+ export interface RelationalQueryableMethodTranslatingExpressionVisitor$instance extends RelationalQueryableMethodTranslatingExpressionVisitor$protected, QueryableMethodTranslatingExpressionVisitor {
1635
2037
  }
1636
2038
 
1637
2039
 
1638
2040
  export const RelationalQueryableMethodTranslatingExpressionVisitor: {
1639
2041
  new(dependencies: QueryableMethodTranslatingExpressionVisitorDependencies, relationalDependencies: RelationalQueryableMethodTranslatingExpressionVisitorDependencies, queryCompilationContext: RelationalQueryCompilationContext): RelationalQueryableMethodTranslatingExpressionVisitor;
2042
+ new(parentVisitor: RelationalQueryableMethodTranslatingExpressionVisitor): RelationalQueryableMethodTranslatingExpressionVisitor;
1640
2043
  readonly ValuesOrderingColumnName: string;
1641
2044
  readonly ValuesValueColumnName: string;
1642
2045
  };
@@ -1664,8 +2067,13 @@ export const RelationalQueryableMethodTranslatingExpressionVisitorDependencies:
1664
2067
 
1665
2068
  export type RelationalQueryableMethodTranslatingExpressionVisitorDependencies = RelationalQueryableMethodTranslatingExpressionVisitorDependencies$instance;
1666
2069
 
1667
- export interface RelationalQueryCompilationContext$instance extends QueryCompilationContext {
1668
- readonly QuerySplittingBehavior: Nullable<QuerySplittingBehavior>;
2070
+ export abstract class RelationalQueryCompilationContext$protected {
2071
+ protected readonly RelationalDependencies: RelationalQueryCompilationContextDependencies;
2072
+ }
2073
+
2074
+
2075
+ export interface RelationalQueryCompilationContext$instance extends RelationalQueryCompilationContext$protected, QueryCompilationContext {
2076
+ QuerySplittingBehavior: Nullable<QuerySplittingBehavior>;
1669
2077
  readonly SqlAliasManager: SqlAliasManager;
1670
2078
  }
1671
2079
 
@@ -1695,7 +2103,12 @@ export const RelationalQueryCompilationContextDependencies: {
1695
2103
 
1696
2104
  export type RelationalQueryCompilationContextDependencies = RelationalQueryCompilationContextDependencies$instance;
1697
2105
 
1698
- export interface RelationalQueryContext$instance extends QueryContext {
2106
+ export abstract class RelationalQueryContext$protected {
2107
+ protected readonly RelationalDependencies: RelationalQueryContextDependencies;
2108
+ }
2109
+
2110
+
2111
+ export interface RelationalQueryContext$instance extends RelationalQueryContext$protected, QueryContext {
1699
2112
  readonly CommandLogger: IDiagnosticsLogger_1<DbLoggerCategory_Database_Command> | IRelationalCommandDiagnosticsLogger;
1700
2113
  readonly Connection: IRelationalConnection;
1701
2114
  readonly RelationalQueryStringFactory: IRelationalQueryStringFactory;
@@ -1727,7 +2140,15 @@ export const RelationalQueryContextDependencies: {
1727
2140
 
1728
2141
  export type RelationalQueryContextDependencies = RelationalQueryContextDependencies$instance;
1729
2142
 
1730
- export interface RelationalQueryRootProcessor$instance extends QueryRootProcessor {
2143
+ export abstract class RelationalQueryRootProcessor$protected {
2144
+ protected ShouldConvertToInlineQueryRoot(expression: Expression): boolean;
2145
+ protected ShouldConvertToParameterQueryRoot(queryParameterExpression: QueryParameterExpression): boolean;
2146
+ protected VisitExtension(node: Expression): Expression;
2147
+ protected VisitMethodCall(methodCallExpression: MethodCallExpression): Expression;
2148
+ }
2149
+
2150
+
2151
+ export interface RelationalQueryRootProcessor$instance extends RelationalQueryRootProcessor$protected, QueryRootProcessor {
1731
2152
  }
1732
2153
 
1733
2154
 
@@ -1738,7 +2159,15 @@ export const RelationalQueryRootProcessor: {
1738
2159
 
1739
2160
  export type RelationalQueryRootProcessor = RelationalQueryRootProcessor$instance;
1740
2161
 
1741
- export interface RelationalQueryTranslationPostprocessor$instance extends QueryTranslationPostprocessor {
2162
+ export abstract class RelationalQueryTranslationPostprocessor$protected {
2163
+ protected readonly RelationalDependencies: RelationalQueryTranslationPostprocessorDependencies;
2164
+ protected readonly RelationalQueryCompilationContext: RelationalQueryCompilationContext;
2165
+ protected ProcessTypeMappings(expression: Expression): Expression;
2166
+ protected Prune(query: Expression): Expression;
2167
+ }
2168
+
2169
+
2170
+ export interface RelationalQueryTranslationPostprocessor$instance extends RelationalQueryTranslationPostprocessor$protected, QueryTranslationPostprocessor {
1742
2171
  Process(query: Expression): Expression;
1743
2172
  }
1744
2173
 
@@ -1768,7 +2197,14 @@ export const RelationalQueryTranslationPostprocessorDependencies: {
1768
2197
 
1769
2198
  export type RelationalQueryTranslationPostprocessorDependencies = RelationalQueryTranslationPostprocessorDependencies$instance;
1770
2199
 
1771
- export interface RelationalQueryTranslationPreprocessor$instance extends QueryTranslationPreprocessor {
2200
+ export abstract class RelationalQueryTranslationPreprocessor$protected {
2201
+ protected readonly IsEfConstantSupported: boolean;
2202
+ protected readonly RelationalDependencies: RelationalQueryTranslationPreprocessorDependencies;
2203
+ protected ProcessQueryRoots(expression: Expression): Expression;
2204
+ }
2205
+
2206
+
2207
+ export interface RelationalQueryTranslationPreprocessor$instance extends RelationalQueryTranslationPreprocessor$protected, QueryTranslationPreprocessor {
1772
2208
  NormalizeQueryableMethod(expression: Expression): Expression;
1773
2209
  }
1774
2210
 
@@ -1797,7 +2233,15 @@ export const RelationalQueryTranslationPreprocessorDependencies: {
1797
2233
 
1798
2234
  export type RelationalQueryTranslationPreprocessorDependencies = RelationalQueryTranslationPreprocessorDependencies$instance;
1799
2235
 
1800
- export interface RelationalShapedQueryCompilingExpressionVisitor$instance extends ShapedQueryCompilingExpressionVisitor {
2236
+ export abstract class RelationalShapedQueryCompilingExpressionVisitor$protected {
2237
+ protected readonly MaxNullableParametersForPregeneratedSql: int;
2238
+ protected readonly RelationalDependencies: RelationalShapedQueryCompilingExpressionVisitorDependencies;
2239
+ protected VisitExtension(extensionExpression: Expression): Expression;
2240
+ protected VisitShapedQuery(shapedQueryExpression: ShapedQueryExpression): Expression;
2241
+ }
2242
+
2243
+
2244
+ export interface RelationalShapedQueryCompilingExpressionVisitor$instance extends RelationalShapedQueryCompilingExpressionVisitor$protected, ShapedQueryCompilingExpressionVisitor {
1801
2245
  AddStructuralTypeInitialization(shaper: StructuralTypeShaperExpression, instanceVariable: ParameterExpression, variables: List<ParameterExpression>, expressions: List<Expression>): void;
1802
2246
  AddStructuralTypeInitialization(shaper: StructuralTypeShaperExpression, instanceVariable: ParameterExpression, variables: List<ParameterExpression>, expressions: List<Expression>): void;
1803
2247
  }
@@ -1812,7 +2256,14 @@ export const RelationalShapedQueryCompilingExpressionVisitor: {
1812
2256
 
1813
2257
  export type RelationalShapedQueryCompilingExpressionVisitor = RelationalShapedQueryCompilingExpressionVisitor$instance;
1814
2258
 
1815
- export interface RelationalShapedQueryCompilingExpressionVisitor_ShaperProcessingExpressionVisitor$instance extends ExpressionVisitor {
2259
+ export abstract class RelationalShapedQueryCompilingExpressionVisitor_ShaperProcessingExpressionVisitor$protected {
2260
+ protected VisitBinary(binaryExpression: BinaryExpression): Expression;
2261
+ protected VisitExtension(extensionExpression: Expression): Expression;
2262
+ protected VisitMethodCall(methodCallExpression: MethodCallExpression): Expression;
2263
+ }
2264
+
2265
+
2266
+ export interface RelationalShapedQueryCompilingExpressionVisitor_ShaperProcessingExpressionVisitor$instance extends RelationalShapedQueryCompilingExpressionVisitor_ShaperProcessingExpressionVisitor$protected, ExpressionVisitor {
1816
2267
  ProcessRelationalGroupingResult(relationalGroupByResultExpression: RelationalGroupByResultExpression, relationalCommandResolver: Expression, readerColumns: IReadOnlyList<ReaderColumn>, keySelector: LambdaExpression, keyIdentifier: LambdaExpression, relatedDataLoaders: LambdaExpression, collectionId: int): LambdaExpression;
1817
2268
  ProcessShaper(shaperExpression: Expression, relationalCommandResolver: Expression, readerColumns: IReadOnlyList<ReaderColumn>, relatedDataLoaders: LambdaExpression, collectionId: int): LambdaExpression;
1818
2269
  }
@@ -1865,7 +2316,12 @@ export const RelationalShapedQueryCompilingExpressionVisitorDependencies: {
1865
2316
 
1866
2317
  export type RelationalShapedQueryCompilingExpressionVisitorDependencies = RelationalShapedQueryCompilingExpressionVisitorDependencies$instance;
1867
2318
 
1868
- export interface RelationalSplitCollectionShaperExpression$instance extends Expression {
2319
+ export abstract class RelationalSplitCollectionShaperExpression$protected {
2320
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
2321
+ }
2322
+
2323
+
2324
+ export interface RelationalSplitCollectionShaperExpression$instance extends RelationalSplitCollectionShaperExpression$protected, Expression {
1869
2325
  readonly ChildIdentifier: Expression;
1870
2326
  readonly ElementType: Type;
1871
2327
  readonly IdentifierValueComparers: IReadOnlyList<ValueComparer>;
@@ -1893,8 +2349,31 @@ export interface RelationalSplitCollectionShaperExpression$instance extends IPri
1893
2349
  export type RelationalSplitCollectionShaperExpression = RelationalSplitCollectionShaperExpression$instance & __RelationalSplitCollectionShaperExpression$views;
1894
2350
 
1895
2351
 
1896
- export interface RelationalSqlTranslatingExpressionVisitor$instance extends ExpressionVisitor {
1897
- readonly TranslationErrorDetails: string | undefined;
2352
+ export abstract class RelationalSqlTranslatingExpressionVisitor$protected {
2353
+ protected readonly Dependencies: RelationalSqlTranslatingExpressionVisitorDependencies;
2354
+ protected AddTranslationErrorDetails(details: string): void;
2355
+ protected TryTranslateAggregateMethodCall(methodCallExpression: MethodCallExpression, translation: SqlExpression): boolean;
2356
+ protected VisitBinary(binaryExpression: BinaryExpression): Expression;
2357
+ protected VisitConditional(conditionalExpression: ConditionalExpression): Expression;
2358
+ protected VisitConstant(constantExpression: ConstantExpression): Expression;
2359
+ protected VisitExtension(extensionExpression: Expression): Expression;
2360
+ protected VisitInvocation(invocationExpression: InvocationExpression): Expression;
2361
+ protected VisitLambda<T>(lambdaExpression: Expression<T>): Expression;
2362
+ protected VisitListInit(listInitExpression: ListInitExpression): Expression;
2363
+ protected VisitMember(memberExpression: MemberExpression): Expression;
2364
+ protected VisitMemberInit(memberInitExpression: MemberInitExpression): Expression;
2365
+ protected VisitMethodCall(methodCallExpression: MethodCallExpression): Expression;
2366
+ protected VisitNew(newExpression: NewExpression): Expression;
2367
+ protected VisitNewArray(newArrayExpression: NewArrayExpression): Expression;
2368
+ protected VisitParameter(parameterExpression: ParameterExpression): Expression;
2369
+ protected VisitTypeBinary(typeBinaryExpression: TypeBinaryExpression): Expression;
2370
+ protected VisitUnary(unaryExpression: UnaryExpression): Expression;
2371
+ }
2372
+
2373
+
2374
+ export interface RelationalSqlTranslatingExpressionVisitor$instance extends RelationalSqlTranslatingExpressionVisitor$protected, ExpressionVisitor {
2375
+ get TranslationErrorDetails(): string | undefined;
2376
+ set TranslationErrorDetails(value: string);
1898
2377
  GenerateGreatest(expressions: IReadOnlyList<SqlExpression>, resultType: Type): SqlExpression | undefined;
1899
2378
  GenerateLeast(expressions: IReadOnlyList<SqlExpression>, resultType: Type): SqlExpression | undefined;
1900
2379
  Translate(expression: Expression, applyDefaultTypeMapping?: boolean): SqlExpression | undefined;
@@ -1934,7 +2413,12 @@ export const RelationalSqlTranslatingExpressionVisitorDependencies: {
1934
2413
 
1935
2414
  export type RelationalSqlTranslatingExpressionVisitorDependencies = RelationalSqlTranslatingExpressionVisitorDependencies$instance;
1936
2415
 
1937
- export interface RelationalSqlTranslatingExpressionVisitorFactory$instance {
2416
+ export abstract class RelationalSqlTranslatingExpressionVisitorFactory$protected {
2417
+ protected readonly Dependencies: RelationalSqlTranslatingExpressionVisitorDependencies;
2418
+ }
2419
+
2420
+
2421
+ export interface RelationalSqlTranslatingExpressionVisitorFactory$instance extends RelationalSqlTranslatingExpressionVisitorFactory$protected {
1938
2422
  Create(queryCompilationContext: QueryCompilationContext, queryableMethodTranslatingExpressionVisitor: QueryableMethodTranslatingExpressionVisitor): RelationalSqlTranslatingExpressionVisitor;
1939
2423
  }
1940
2424
 
@@ -1953,7 +2437,12 @@ export interface RelationalSqlTranslatingExpressionVisitorFactory$instance exten
1953
2437
  export type RelationalSqlTranslatingExpressionVisitorFactory = RelationalSqlTranslatingExpressionVisitorFactory$instance & __RelationalSqlTranslatingExpressionVisitorFactory$views;
1954
2438
 
1955
2439
 
1956
- export interface RelationalStructuralTypeShaperExpression$instance extends StructuralTypeShaperExpression$instance {
2440
+ export abstract class RelationalStructuralTypeShaperExpression$protected {
2441
+ protected GenerateMaterializationCondition(type: ITypeBase, nullable: boolean): LambdaExpression;
2442
+ }
2443
+
2444
+
2445
+ export interface RelationalStructuralTypeShaperExpression$instance extends RelationalStructuralTypeShaperExpression$protected, StructuralTypeShaperExpression$instance {
1957
2446
  MakeClrTypeNonNullable(): StructuralTypeShaperExpression;
1958
2447
  MakeClrTypeNullable(): StructuralTypeShaperExpression;
1959
2448
  MakeNullable(nullable?: boolean): StructuralTypeShaperExpression;
@@ -1965,6 +2454,7 @@ export interface RelationalStructuralTypeShaperExpression$instance extends Struc
1965
2454
 
1966
2455
  export const RelationalStructuralTypeShaperExpression: {
1967
2456
  new(structuralType: ITypeBase, valueBufferExpression: Expression, nullable: boolean): RelationalStructuralTypeShaperExpression;
2457
+ new(type: ITypeBase, valueBufferExpression: Expression, nullable: boolean, materializationCondition: LambdaExpression, clrType: Type): RelationalStructuralTypeShaperExpression;
1968
2458
  };
1969
2459
 
1970
2460
 
@@ -1977,7 +2467,17 @@ export interface RelationalStructuralTypeShaperExpression$instance extends IPrin
1977
2467
  export type RelationalStructuralTypeShaperExpression = RelationalStructuralTypeShaperExpression$instance & __RelationalStructuralTypeShaperExpression$views;
1978
2468
 
1979
2469
 
1980
- export interface RelationalTypeMappingPostprocessor$instance extends ExpressionVisitor {
2470
+ export abstract class RelationalTypeMappingPostprocessor$protected {
2471
+ protected readonly Dependencies: QueryTranslationPostprocessorDependencies;
2472
+ protected readonly QueryCompilationContext: RelationalQueryCompilationContext;
2473
+ protected readonly RelationalDependencies: RelationalQueryTranslationPostprocessorDependencies;
2474
+ protected ApplyTypeMappingsOnValuesExpression(valuesExpression: ValuesExpression): ValuesExpression;
2475
+ protected TryGetInferredTypeMapping(tableAlias: string, columnName: string, inferredTypeMapping: RelationalTypeMapping): boolean;
2476
+ protected VisitExtension(expression: Expression): Expression;
2477
+ }
2478
+
2479
+
2480
+ export interface RelationalTypeMappingPostprocessor$instance extends RelationalTypeMappingPostprocessor$protected, ExpressionVisitor {
1981
2481
  Process(expression: Expression): Expression;
1982
2482
  }
1983
2483
 
@@ -1989,7 +2489,13 @@ export const RelationalTypeMappingPostprocessor: {
1989
2489
 
1990
2490
  export type RelationalTypeMappingPostprocessor = RelationalTypeMappingPostprocessor$instance;
1991
2491
 
1992
- export interface ReplacingExpressionVisitor$instance extends ExpressionVisitor {
2492
+ export abstract class ReplacingExpressionVisitor$protected {
2493
+ protected VisitMember(memberExpression: MemberExpression): Expression;
2494
+ protected VisitMethodCall(methodCallExpression: MethodCallExpression): Expression;
2495
+ }
2496
+
2497
+
2498
+ export interface ReplacingExpressionVisitor$instance extends ReplacingExpressionVisitor$protected, ExpressionVisitor {
1993
2499
  Visit(expression: Expression): Expression | undefined;
1994
2500
  }
1995
2501
 
@@ -2003,12 +2509,24 @@ export const ReplacingExpressionVisitor: {
2003
2509
 
2004
2510
  export type ReplacingExpressionVisitor = ReplacingExpressionVisitor$instance;
2005
2511
 
2006
- export interface ShapedQueryCompilingExpressionVisitor$instance extends ExpressionVisitor {
2512
+ export abstract class ShapedQueryCompilingExpressionVisitor$protected {
2513
+ protected readonly Dependencies: ShapedQueryCompilingExpressionVisitorDependencies;
2514
+ protected readonly QueryCompilationContext: QueryCompilationContext;
2515
+ protected InjectEntityMaterializers(expression: Expression): Expression;
2516
+ protected InjectStructuralTypeMaterializers(expression: Expression): Expression;
2517
+ protected VerifyNoClientConstant(expression: Expression): void;
2518
+ protected VisitExtension(extensionExpression: Expression): Expression;
2519
+ protected abstract VisitShapedQuery(shapedQueryExpression: ShapedQueryExpression): Expression;
2520
+ }
2521
+
2522
+
2523
+ export interface ShapedQueryCompilingExpressionVisitor$instance extends ShapedQueryCompilingExpressionVisitor$protected, ExpressionVisitor {
2007
2524
  AddStructuralTypeInitialization(shaper: StructuralTypeShaperExpression, instanceVariable: ParameterExpression, variables: List<ParameterExpression>, expressions: List<Expression>): void;
2008
2525
  }
2009
2526
 
2010
2527
 
2011
2528
  export const ShapedQueryCompilingExpressionVisitor: {
2529
+ new(dependencies: ShapedQueryCompilingExpressionVisitorDependencies, queryCompilationContext: QueryCompilationContext): ShapedQueryCompilingExpressionVisitor;
2012
2530
  CreateNullKeyValueInNoTrackingQuery(entityType: IEntityType, properties: IReadOnlyList<IProperty>, keyValues: unknown[]): Exception;
2013
2531
  SingleAsync<TSource>(asyncEnumerable: IAsyncEnumerable<TSource>, cancellationToken?: CancellationToken): Task<TSource>;
2014
2532
  SingleOrDefaultAsync<TSource>(asyncEnumerable: IAsyncEnumerable<TSource>, cancellationToken?: CancellationToken): Task<TSource | undefined>;
@@ -2042,7 +2560,12 @@ export const ShapedQueryCompilingExpressionVisitorDependencies: {
2042
2560
 
2043
2561
  export type ShapedQueryCompilingExpressionVisitorDependencies = ShapedQueryCompilingExpressionVisitorDependencies$instance;
2044
2562
 
2045
- export interface ShapedQueryExpression$instance extends Expression {
2563
+ export abstract class ShapedQueryExpression$protected {
2564
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
2565
+ }
2566
+
2567
+
2568
+ export interface ShapedQueryExpression$instance extends ShapedQueryExpression$protected, Expression {
2046
2569
  readonly NodeType: ExpressionType;
2047
2570
  readonly QueryExpression: Expression;
2048
2571
  readonly ResultCardinality: ResultCardinality;
@@ -2069,7 +2592,12 @@ export interface ShapedQueryExpression$instance extends IPrintableExpression$ins
2069
2592
  export type ShapedQueryExpression = ShapedQueryExpression$instance & __ShapedQueryExpression$views;
2070
2593
 
2071
2594
 
2072
- export interface SqlAliasManager$instance {
2595
+ export abstract class SqlAliasManager$protected {
2596
+ protected RemapTableAliases(usedAliases: IReadOnlySet<System_Internal.String>): Dictionary<System_Internal.String, System_Internal.String> | undefined;
2597
+ }
2598
+
2599
+
2600
+ export interface SqlAliasManager$instance extends SqlAliasManager$protected {
2073
2601
  GenerateTableAlias(name: string): string;
2074
2602
  GenerateTableAlias(modelTable: ITableBase): string;
2075
2603
  PostprocessAliases(expression: Expression): Expression;
@@ -2102,7 +2630,12 @@ export interface SqlAliasManagerFactory$instance extends ISqlAliasManagerFactory
2102
2630
  export type SqlAliasManagerFactory = SqlAliasManagerFactory$instance & __SqlAliasManagerFactory$views;
2103
2631
 
2104
2632
 
2105
- export interface SqlExpressionFactory$instance {
2633
+ export abstract class SqlExpressionFactory$protected {
2634
+ protected readonly Dependencies: SqlExpressionFactoryDependencies;
2635
+ }
2636
+
2637
+
2638
+ export interface SqlExpressionFactory$instance extends SqlExpressionFactory$protected {
2106
2639
  Add(left: SqlExpression, right: SqlExpression, typeMapping?: RelationalTypeMapping): SqlExpression;
2107
2640
  And(left: SqlExpression, right: SqlExpression, typeMapping?: RelationalTypeMapping): SqlExpression;
2108
2641
  AndAlso(left: SqlExpression, right: SqlExpression): SqlExpression;
@@ -2179,17 +2712,97 @@ export const SqlExpressionFactoryDependencies: {
2179
2712
 
2180
2713
  export type SqlExpressionFactoryDependencies = SqlExpressionFactoryDependencies$instance;
2181
2714
 
2182
- export interface SqlExpressionVisitor$instance extends ExpressionVisitor {
2715
+ export abstract class SqlExpressionVisitor$protected {
2716
+ protected abstract VisitAtTimeZone(atTimeZoneExpression: AtTimeZoneExpression): Expression;
2717
+ protected abstract VisitCase(caseExpression: CaseExpression): Expression;
2718
+ protected abstract VisitCollate(collateExpression: CollateExpression): Expression;
2719
+ protected abstract VisitColumn(columnExpression: ColumnExpression): Expression;
2720
+ protected abstract VisitCrossApply(crossApplyExpression: CrossApplyExpression): Expression;
2721
+ protected abstract VisitCrossJoin(crossJoinExpression: CrossJoinExpression): Expression;
2722
+ protected abstract VisitDelete(deleteExpression: DeleteExpression): Expression;
2723
+ protected abstract VisitDistinct(distinctExpression: DistinctExpression): Expression;
2724
+ protected abstract VisitExcept(exceptExpression: ExceptExpression): Expression;
2725
+ protected abstract VisitExists(existsExpression: ExistsExpression): Expression;
2726
+ protected VisitExtension(extensionExpression: Expression): Expression;
2727
+ protected abstract VisitFromSql(fromSqlExpression: FromSqlExpression): Expression;
2728
+ protected abstract VisitIn(inExpression: InExpression): Expression;
2729
+ protected abstract VisitInnerJoin(innerJoinExpression: InnerJoinExpression): Expression;
2730
+ protected abstract VisitIntersect(intersectExpression: IntersectExpression): Expression;
2731
+ protected abstract VisitJsonScalar(jsonScalarExpression: JsonScalarExpression): Expression;
2732
+ protected abstract VisitLeftJoin(leftJoinExpression: LeftJoinExpression): Expression;
2733
+ protected abstract VisitLike(likeExpression: LikeExpression): Expression;
2734
+ protected abstract VisitOrdering(orderingExpression: OrderingExpression): Expression;
2735
+ protected abstract VisitOuterApply(outerApplyExpression: OuterApplyExpression): Expression;
2736
+ protected abstract VisitProjection(projectionExpression: ProjectionExpression): Expression;
2737
+ protected abstract VisitRightJoin(rightJoinExpression: RightJoinExpression): Expression;
2738
+ protected abstract VisitRowNumber(rowNumberExpression: RowNumberExpression): Expression;
2739
+ protected abstract VisitRowValue(rowValueExpression: RowValueExpression): Expression;
2740
+ protected abstract VisitScalarSubquery(scalarSubqueryExpression: ScalarSubqueryExpression): Expression;
2741
+ protected abstract VisitSelect(selectExpression: SelectExpression): Expression;
2742
+ protected abstract VisitSqlBinary(sqlBinaryExpression: SqlBinaryExpression): Expression;
2743
+ protected abstract VisitSqlConstant(sqlConstantExpression: SqlConstantExpression): Expression;
2744
+ protected abstract VisitSqlFragment(sqlFragmentExpression: SqlFragmentExpression): Expression;
2745
+ protected abstract VisitSqlFunction(sqlFunctionExpression: SqlFunctionExpression): Expression;
2746
+ protected abstract VisitSqlParameter(sqlParameterExpression: SqlParameterExpression): Expression;
2747
+ protected abstract VisitSqlUnary(sqlUnaryExpression: SqlUnaryExpression): Expression;
2748
+ protected abstract VisitTable(tableExpression: TableExpression): Expression;
2749
+ protected abstract VisitTableValuedFunction(tableValuedFunctionExpression: TableValuedFunctionExpression): Expression;
2750
+ protected abstract VisitUnion(unionExpression: UnionExpression): Expression;
2751
+ protected abstract VisitUpdate(updateExpression: UpdateExpression): Expression;
2752
+ protected abstract VisitValues(valuesExpression: ValuesExpression): Expression;
2753
+ }
2754
+
2755
+
2756
+ export interface SqlExpressionVisitor$instance extends SqlExpressionVisitor$protected, ExpressionVisitor {
2183
2757
  }
2184
2758
 
2185
2759
 
2186
2760
  export const SqlExpressionVisitor: {
2761
+ new(): SqlExpressionVisitor;
2187
2762
  };
2188
2763
 
2189
2764
 
2190
2765
  export type SqlExpressionVisitor = SqlExpressionVisitor$instance;
2191
2766
 
2192
- export interface SqlNullabilityProcessor$instance extends ExpressionVisitor {
2767
+ export abstract class SqlNullabilityProcessor$protected {
2768
+ protected readonly Dependencies: RelationalParameterBasedSqlProcessorDependencies;
2769
+ protected ParametersDecorator: ParametersCacheDecorator;
2770
+ protected readonly PreferExistsToInWithCoalesce: boolean;
2771
+ protected readonly UseRelationalNulls: boolean;
2772
+ protected AddNonNullableColumn(columnExpression: ColumnExpression): void;
2773
+ protected CalculateParameterBucketSize(count: int, elementTypeMapping: RelationalTypeMapping): int;
2774
+ protected IsCollectionTable(table: TableExpressionBase, collection: Expression): boolean;
2775
+ protected OptimizeNotExpression(expression: SqlExpression): SqlExpression;
2776
+ protected ProcessValuesOrderingColumn(valuesExpression: ValuesExpression, expressions: IReadOnlyList<SqlExpression>, intTypeMapping: IntTypeMapping, counter: int): IReadOnlyList<SqlExpression>;
2777
+ protected TryMakeNonNullable(selectExpression: SelectExpression, rewrittenSelectExpression: SelectExpression, foundNull: Nullable<System_Internal.Boolean>): boolean;
2778
+ protected UpdateParameterCollection(table: TableExpressionBase, newCollectionParameter: SqlParameterExpression): TableExpressionBase;
2779
+ protected Visit(selectExpression: SelectExpression, visitProjection?: boolean): SelectExpression;
2780
+ protected Visit(sqlExpression: SqlExpression, nullable: boolean): SqlExpression | undefined;
2781
+ protected Visit(sqlExpression: SqlExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression | undefined;
2782
+ protected VisitAtTimeZone(atTimeZoneExpression: AtTimeZoneExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2783
+ protected VisitCase(caseExpression: CaseExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2784
+ protected VisitCollate(collateExpression: CollateExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2785
+ protected VisitColumn(columnExpression: ColumnExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2786
+ protected VisitCustomSqlExpression(sqlExpression: SqlExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2787
+ protected VisitDistinct(distinctExpression: DistinctExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2788
+ protected VisitExists(existsExpression: ExistsExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2789
+ protected VisitExtension(node: Expression): Expression;
2790
+ protected VisitIn(inExpression: InExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2791
+ protected VisitJsonScalar(jsonScalarExpression: JsonScalarExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2792
+ protected VisitLike(likeExpression: LikeExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2793
+ protected VisitRowNumber(rowNumberExpression: RowNumberExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2794
+ protected VisitRowValue(rowValueExpression: RowValueExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2795
+ protected VisitScalarSubquery(scalarSubqueryExpression: ScalarSubqueryExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2796
+ protected VisitSqlBinary(sqlBinaryExpression: SqlBinaryExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2797
+ protected VisitSqlConstant(sqlConstantExpression: SqlConstantExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2798
+ protected VisitSqlFragment(sqlFragmentExpression: SqlFragmentExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2799
+ protected VisitSqlFunction(sqlFunctionExpression: SqlFunctionExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2800
+ protected VisitSqlParameter(sqlParameterExpression: SqlParameterExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2801
+ protected VisitSqlUnary(sqlUnaryExpression: SqlUnaryExpression, allowOptimizedExpansion: boolean, nullable: boolean): SqlExpression;
2802
+ }
2803
+
2804
+
2805
+ export interface SqlNullabilityProcessor$instance extends SqlNullabilityProcessor$protected, ExpressionVisitor {
2193
2806
  readonly CollectionParameterTranslationMode: ParameterTranslationMode;
2194
2807
  Process(queryExpression: Expression, parametersDecorator: ParametersCacheDecorator): Expression;
2195
2808
  }
@@ -2202,7 +2815,17 @@ export const SqlNullabilityProcessor: {
2202
2815
 
2203
2816
  export type SqlNullabilityProcessor = SqlNullabilityProcessor$instance;
2204
2817
 
2205
- export interface SqlTreePruner$instance extends ExpressionVisitor {
2818
+ export abstract class SqlTreePruner$protected {
2819
+ protected CurrentTableAlias: string | undefined;
2820
+ protected readonly ReferencedColumnMap: IReadOnlyDictionary<System_Internal.String, HashSet<System_Internal.String>>;
2821
+ protected PruneSelect(select: SelectExpression, preserveProjection: boolean): SelectExpression;
2822
+ protected PruneTopLevelSelect(select: SelectExpression): SelectExpression;
2823
+ protected PruneValues(values: ValuesExpression): ValuesExpression;
2824
+ protected VisitExtension(node: Expression): Expression;
2825
+ }
2826
+
2827
+
2828
+ export interface SqlTreePruner$instance extends SqlTreePruner$protected, ExpressionVisitor {
2206
2829
  Prune(expression: Expression): Expression;
2207
2830
  }
2208
2831
 
@@ -2214,7 +2837,12 @@ export const SqlTreePruner: {
2214
2837
 
2215
2838
  export type SqlTreePruner = SqlTreePruner$instance;
2216
2839
 
2217
- export interface StructuralTypeProjectionExpression$instance extends Expression {
2840
+ export abstract class StructuralTypeProjectionExpression$protected {
2841
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
2842
+ }
2843
+
2844
+
2845
+ export interface StructuralTypeProjectionExpression$instance extends StructuralTypeProjectionExpression$protected, Expression {
2218
2846
  readonly DiscriminatorExpression: SqlExpression | undefined;
2219
2847
  readonly IsNullable: boolean;
2220
2848
  readonly NodeType: ExpressionType;
@@ -2240,7 +2868,13 @@ export const StructuralTypeProjectionExpression: {
2240
2868
 
2241
2869
  export type StructuralTypeProjectionExpression = StructuralTypeProjectionExpression$instance;
2242
2870
 
2243
- export interface StructuralTypeShaperExpression$instance extends Expression {
2871
+ export abstract class StructuralTypeShaperExpression$protected {
2872
+ protected GenerateMaterializationCondition(type: ITypeBase, nullable: boolean): LambdaExpression;
2873
+ protected VisitChildren(visitor: ExpressionVisitor): Expression;
2874
+ }
2875
+
2876
+
2877
+ export interface StructuralTypeShaperExpression$instance extends StructuralTypeShaperExpression$protected, Expression {
2244
2878
  readonly IsNullable: boolean;
2245
2879
  readonly MaterializationCondition: LambdaExpression;
2246
2880
  readonly NodeType: ExpressionType;
@@ -2258,7 +2892,9 @@ export interface StructuralTypeShaperExpression$instance extends Expression {
2258
2892
 
2259
2893
  export const StructuralTypeShaperExpression: {
2260
2894
  new(type: ITypeBase, valueBufferExpression: Expression, nullable: boolean): StructuralTypeShaperExpression;
2895
+ new(type: ITypeBase, valueBufferExpression: Expression, nullable: boolean, materializationCondition: LambdaExpression, clrType: Type): StructuralTypeShaperExpression;
2261
2896
  CreateUnableToDiscriminateException(type: ITypeBase, discriminator: unknown): Exception;
2897
+ CreateUnableToDiscriminateExceptionExpression(type: ITypeBase, discriminatorValue: Expression): Expression;
2262
2898
  };
2263
2899
 
2264
2900