-
Notifications
You must be signed in to change notification settings - Fork 3.2k
/
CompiledQuery.cs
130 lines (120 loc) · 7.52 KB
/
CompiledQuery.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Linq.Expressions;
using System.Threading;
using JetBrains.Annotations;
namespace Microsoft.EntityFrameworkCore.Query.Internal
{
/// <summary>
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
/// any release. You should only use it directly in your code with extreme caution and knowing that
/// doing so can result in application failures when updating to a new Entity Framework Core release.
/// </summary>
public class CompiledQuery<TContext, TResult> : CompiledQueryBase<TContext, TResult>
where TContext : DbContext
{
/// <summary>
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
/// any release. You should only use it directly in your code with extreme caution and knowing that
/// doing so can result in application failures when updating to a new Entity Framework Core release.
/// </summary>
public CompiledQuery([NotNull] LambdaExpression queryExpression)
: base(queryExpression)
{
}
/// <summary>
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
/// any release. You should only use it directly in your code with extreme caution and knowing that
/// doing so can result in application failures when updating to a new Entity Framework Core release.
/// </summary>
public virtual TResult Execute(
[NotNull] TContext context)
=> ExecuteCore(context);
/// <summary>
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
/// any release. You should only use it directly in your code with extreme caution and knowing that
/// doing so can result in application failures when updating to a new Entity Framework Core release.
/// </summary>
public virtual TResult Execute<TParam1>(
[NotNull] TContext context,
[CanBeNull] TParam1 param1)
=> ExecuteCore(context, param1);
#pragma warning disable CA1068 // CancellationToken parameters must come last
/// <summary>
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
/// any release. You should only use it directly in your code with extreme caution and knowing that
/// doing so can result in application failures when updating to a new Entity Framework Core release.
/// </summary>
public virtual TResult ExecuteAsync<TParam1>(
#pragma warning restore CA1068 // CancellationToken parameters must come last
[NotNull] TContext context,
CancellationToken cancellationToken,
[CanBeNull] TParam1 param1)
=> ExecuteCore(context, param1);
/// <summary>
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
/// any release. You should only use it directly in your code with extreme caution and knowing that
/// doing so can result in application failures when updating to a new Entity Framework Core release.
/// </summary>
public virtual TResult Execute<TParam1, TParam2>(
[NotNull] TContext context,
[CanBeNull] TParam1 param1,
[CanBeNull] TParam2 param2)
=> ExecuteCore(context, param1, param2);
/// <summary>
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
/// any release. You should only use it directly in your code with extreme caution and knowing that
/// doing so can result in application failures when updating to a new Entity Framework Core release.
/// </summary>
public virtual TResult Execute<TParam1, TParam2, TParam3>(
[NotNull] TContext context,
[CanBeNull] TParam1 param1,
[CanBeNull] TParam2 param2,
[CanBeNull] TParam3 param3)
=> ExecuteCore(context, param1, param2, param3);
/// <summary>
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
/// any release. You should only use it directly in your code with extreme caution and knowing that
/// doing so can result in application failures when updating to a new Entity Framework Core release.
/// </summary>
public virtual TResult Execute<TParam1, TParam2, TParam3, TParam4>(
[NotNull] TContext context,
[CanBeNull] TParam1 param1,
[CanBeNull] TParam2 param2,
[CanBeNull] TParam3 param3,
[CanBeNull] TParam4 param4)
=> ExecuteCore(context, param1, param2, param3, param4);
/// <summary>
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
/// any release. You should only use it directly in your code with extreme caution and knowing that
/// doing so can result in application failures when updating to a new Entity Framework Core release.
/// </summary>
public virtual TResult Execute<TParam1, TParam2, TParam3, TParam4, TParam5>(
[NotNull] TContext context,
[CanBeNull] TParam1 param1,
[CanBeNull] TParam2 param2,
[CanBeNull] TParam3 param3,
[CanBeNull] TParam4 param4,
[CanBeNull] TParam5 param5)
=> ExecuteCore(context, param1, param2, param3, param4, param5);
/// <summary>
/// This is an internal API that supports the Entity Framework Core infrastructure and not subject to
/// the same compatibility standards as public APIs. It may be changed or removed without notice in
/// any release. You should only use it directly in your code with extreme caution and knowing that
/// doing so can result in application failures when updating to a new Entity Framework Core release.
/// </summary>
protected override Func<QueryContext, TResult> CreateCompiledQuery(
IQueryCompiler queryCompiler, Expression expression)
=> queryCompiler.CreateCompiledQuery<TResult>(expression);
}
}