Skip to content

Commit 8cd31b5

Browse files
committed
1. Added EF Core 3.1 support
2. Deleted `ThrowOnQueryClientEvaluation` method
1 parent 56a955f commit 8cd31b5

12 files changed

Lines changed: 81 additions & 123 deletions
Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,29 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>netcoreapp2.0</TargetFramework>
5+
<TargetFramework>netcoreapp3.1</TargetFramework>
66
</PropertyGroup>
77

88
<ItemGroup>
99
<ProjectReference Include="..\EntityFrameworkCore.Extensions\EntityFrameworkCore.Extensions.csproj" />
1010
</ItemGroup>
1111

12-
<ItemGroup>
13-
<Reference Include="Microsoft.EntityFrameworkCore">
14-
<HintPath>..\..\..\Users\savin\.nuget\packages\microsoft.entityframeworkcore\2.1.0\lib\netstandard2.0\Microsoft.EntityFrameworkCore.dll</HintPath>
15-
</Reference>
16-
</ItemGroup>
17-
1812
<ItemGroup>
1913
<None Update="SqlFiles\ImportCustomers.sql">
2014
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
2115
</None>
2216
</ItemGroup>
2317

18+
<ItemGroup>
19+
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.2">
20+
<PrivateAssets>all</PrivateAssets>
21+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
22+
</PackageReference>
23+
</ItemGroup>
24+
25+
<ItemGroup>
26+
<Folder Include="Migrations\" />
27+
</ItemGroup>
28+
2429
</Project>

EntityFrameworkCore.Extensions.Samples/Migrations/20180619195726_SampleMigration.Designer.cs renamed to EntityFrameworkCore.Extensions.Samples/Migrations/20200321204503_SampleMigration.Designer.cs

Lines changed: 18 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

EntityFrameworkCore.Extensions.Samples/Migrations/20180619195726_SampleMigration.cs renamed to EntityFrameworkCore.Extensions.Samples/Migrations/20200321204503_SampleMigration.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
using System;
2-
using Microsoft.EntityFrameworkCore.Metadata;
32
using Microsoft.EntityFrameworkCore.Migrations;
43

54
namespace EntityFrameworkCore.Extensions.Samples.Migrations
@@ -13,7 +12,7 @@ protected override void Up(MigrationBuilder migrationBuilder)
1312
columns: table => new
1413
{
1514
Id = table.Column<int>(nullable: false)
16-
.Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
15+
.Annotation("SqlServer:Identity", "1, 1"),
1716
Name = table.Column<string>(nullable: true)
1817
.Annotation("DynamicDataMasking", "default()"),
1918
Surname = table.Column<string>(nullable: true)
@@ -35,7 +34,7 @@ protected override void Up(MigrationBuilder migrationBuilder)
3534
columns: table => new
3635
{
3736
Id = table.Column<int>(nullable: false)
38-
.Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
37+
.Annotation("SqlServer:Identity", "1, 1"),
3938
Created = table.Column<DateTime>(nullable: false),
4039
CustomerId = table.Column<int>(nullable: true)
4140
},

EntityFrameworkCore.Extensions.Samples/Migrations/SampleContextModelSnapshot.cs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,29 +15,36 @@ protected override void BuildModel(ModelBuilder modelBuilder)
1515
{
1616
#pragma warning disable 612, 618
1717
modelBuilder
18-
.HasAnnotation("ProductVersion", "2.1.0-rtm-30799")
18+
.HasAnnotation("ProductVersion", "3.1.2")
1919
.HasAnnotation("Relational:MaxIdentifierLength", 128)
2020
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
2121

2222
modelBuilder.Entity("EntityFrameworkCore.Extensions.Samples.Customer", b =>
2323
{
2424
b.Property<int>("Id")
2525
.ValueGeneratedOnAdd()
26+
.HasColumnType("int")
2627
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
2728

2829
b.Property<int>("DiscountCardNumber")
30+
.HasColumnType("int")
2931
.HasAnnotation("DynamicDataMasking", "random(10, 100)");
3032

31-
b.Property<string>("Name");
33+
b.Property<string>("Name")
34+
.HasColumnType("nvarchar(max)");
3235

3336
b.Property<string>("Phone")
37+
.HasColumnType("nvarchar(max)")
3438
.HasAnnotation("DynamicDataMasking", "partial(2, \"XX-XX\", 1)");
3539

36-
b.Property<string>("SampleProperty1");
40+
b.Property<string>("SampleProperty1")
41+
.HasColumnType("nvarchar(max)");
3742

38-
b.Property<string>("SampleProperty2");
43+
b.Property<string>("SampleProperty2")
44+
.HasColumnType("nvarchar(max)");
3945

4046
b.Property<string>("Surname")
47+
.HasColumnType("nvarchar(max)")
4148
.HasAnnotation("DynamicDataMasking", "default()");
4249

4350
b.HasKey("Id");
@@ -49,11 +56,14 @@ protected override void BuildModel(ModelBuilder modelBuilder)
4956
{
5057
b.Property<int>("Id")
5158
.ValueGeneratedOnAdd()
59+
.HasColumnType("int")
5260
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
5361

54-
b.Property<DateTime>("Created");
62+
b.Property<DateTime>("Created")
63+
.HasColumnType("datetime2");
5564

56-
b.Property<int?>("CustomerId");
65+
b.Property<int?>("CustomerId")
66+
.HasColumnType("int");
5767

5868
b.HasKey("Id");
5969

@@ -64,7 +74,7 @@ protected override void BuildModel(ModelBuilder modelBuilder)
6474

6575
modelBuilder.Entity("EntityFrameworkCore.Extensions.Samples.Order", b =>
6676
{
67-
b.HasOne("EntityFrameworkCore.Extensions.Samples.Customer")
77+
b.HasOne("EntityFrameworkCore.Extensions.Samples.Customer", null)
6878
.WithMany("Orders")
6979
.HasForeignKey("CustomerId")
7080
.OnDelete(DeleteBehavior.Cascade);

EntityFrameworkCore.Extensions.Samples/Program.cs

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
2020
}
2121
optionsBuilder.ReplaceService<IMigrationsSqlGenerator, ExtendedMigrationSqlServerGenerator>(); //Add the support for DynamicDataMasking
2222
optionsBuilder.ReplaceService<IMigrationsAnnotationProvider, ExtendedSqlServerMigrationsAnnotationProvider>();
23-
optionsBuilder.ThrowOnQueryClientEvaluation(); //Throw when can not generate a query instead of loading everything into memory
2423

2524
base.OnConfiguring(optionsBuilder);
2625
}
@@ -66,22 +65,6 @@ static void Main(string[] args)
6665
context.Customers.Add(customer);
6766
context.SaveChanges();
6867
}
69-
70-
using (var context = new SampleContext())
71-
{
72-
//var customers = context.Customers.Where(t => SomeUnsupportedFunction(t.Phone)).ToList(); - Will throw instead of loading everything into memory
73-
74-
var customer = context.Customers.First();
75-
context.Customers.Remove(customer);
76-
context.SaveChanges();
77-
78-
context.Database.EnsureDeleted();
79-
}
80-
}
81-
82-
private static bool SomeUnsupportedFunction(string input)
83-
{
84-
return input.Length == 2;
8568
}
8669
}
8770
}

EntityFrameworkCore.Extensions.Tests/DatabaseFacadeExtensionsTests.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ public void MigrateIfSupported_should_migrate_for_sqlite()
4141
{
4242
var options = new DbContextOptionsBuilder<TestContext>()
4343
.UseSqlite("DataSource=:memory:")
44-
.ThrowOnQueryClientEvaluation()
4544
.ReplaceService<IMigrator, MockMigrator>()
4645
.Options;
4746

@@ -57,7 +56,6 @@ public async Task MigrateIfSupportedAsync_should_migrate_for_sqlite()
5756
{
5857
var options = new DbContextOptionsBuilder<TestContext>()
5958
.UseSqlite("DataSource=:memory:")
60-
.ThrowOnQueryClientEvaluation()
6159
.ReplaceService<IMigrator, MockMigrator>()
6260
.Options;
6361

EntityFrameworkCore.Extensions.Tests/DbContextOptionsBuilderExtensionsTests.cs

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,7 @@
1-
using System;
2-
using System.Linq;
3-
using Microsoft.EntityFrameworkCore;
4-
using Xunit;
1+
using Microsoft.EntityFrameworkCore;
52

63
namespace EntityFrameworkCore.Extensions.Tests
74
{
8-
public class DbContextOptionsBuilderExtensionsTests
9-
{
10-
[Fact]
11-
public void Throw_on_untranslatable_expression()
12-
{
13-
var options = new DbContextOptionsBuilder<TestContext>()
14-
.UseSqlite("DataSource=:memory:")
15-
.ThrowOnQueryClientEvaluation()
16-
.Options;
17-
18-
var context = new TestContext(options);
19-
20-
Assert.Throws<InvalidOperationException>(() => context.TestModels.Where(t => SomeFunction(t.Data)).ToList());
21-
}
22-
23-
private bool SomeFunction(string input)
24-
{
25-
return input.Length > 2 ? input[1] == 'A' : false;
26-
}
27-
}
28-
295
public class TestContext : DbContext
306
{
317
public TestContext()

EntityFrameworkCore.Extensions.Tests/EntityFrameworkCore.Extensions.Tests.csproj

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

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

77
<ItemGroup>
@@ -15,11 +15,17 @@
1515
</ItemGroup>
1616

1717
<ItemGroup>
18-
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.0" />
19-
<PackageReference Include="Moq" Version="4.8.3" />
20-
<PackageReference Include="xunit" Version="2.3.1" />
21-
<PackageReference Include="xunit.runner.console" Version="2.3.1" />
22-
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
18+
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.2" />
19+
<PackageReference Include="Moq" Version="4.13.1" />
20+
<PackageReference Include="xunit" Version="2.4.1" />
21+
<PackageReference Include="xunit.runner.console" Version="2.4.1">
22+
<PrivateAssets>all</PrivateAssets>
23+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
24+
</PackageReference>
25+
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
26+
<PrivateAssets>all</PrivateAssets>
27+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
28+
</PackageReference>
2329
</ItemGroup>
2430

2531
<ItemGroup>

EntityFrameworkCore.Extensions/DbContextOptionsBuilderExtensions.cs

Lines changed: 0 additions & 19 deletions
This file was deleted.

EntityFrameworkCore.Extensions/DynamicDataMasking/MaskingFunctions.cs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,7 @@ public static class MaskingFunctions
77
{
88
public static string Default() => "default()";
99
public static string Email() => "email()";
10-
11-
public static string Random(int startRange, int endRange)
12-
{
13-
return $"random({startRange}, {endRange})";
14-
}
15-
16-
public static string Partial(int prefix, string padding, int suffix)
17-
{
18-
return $"partial({prefix}, \"{padding}\", {suffix})";
19-
}
10+
public static string Random(int startRange, int endRange) => $"random({startRange}, {endRange})";
11+
public static string Partial(int prefix, string padding, int suffix) => $"partial({prefix}, \"{padding}\", {suffix})";
2012
}
2113
}

0 commit comments

Comments
 (0)