Skip to content

Commit 69a991b

Browse files
Update source with our internal repository
1 parent 0d0b947 commit 69a991b

File tree

23 files changed

+275
-231
lines changed

23 files changed

+275
-231
lines changed

src/shared/Z.EF.Plus.Audit.Shared/Audit.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,8 @@ public Audit()
3737
Entries = new List<AuditEntry>();
3838

3939
try
40-
{
41-
#if !NETSTANDARD1_3
42-
CreatedBy = System.Threading.Thread.CurrentPrincipal?.Identity?.Name;
43-
#endif
40+
{
41+
CreatedBy = System.Threading.Thread.CurrentPrincipal?.Identity?.Name;
4442

4543
if (string.IsNullOrEmpty(CreatedBy))
4644
{

src/shared/Z.EF.Plus.Audit.Shared/AuditConfiguration/FormatType.cs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ namespace Z.EntityFramework.Plus
1212
public partial class AuditConfiguration
1313
{
1414
public AuditConfiguration FormatType<T>(Func<T, object> formatter)
15-
{
16-
#if !NETSTANDARD1_3
15+
{
1716
Func<object, object> func = o =>
1817
{
1918
T obj;
@@ -29,10 +28,8 @@ public AuditConfiguration FormatType<T>(Func<T, object> formatter)
2928

3029
return formatter(obj);
3130

32-
};
33-
#else
34-
Func<object, object> func = o => formatter((T) o);
35-
#endif
31+
};
32+
3633
EntityValueFormatters.Add((x, s, v) => v != null && (v.GetType() == typeof(T) ||
3734
(
3835
typeof(T).IsGenericType && typeof(T).GetGenericTypeDefinition() == typeof(Nullable<>) && v.GetType() == typeof(T).GetGenericArguments()[0]

src/shared/Z.EF.Plus.BatchUpdate.Shared/BatchUpdate.cs

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,7 +1185,6 @@
11851185
// var param = command.CreateParameter();
11861186
// param.CopyFrom(relationalParameter, parameter, name);
11871187

1188-
//#if !NETSTANDARD1_3
11891188
// if (isPostgreSQL)
11901189
// {
11911190
// Type itemType = param.Value.GetType();
@@ -1196,7 +1195,6 @@
11961195
// param.Value = Convert.ChangeType(param.Value, underlyingType);
11971196
// }
11981197
// }
1199-
//#endif
12001198

12011199
// command.Parameters.Add(param);
12021200
// }
@@ -1246,7 +1244,6 @@
12461244
// parameter.DbType = DbType.DateTime2;
12471245
// }
12481246

1249-
//#if !NETSTANDARD1_3
12501247
// if (isPostgreSQL)
12511248
// {
12521249
// Type itemType = parameter.Value.GetType();
@@ -1257,7 +1254,6 @@
12571254
// parameter.Value = Convert.ChangeType(paramValue, underlyingType);
12581255
// }
12591256
// }
1260-
//#endif
12611257
// }
12621258

12631259
// command.Parameters.Add(parameter);
@@ -1572,19 +1568,7 @@
15721568
//#elif EFCORE
15731569
// RelationalQueryContext queryContext;
15741570
// var command = ((IQueryable)result).CreateCommand(out queryContext);
1575-
// var commandText = command.CommandText;
1576-
//#if NETSTANDARD1_3
1577-
// // GET the 'value' part
1578-
// var pos = commandText.IndexOf("AS [value]" + Environment.NewLine + "FROM", StringComparison.CurrentCultureIgnoreCase) != -1 ?
1579-
// commandText.IndexOf("AS [value]" + Environment.NewLine + "FROM", StringComparison.CurrentCultureIgnoreCase) - 6 :
1580-
// commandText.IndexOf(Environment.NewLine + " FROM", StringComparison.CurrentCultureIgnoreCase) != -1 ?
1581-
// commandText.IndexOf(Environment.NewLine + " FROM", StringComparison.CurrentCultureIgnoreCase) - 6 :
1582-
// commandText.IndexOf(Environment.NewLine + "FROM", StringComparison.CurrentCultureIgnoreCase) != -1 ?
1583-
// commandText.IndexOf(Environment.NewLine + "FROM", StringComparison.CurrentCultureIgnoreCase) - 6 :
1584-
// commandText.IndexOf("FROM", StringComparison.CurrentCultureIgnoreCase) - 6;
1585-
1586-
// var valueSql = commandText.Substring(6, pos);
1587-
//#else
1571+
// var commandText = command.CommandText;
15881572
// // GET the 'value' part
15891573
// var pos = commandText.IndexOf("AS [value]" + Environment.NewLine + "FROM", StringComparison.OrdinalIgnoreCase) != -1 ?
15901574
// commandText.IndexOf("AS [value]" + Environment.NewLine + "FROM", StringComparison.OrdinalIgnoreCase) - 6 :
@@ -1594,9 +1578,7 @@
15941578
// commandText.IndexOf(Environment.NewLine + "FROM", StringComparison.OrdinalIgnoreCase) - 6 :
15951579
// commandText.IndexOf("FROM", StringComparison.OrdinalIgnoreCase) - 6;
15961580

1597-
// var valueSql = commandText.Substring(6, pos);
1598-
//#endif
1599-
1581+
// var valueSql = commandText.Substring(6, pos);
16001582
// valueSql = valueSql.Trim();
16011583

16021584
// if (updateFactory.Parameters != null && updateFactory.Parameters.Count == 1)

src/shared/Z.EF.Plus.QueryCache.Shared/Extensions/IQueryable`/FromCacheAsync.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public static Task<IEnumerable<T>> FromCacheAsync<T>(this IQueryable<T> query, C
4747
});
4848
}
4949

50-
var key = QueryCacheManager.GetCacheKey(query, tags);
50+
var key = QueryCacheManager.GetCacheKey(query, tags, true);
5151

5252
var result = Task.Run(() =>
5353
{
@@ -88,7 +88,7 @@ public static Task<IEnumerable<T>> FromCacheAsync<T>(this IQueryable<T> query, D
8888
});
8989
}
9090

91-
var key = QueryCacheManager.GetCacheKey(query, tags);
91+
var key = QueryCacheManager.GetCacheKey(query, tags, true);
9292

9393
var result = Task.Run(() =>
9494
{
@@ -144,7 +144,7 @@ public static Task<IEnumerable<T>> FromCacheAsync<T>(this IQueryable<T> query, p
144144
return await query.AsNoTracking().ToListAsync(cancellationToken).ConfigureAwait(false);
145145
}
146146

147-
var key = QueryCacheManager.GetCacheKey(query, tags);
147+
var key = QueryCacheManager.GetCacheKey(query, tags, true);
148148

149149
var item = QueryCacheManager.Get<List<T>>(key);
150150

@@ -199,7 +199,7 @@ public static Task<IEnumerable<T>> FromCacheAsync<T>(this IQueryable<T> query, C
199199
return await query.AsNoTracking().ToListAsync(cancellationToken).ConfigureAwait(false);
200200
}
201201

202-
var key = QueryCacheManager.GetCacheKey(query, tags);
202+
var key = QueryCacheManager.GetCacheKey(query, tags, true);
203203

204204
var item = QueryCacheManager.Get<List<T>>(key);
205205

@@ -287,7 +287,7 @@ public static Task<IEnumerable<T>> FromCacheAsync<T>(this IQueryable<T> query, p
287287
return await query.AsNoTracking().ToListAsync(cancellationToken).ConfigureAwait(false);
288288
}
289289

290-
var key = QueryCacheManager.GetCacheKey(query, tags);
290+
var key = QueryCacheManager.GetCacheKey(query, tags, true);
291291

292292
object item;
293293
if (!QueryCacheManager.Cache.TryGetValue(key, out item))

src/shared/Z.EF.Plus.QueryCache.Shared/Extensions/QueryDeferred`/FromCacheAsync.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public static Task<T> FromCacheAsync<T>(this QueryDeferred<T> query, CacheItemPo
4545
});
4646
}
4747

48-
var key = QueryCacheManager.GetCacheKey(query, tags);
48+
var key = QueryCacheManager.GetCacheKey(query, tags, true);
4949

5050
var result = Task.Run(() =>
5151
{
@@ -89,7 +89,7 @@ public static Task<T> FromCacheAsync<T>(this QueryDeferred<T> query, DateTimeOff
8989
});
9090
}
9191

92-
var key = QueryCacheManager.GetCacheKey(query, tags);
92+
var key = QueryCacheManager.GetCacheKey(query, tags, true);
9393

9494
var result = Task.Run(() =>
9595
{
@@ -147,7 +147,7 @@ public static Task<T> FromCacheAsync<T>(this QueryDeferred<T> query, params stri
147147
return await query.ExecuteAsync(cancellationToken).ConfigureAwait(false);
148148
}
149149

150-
var key = QueryCacheManager.GetCacheKey(query, tags);
150+
var key = QueryCacheManager.GetCacheKey(query, tags, true);
151151

152152
var item = QueryCacheManager.GetDeferred(key);
153153

@@ -204,7 +204,7 @@ public static Task<T> FromCacheAsync<T>(this QueryDeferred<T> query, CacheItemPo
204204
return await query.ExecuteAsync(cancellationToken).ConfigureAwait(false);
205205
}
206206

207-
var key = QueryCacheManager.GetCacheKey(query, tags);
207+
var key = QueryCacheManager.GetCacheKey(query, tags, true);
208208

209209
var item = QueryCacheManager.GetDeferred(key);
210210

@@ -294,7 +294,7 @@ public static Task<T> FromCacheAsync<T>(this QueryDeferred<T> query, params stri
294294
return await query.ExecuteAsync(cancellationToken).ConfigureAwait(false);
295295
}
296296

297-
var key = QueryCacheManager.GetCacheKey(query, tags);
297+
var key = QueryCacheManager.GetCacheKey(query, tags, true);
298298

299299
object item;
300300
if (!QueryCacheManager.Cache.TryGetValue(key, out item))

src/shared/Z.EF.Plus.QueryCache.Shared/QueryCacheManager.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ public static void ExpireTag(params string[] tags)
456456
/// <param name="query">The query to cache or retrieve from the QueryCacheManager.</param>
457457
/// <param name="tags">A variable-length parameters list containing tags to create the cache key.</param>
458458
/// <returns>The cache key used to cache or retrieve a query from the QueryCacheManager.</returns>
459-
public static string GetCacheKey(IQueryable query, string[] tags)
459+
public static string GetCacheKey(IQueryable query, string[] tags, bool isAsync = false)
460460
{
461461
if (CacheKeyFactory != null)
462462
{
@@ -551,7 +551,7 @@ public static string GetCacheKey(IQueryable query, string[] tags)
551551
#elif EF6
552552
if (objectQuery != null)
553553
{
554-
var commandTextAndParameters = objectQuery.GetCommandTextAndParameters();
554+
var commandTextAndParameters = objectQuery.GetCommandTextAndParameters(isAsync);
555555
sb.AppendLine(commandTextAndParameters.Item1);
556556

557557
foreach (DbParameter parameter in commandTextAndParameters.Item2)
@@ -842,9 +842,9 @@ public static string GetConnectionStringForCacheKey(RelationalQueryContext query
842842
/// <param name="query">The query to cache or retrieve from the QueryCacheManager.</param>
843843
/// <param name="tags">A variable-length parameters list containing tags to create the cache key.</param>
844844
/// <returns>The cache key used to cache or retrieve a query from the QueryCacheManager.</returns>
845-
public static string GetCacheKey<T>(QueryDeferred<T> query, string[] tags)
845+
public static string GetCacheKey<T>(QueryDeferred<T> query, string[] tags, bool isAsync = false)
846846
{
847-
return GetCacheKey(query.Query, tags);
847+
return GetCacheKey(query.Query, tags, isAsync);
848848
}
849849
}
850850
}

src/shared/Z.EF.Plus.QueryDeferred.Shared/QueryDeferredExtensions.cs

Lines changed: 9 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,52 +9,30 @@
99
using System.Collections.Generic;
1010
using System.Linq;
1111
using System.Linq.Expressions;
12-
using System.Reflection;
13-
14-
#if EF5
15-
16-
#elif EF6
17-
18-
#endif
12+
using System.Reflection;
1913

2014
namespace Z.EntityFramework.Plus
2115
{
2216
public static partial class QueryDeferredExtensions
2317
{
2418
private static MethodInfo GetMethodInfo<T1, T2>(Func<T1, T2> f, T1 unused1)
25-
{
26-
#if NETSTANDARD1_3
27-
return f.GetMethodInfo();
28-
#else
29-
return f.Method;
30-
#endif
19+
{
20+
return f.Method;
3121
}
3222

3323
private static MethodInfo GetMethodInfo<T1, T2, T3>(Func<T1, T2, T3> f, T1 unused1, T2 unused2)
34-
{
35-
#if NETSTANDARD1_3
36-
return f.GetMethodInfo();
37-
#else
38-
return f.Method;
39-
#endif
24+
{
25+
return f.Method;
4026
}
4127

4228
private static MethodInfo GetMethodInfo<T1, T2, T3, T4>(Func<T1, T2, T3, T4> f, T1 unused1, T2 unused2, T3 unused3)
43-
{
44-
#if NETSTANDARD1_3
45-
return f.GetMethodInfo();
46-
#else
47-
return f.Method;
48-
#endif
29+
{
30+
return f.Method;
4931
}
5032

5133
private static MethodInfo GetMethodInfo<T1, T2, T3, T4, T5>(Func<T1, T2, T3, T4, T5> f, T1 unused1, T2 unused2, T3 unused3, T4 unused4)
52-
{
53-
#if NETSTANDARD1_3
54-
return f.GetMethodInfo();
55-
#else
56-
return f.Method;
57-
#endif
34+
{
35+
return f.Method;
5836
}
5937

6038
private static Expression GetSourceExpression<TSource>(IEnumerable<TSource> source)

src/shared/Z.EF.Plus.QueryFilter.Shared/QueryFilterContext.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -261,13 +261,8 @@ public void LoadGenericContextInfo(DbContext context)
261261
{
262262
FilterSetByType.AddOrAppend(@interface, filterDbSet);
263263
}
264-
265-
#if NETSTANDARD1_3
266-
baseType = baseType.GetTypeInfo().BaseType;
267-
#else
268-
baseType = baseType.BaseType;
269-
#endif
270-
264+
265+
baseType = baseType.BaseType;
271266
}
272267
}
273268
}

src/shared/Z.EF.Plus.QueryFuture.Shared/BaseQueryFuture.cs

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -458,10 +458,10 @@ public virtual IRelationalCommand CreateExecutorAndGetCommand(out RelationalQuer
458458
var innerConnectionField = typeof(RelationalConnection).GetField("_connection", BindingFlags.NonPublic | BindingFlags.Instance);
459459
var initalConnection = innerConnectionField.GetValue(QueryConnection);
460460

461-
innerConnectionField.SetValue(QueryConnection, innerConnection);
461+
innerConnectionField.SetValue(QueryConnection, innerConnection);
462+
RestoreConnection = () => innerConnectionField.SetValue(QueryConnection, initalConnection);
462463

463-
RestoreConnection = () => innerConnectionField.SetValue(QueryConnection, initalConnection);
464-
}, out queryContext, out compiledQueryOut);
464+
}, out queryContext, out compiledQueryOut);
465465

466466
QueryContext = queryContext;
467467
CompiledQuery = compiledQueryOut;
@@ -640,13 +640,36 @@ public IEnumerator<T> GetQueryEnumerator<T>(DbDataReader reader)
640640
var enumerator = (IEnumerator<T>) getEnumerator;
641641

642642
{
643+
#if EFCORE_7X
644+
{
645+
//https://github.com/dotnet/efcore/blob/b970bf29a46521f40862a01db9e276e6448d3cb0/src/EFCore.Relational/Storage/RelationalCommand.cs#L380
646+
//public virtual RelationalDataReader ExecuteReader(RelationalCommandParameterObject parameterObject)
647+
648+
//-columns
649+
var fieldrelationalCommandCache = enumerator.GetType().GetField("_readerColumns", BindingFlags.FlattenHierarchy | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
650+
651+
if (fieldrelationalCommandCache != null)
652+
{
653+
var readerColumns = (IReadOnlyList<ReaderColumn?>?)fieldrelationalCommandCache.GetValue(enumerator);
643654

644-
#if EFCORE_5X
655+
if (readerColumns != null)
656+
{
657+
var fielReaderColumns = enumerator.GetType().GetField("_readerColumns", BindingFlags.FlattenHierarchy | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
658+
659+
if (fielReaderColumns != null)
660+
{
661+
fielReaderColumns.SetValue(enumerator, null);
662+
}
663+
}
664+
}
665+
}
666+
667+
#elif EFCORE_5X
645668

646669
{
647670
//https://github.com/dotnet/efcore/blob/b970bf29a46521f40862a01db9e276e6448d3cb0/src/EFCore.Relational/Storage/RelationalCommand.cs#L380
648671
//public virtual RelationalDataReader ExecuteReader(RelationalCommandParameterObject parameterObject)
649-
672+
650673
//-columns
651674
var fieldrelationalCommandCache = enumerator.GetType().GetField("_relationalCommandCache", BindingFlags.FlattenHierarchy | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
652675

0 commit comments

Comments
 (0)