Skip to content

Commit ea7ef29

Browse files
committed
NuGet 3.1.0
1 parent 88703ec commit ea7ef29

3 files changed

Lines changed: 26 additions & 16 deletions

File tree

EFCore.BulkExtensions.Tests/EFCore.BulkExtensions.Tests.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netcoreapp3.0</TargetFramework>
4+
<TargetFramework>netcoreapp3.1</TargetFramework>
55
</PropertyGroup>
66

77
<ItemGroup>
88
<None Remove="MergeExample.sql" />
99
</ItemGroup>
1010

1111
<ItemGroup>
12-
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
13-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" />
12+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.0" />
13+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
1414
<PackageReference Include="RT.Comb" Version="2.3.0" />
1515
<PackageReference Include="xunit" Version="2.4.1" />
1616
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">

EFCore.BulkExtensions/EFCore.BulkExtensions.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard2.1</TargetFramework>
4+
<TargetFramework>netstandard2.0</TargetFramework>
55
<Title>EFCore.BulkExtensions</Title>
6-
<Version>3.0.5</Version>
6+
<Version>3.1.0</Version>
77
<Authors>borisdj</Authors>
88
<Description>EntityFramework EF Core Bulk Batch Extensions for Insert Update Delete and Read (CRUD) operations on SQL Server and SQLite</Description>
99
<PackageProjectUrl>https://github.com/borisdj/EFCore.BulkExtensions</PackageProjectUrl>
1010
<PackageIconUrl>https://raw.githubusercontent.com/borisdj/EFCore.BulkExtensions/master/logo.png</PackageIconUrl>
1111
<Company />
1212
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1313
<PackageTags>EntityFrameworkCore Entity Framework Core EFCore EF Core Bulk Batch Extensions Insert Update Delete Read</PackageTags>
14-
<PackageReleaseNotes>Identity Property Update from OutputPropertiessDict fix</PackageReleaseNotes>
15-
<AssemblyVersion>3.0.5.0</AssemblyVersion>
16-
<FileVersion>3.0.5.0</FileVersion>
14+
<PackageReleaseNotes>Upgrade to EF Core 3.1</PackageReleaseNotes>
15+
<AssemblyVersion>3.1.0.0</AssemblyVersion>
16+
<FileVersion>3.1.0.0</FileVersion>
1717
</PropertyGroup>
1818

1919
<ItemGroup>

EFCore.BulkExtensions/IQueryableExtensions.cs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,33 +18,43 @@ public static string ToSql<TEntity>(this IQueryable<TEntity> query) where TEntit
1818

1919
public static (string, IEnumerable<SqlParameter>) ToParametrizedSql<TEntity>(this IQueryable<TEntity> query) where TEntity : class
2020
{
21+
string relationalCommandCacheText = "_relationalCommandCache";
22+
string selectExpressionText = "_selectExpression";
23+
string querySqlGeneratorFactoryText = "_querySqlGeneratorFactory";
24+
string relationalQueryContextText = "_relationalQueryContext";
25+
26+
string cannotGetText = "Cannot get";
27+
2128
var enumerator = query.Provider.Execute<IEnumerable<TEntity>>(query.Expression).GetEnumerator();
22-
var relationalCommandCache = enumerator.Private("_relationalCommandCache");
29+
var relationalCommandCache = enumerator.Private(relationalCommandCacheText);
30+
31+
2332

2433
SelectExpression selectExpression;
2534
IQuerySqlGeneratorFactory factory;
2635
if (relationalCommandCache != null)
2736
{
28-
selectExpression = relationalCommandCache.Private<SelectExpression>("_selectExpression") ?? throw new InvalidOperationException($"Cannot get _selectExpression");
29-
factory = relationalCommandCache.Private<IQuerySqlGeneratorFactory>("_querySqlGeneratorFactory") ?? throw new InvalidOperationException($"Cannot get _querySqlGeneratorFactory");
37+
selectExpression = relationalCommandCache.Private<SelectExpression>(selectExpressionText) ?? throw new InvalidOperationException($"{cannotGetText} {selectExpressionText}");
38+
factory = relationalCommandCache.Private<IQuerySqlGeneratorFactory>(querySqlGeneratorFactoryText) ?? throw new InvalidOperationException($"{cannotGetText} {querySqlGeneratorFactoryText}");
3039
}
3140
else
3241
{
33-
selectExpression = enumerator.Private<SelectExpression>("_selectExpression") ?? throw new InvalidOperationException($"Cannot get _selectExpression");
34-
factory = enumerator.Private<IQuerySqlGeneratorFactory>("_querySqlGeneratorFactory") ?? throw new InvalidOperationException($"Cannot get _querySqlGeneratorFactory");
42+
selectExpression = enumerator.Private<SelectExpression>(selectExpressionText) ?? throw new InvalidOperationException($"{cannotGetText} {selectExpressionText}");
43+
factory = enumerator.Private<IQuerySqlGeneratorFactory>(querySqlGeneratorFactoryText) ?? throw new InvalidOperationException($"{cannotGetText} {querySqlGeneratorFactoryText}");
3544
}
3645

3746
var sqlGenerator = factory.Create();
3847
var command = sqlGenerator.GetCommand(selectExpression);
3948

40-
var queryContext = enumerator.Private<RelationalQueryContext>("_relationalQueryContext") ?? throw new InvalidOperationException($"Cannot get RelationalQueryContext");
49+
var queryContext = enumerator.Private<RelationalQueryContext>(relationalQueryContextText) ?? throw new InvalidOperationException($"{cannotGetText} {relationalQueryContextText}");
4150
SqlParameter[] parameters = queryContext.ParameterValues.Select(a => new SqlParameter("@" + a.Key, a.Value)).ToArray();
4251

4352
string sql = command.CommandText;
4453
return (sql, parameters);
4554
}
4655

47-
private static object Private(this object obj, string privateField) => obj?.GetType().GetField(privateField, BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(obj);
48-
private static T Private<T>(this object obj, string privateField) => (T)obj?.GetType().GetField(privateField, BindingFlags.Instance | BindingFlags.NonPublic)?.GetValue(obj);
56+
private static readonly BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.NonPublic;
57+
private static object Private(this object obj, string privateField) => obj?.GetType().GetField(privateField, bindingFlags)?.GetValue(obj);
58+
private static T Private<T>(this object obj, string privateField) => (T)obj?.GetType().GetField(privateField, bindingFlags)?.GetValue(obj);
4959
}
5060
}

0 commit comments

Comments
 (0)