Skip to content

Commit 77234d4

Browse files
authored
Add EF3.1 example (#336)
1 parent f23e996 commit 77234d4

File tree

5 files changed

+119
-21
lines changed

5 files changed

+119
-21
lines changed

System.Linq.Dynamic.Core.sln

+39-20
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 15
4-
VisualStudioVersion = 15.0.27004.2009
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.29613.14
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{8463ED7E-69FB-49AE-85CF-0791AFD98E38}"
77
EndProject
@@ -80,7 +80,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp_net452_EF6_Effor
8080
EndProject
8181
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Z.EntityFramework.Classic.DynamicLinq", "src\Z.EntityFramework.Classic.DynamicLinq\Z.EntityFramework.Classic.DynamicLinq.csproj", "{D3804228-91F4-4502-9595-39584EA20000}"
8282
EndProject
83-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp.EntityFrameworkClassic", "src-console\ConsoleApp.EntityFrameworkClassic\ConsoleApp.EntityFrameworkClassic.csproj", "{0077F262-D69B-44D2-8A7C-87D8D19022A6}"
83+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleApp.EntityFrameworkClassic", "src-console\ConsoleApp.EntityFrameworkClassic\ConsoleApp.EntityFrameworkClassic.csproj", "{0077F262-D69B-44D2-8A7C-87D8D19022A6}"
84+
EndProject
85+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleApp_netcore3.1_EF3.1", "src-console\ConsoleAppEF3.1\ConsoleApp_netcore3.1_EF3.1.csproj", "{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}"
8486
EndProject
8587
Global
8688
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -412,6 +414,22 @@ Global
412414
{E9C52E5E-28DC-4D45-B9AB-1B2CF2924A84}.Release|x64.Build.0 = Release|Any CPU
413415
{E9C52E5E-28DC-4D45-B9AB-1B2CF2924A84}.Release|x86.ActiveCfg = Release|Any CPU
414416
{E9C52E5E-28DC-4D45-B9AB-1B2CF2924A84}.Release|x86.Build.0 = Release|Any CPU
417+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
418+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
419+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|ARM.ActiveCfg = Debug|Any CPU
420+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|ARM.Build.0 = Debug|Any CPU
421+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|x64.ActiveCfg = Debug|Any CPU
422+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|x64.Build.0 = Debug|Any CPU
423+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|x86.ActiveCfg = Debug|Any CPU
424+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|x86.Build.0 = Debug|Any CPU
425+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
426+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|Any CPU.Build.0 = Release|Any CPU
427+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|ARM.ActiveCfg = Release|Any CPU
428+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|ARM.Build.0 = Release|Any CPU
429+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|x64.ActiveCfg = Release|Any CPU
430+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|x64.Build.0 = Release|Any CPU
431+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|x86.ActiveCfg = Release|Any CPU
432+
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|x86.Build.0 = Release|Any CPU
415433
{D3804228-91F4-4502-9595-39584EA20000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
416434
{D3804228-91F4-4502-9595-39584EA20000}.Debug|Any CPU.Build.0 = Debug|Any CPU
417435
{D3804228-91F4-4502-9595-39584EA20000}.Debug|ARM.ActiveCfg = Debug|Any CPU
@@ -444,22 +462,22 @@ Global
444462
{0077F262-D69B-44D2-8A7C-87D8D19022A6}.Release|x64.Build.0 = Release|Any CPU
445463
{0077F262-D69B-44D2-8A7C-87D8D19022A6}.Release|x86.ActiveCfg = Release|Any CPU
446464
{0077F262-D69B-44D2-8A7C-87D8D19022A6}.Release|x86.Build.0 = Release|Any CPU
447-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
448-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
449-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|ARM.ActiveCfg = Debug|Any CPU
450-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|ARM.Build.0 = Debug|Any CPU
451-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|x64.ActiveCfg = Debug|Any CPU
452-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|x64.Build.0 = Debug|Any CPU
453-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|x86.ActiveCfg = Debug|Any CPU
454-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Debug|x86.Build.0 = Debug|Any CPU
455-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
456-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|Any CPU.Build.0 = Release|Any CPU
457-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|ARM.ActiveCfg = Release|Any CPU
458-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|ARM.Build.0 = Release|Any CPU
459-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|x64.ActiveCfg = Release|Any CPU
460-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|x64.Build.0 = Release|Any CPU
461-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|x86.ActiveCfg = Release|Any CPU
462-
{36B101B1-720B-4770-B222-C6ADD464F9EC}.Release|x86.Build.0 = Release|Any CPU
465+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
466+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Debug|Any CPU.Build.0 = Debug|Any CPU
467+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Debug|ARM.ActiveCfg = Debug|Any CPU
468+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Debug|ARM.Build.0 = Debug|Any CPU
469+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Debug|x64.ActiveCfg = Debug|Any CPU
470+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Debug|x64.Build.0 = Debug|Any CPU
471+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Debug|x86.ActiveCfg = Debug|Any CPU
472+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Debug|x86.Build.0 = Debug|Any CPU
473+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Release|Any CPU.ActiveCfg = Release|Any CPU
474+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Release|Any CPU.Build.0 = Release|Any CPU
475+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Release|ARM.ActiveCfg = Release|Any CPU
476+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Release|ARM.Build.0 = Release|Any CPU
477+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Release|x64.ActiveCfg = Release|Any CPU
478+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Release|x64.Build.0 = Release|Any CPU
479+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Release|x86.ActiveCfg = Release|Any CPU
480+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A}.Release|x86.Build.0 = Release|Any CPU
463481
EndGlobalSection
464482
GlobalSection(SolutionProperties) = preSolution
465483
HideSolutionNode = FALSE
@@ -485,9 +503,10 @@ Global
485503
{926D446C-8358-465A-AFAC-2F9078C22262} = {ECA5702B-5D32-4888-A34E-9461FC533F23}
486504
{591F9224-A8D6-49CF-8AF8-F9B383C1F9FF} = {1384C18E-DCF3-4A5B-9560-2BF5DD8C51CE}
487505
{E9C52E5E-28DC-4D45-B9AB-1B2CF2924A84} = {7971CAEB-B9F2-416B-966D-2D697C4C1E62}
506+
{36B101B1-720B-4770-B222-C6ADD464F9EC} = {7971CAEB-B9F2-416B-966D-2D697C4C1E62}
488507
{D3804228-91F4-4502-9595-39584EA20000} = {DBD7D9B6-FCC7-4650-91AF-E6457573A68F}
489508
{0077F262-D69B-44D2-8A7C-87D8D19022A6} = {7971CAEB-B9F2-416B-966D-2D697C4C1E62}
490-
{36B101B1-720B-4770-B222-C6ADD464F9EC} = {7971CAEB-B9F2-416B-966D-2D697C4C1E62}
509+
{6D21EBF2-C92D-4AE0-9BC3-47C63928F88A} = {7971CAEB-B9F2-416B-966D-2D697C4C1E62}
491510
EndGlobalSection
492511
GlobalSection(ExtensibilityGlobals) = postSolution
493512
SolutionGuid = {94C56722-194E-4B8B-BC23-B3F754E89A20}

src-console/ConsoleAppEF2.0/Database/Car.cs

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ public class Car
2424
[Required]
2525
public DateTime DateLastModified { get; set; }
2626

27+
public DateTime? DateDeleted { get; set; }
28+
2729
public string X(bool b, string s)
2830
{
2931
return b + s + Color;

src-console/ConsoleAppEF2.0/Database/TestContext.cs

+13-1
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,27 @@ namespace ConsoleAppEF2.Database
66
{
77
public class TestContext : DbContext
88
{
9+
#if EF3
10+
public static readonly ILoggerFactory MyLoggerFactory = LoggerFactory.Create(builder => {
11+
builder
12+
//.AddFilter("Default", LogLevel.Information)
13+
.AddFilter("Microsoft", LogLevel.Information)
14+
//.AddFilter("System", LogLevel.Information)
15+
//.AddDebug()
16+
.AddConsole();
17+
}
18+
);
19+
#else
920
public static readonly LoggerFactory MyLoggerFactory = new LoggerFactory(new[] { new ConsoleLoggerProvider((filter, includeScopes) => true, true) });
21+
#endif
1022

1123
public virtual DbSet<Car> Cars { get; set; }
1224

1325
public virtual DbSet<Brand> Brands { get; set; }
1426

1527
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
1628
{
17-
optionsBuilder.UseLoggerFactory(MyLoggerFactory); // Warning: Do not create a new ILoggerFactory instance each time
29+
optionsBuilder.UseLoggerFactory(MyLoggerFactory); // Warning: Do not create a new ILoggerFactory instance each time
1830
optionsBuilder.EnableSensitiveDataLogging();
1931

2032
optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=CarsEF20;Trusted_Connection=True;");
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>netcoreapp3.1</TargetFramework>
6+
<AssemblyName>ConsoleAppEF31</AssemblyName>
7+
<RootNamespace>ConsoleAppEF31</RootNamespace>
8+
</PropertyGroup>
9+
10+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
11+
<DefineConstants>TRACE;EF3</DefineConstants>
12+
</PropertyGroup>
13+
14+
<ItemGroup>
15+
<Compile Include="..\ConsoleAppEF2.0\Database\Brand.cs" Link="Database\Brand.cs" />
16+
<Compile Include="..\ConsoleAppEF2.0\Database\Car.cs" Link="Database\Car.cs" />
17+
<Compile Include="..\ConsoleAppEF2.0\Database\TestContext.cs" Link="Database\TestContext.cs" />
18+
</ItemGroup>
19+
20+
<ItemGroup>
21+
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.0" />
22+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.0" />
23+
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.0" />
24+
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" />
25+
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.0" />
26+
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
27+
</ItemGroup>
28+
29+
<ItemGroup>
30+
<ProjectReference Include="..\..\src\Microsoft.EntityFrameworkCore.DynamicLinq\Microsoft.EntityFrameworkCore.DynamicLinq.csproj" />
31+
</ItemGroup>
32+
33+
</Project>
+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using System;
2+
using System.Linq;
3+
using ConsoleAppEF2.Database;
4+
5+
namespace ConsoleAppEF31
6+
{
7+
class Program
8+
{
9+
static void Main(string[] args)
10+
{
11+
var context = new TestContext();
12+
13+
// context.Database.EnsureDeleted();
14+
context.Database.EnsureCreated();
15+
16+
var dateDeleted = new DateTime(2019, 2, 2);
17+
18+
var dateLastModified = new DateTime(2018, 1, 15);
19+
if (!context.Cars.Any())
20+
{
21+
context.Cars.Add(new Car { Brand = "Ford", Color = "Blue", Vin = "yes", Year = "2017", DateLastModified = dateLastModified, DateDeleted = dateDeleted });
22+
context.Cars.Add(new Car { Brand = "Fiat", Color = "Red", Vin = "yes", Year = "2016", DateLastModified = dateLastModified.AddDays(1) });
23+
context.Cars.Add(new Car { Brand = "Alfa", Color = "Black", Vin = "no", Year = "1979", DateLastModified = dateLastModified.AddDays(2) });
24+
context.Cars.Add(new Car { Brand = "Alfa", Color = "Black", Vin = "a%bc", Year = "1979", DateLastModified = dateLastModified.AddDays(3) }); ;
25+
context.SaveChanges();
26+
}
27+
28+
var selectNullableDateTime = context.Cars.FirstOrDefault(c => c.DateDeleted == dateDeleted);
29+
Console.WriteLine(selectNullableDateTime.Key);
30+
}
31+
}
32+
}

0 commit comments

Comments
 (0)