diff --git a/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0-preview7.nupkg b/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0-preview7.nupkg new file mode 100644 index 0000000..6f41a61 Binary files /dev/null and b/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0-preview7.nupkg differ diff --git a/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0-preview7.symbols.nupkg b/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0-preview7.symbols.nupkg new file mode 100644 index 0000000..744e39a Binary files /dev/null and b/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0-preview7.symbols.nupkg differ diff --git a/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0.nupkg b/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0.nupkg new file mode 100644 index 0000000..07ee4ff Binary files /dev/null and b/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0.nupkg differ diff --git a/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0.symbols.nupkg b/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0.symbols.nupkg new file mode 100644 index 0000000..58d609f Binary files /dev/null and b/NuGet/TrackableEntities.Common.Core/TrackableEntities.Common.Core.3.0.0.symbols.nupkg differ diff --git a/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0-preview7.nupkg b/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0-preview7.nupkg new file mode 100644 index 0000000..d26c9d2 Binary files /dev/null and b/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0-preview7.nupkg differ diff --git a/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0-preview7.symbols.nupkg b/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0-preview7.symbols.nupkg new file mode 100644 index 0000000..0e0af1a Binary files /dev/null and b/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0-preview7.symbols.nupkg differ diff --git a/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0.nupkg b/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0.nupkg new file mode 100644 index 0000000..bfacb8c Binary files /dev/null and b/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0.nupkg differ diff --git a/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0.symbols.nupkg b/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0.symbols.nupkg new file mode 100644 index 0000000..573fa16 Binary files /dev/null and b/NuGet/TrackableEntities.EF.Core/TrackableEntities.EF.Core.3.0.0.symbols.nupkg differ diff --git a/TrackableEntities.Common.Core/TrackableEntities.Common.Core.csproj b/TrackableEntities.Common.Core/TrackableEntities.Common.Core.csproj index a3545c0..2003c4c 100644 --- a/TrackableEntities.Common.Core/TrackableEntities.Common.Core.csproj +++ b/TrackableEntities.Common.Core/TrackableEntities.Common.Core.csproj @@ -3,18 +3,18 @@ netstandard2.0 TrackableEntities.Common.Core - 1.2.0 + 3.0.0 Tony Sneed Tony Sneed Trackable Entities Common for .NET Standard Assembly containing TrackingState enum and ITrackable, IMergeable interfaces. false - See: https://github.com/TrackableEntities/TrackableEntities.Core/releases/tag/v1.2.0 + See: https://github.com/TrackableEntities/TrackableEntities.Core/releases/tag/v3.0.0 change-tracking entity-framework-core n-tier true MIT https://github.com/TrackableEntities/TrackableEntities.Core - http://trackableentities.github.io/images/tracking.png + icon.png true @@ -28,4 +28,8 @@ latest + + + + diff --git a/TrackableEntities.Common.Core/icon.png b/TrackableEntities.Common.Core/icon.png new file mode 100644 index 0000000..c0b3310 Binary files /dev/null and b/TrackableEntities.Common.Core/icon.png differ diff --git a/TrackableEntities.Core.sln b/TrackableEntities.Core.sln index 37cac74..91cc210 100644 --- a/TrackableEntities.Core.sln +++ b/TrackableEntities.Core.sln @@ -1,10 +1,11 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26730.16 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29409.12 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{28B18A3B-C89A-439D-AF9B-07636B9836A3}" ProjectSection(SolutionItems) = preProject + global.json = global.json LICENSE = LICENSE README.md = README.md EndProjectSection diff --git a/TrackableEntities.EF.Core.Tests/Contexts/NorthwindDbContext.cs b/TrackableEntities.EF.Core.Tests/Contexts/NorthwindDbContext.cs index 7ce63dd..8977bd6 100644 --- a/TrackableEntities.EF.Core.Tests/Contexts/NorthwindDbContext.cs +++ b/TrackableEntities.EF.Core.Tests/Contexts/NorthwindDbContext.cs @@ -27,12 +27,12 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) .HasOne(c => c.CustomerSetting) .WithOne(c => c.Customer); modelBuilder.Entity().ToTable("Promos"); - modelBuilder.Entity().ToTable("HolidayPromos"); modelBuilder.Entity() .HasKey(pi => new { pi.ProductInfoKey1, pi.ProductInfoKey2 }); modelBuilder.Entity() .HasOne(p => p.ProductInfo) - .WithOne(p => p.Product); + .WithOne(p => p.Product) + .HasForeignKey(pi => pi.ProductId); modelBuilder.Entity() .HasKey(et => new { et.EmployeeId, et.TerritoryId }); } diff --git a/TrackableEntities.EF.Core.Tests/LoadRelatedEntitiesTests.cs b/TrackableEntities.EF.Core.Tests/LoadRelatedEntitiesTests.cs index 6dcb01e..f29544b 100644 --- a/TrackableEntities.EF.Core.Tests/LoadRelatedEntitiesTests.cs +++ b/TrackableEntities.EF.Core.Tests/LoadRelatedEntitiesTests.cs @@ -50,12 +50,11 @@ private void EnsureSeedData() EnsureTestTerritory(context, TestTerritoryId3); // Test Product Infos - EnsureTestProductInfo(context, ProductInfo1A, ProductInfo1B); - EnsureTestProductInfo(context, ProductInfo2A, ProductInfo2B); + //EnsureTestProductInfo(context, ProductInfo1A, ProductInfo1B); + //EnsureTestProductInfo(context, ProductInfo2A, ProductInfo2B); // Save changes context.SaveChanges(); - } private static void EnsureTestTerritory(NorthwindDbContext context, string territoryId) { diff --git a/TrackableEntities.EF.Core.Tests/NorthwindModels/ProductInfo.cs b/TrackableEntities.EF.Core.Tests/NorthwindModels/ProductInfo.cs index 639caa7..681081a 100644 --- a/TrackableEntities.EF.Core.Tests/NorthwindModels/ProductInfo.cs +++ b/TrackableEntities.EF.Core.Tests/NorthwindModels/ProductInfo.cs @@ -8,6 +8,7 @@ public partial class ProductInfo : ITrackable { public int ProductInfoKey1 { get; set; } public int ProductInfoKey2 { get; set; } + public int ProductId { get; set; } public Product Product { get; set; } public string Info { get; set; } diff --git a/TrackableEntities.EF.Core.Tests/TrackableEntities.EF.Core.Tests.csproj b/TrackableEntities.EF.Core.Tests/TrackableEntities.EF.Core.Tests.csproj index b5d894b..559b03b 100644 --- a/TrackableEntities.EF.Core.Tests/TrackableEntities.EF.Core.Tests.csproj +++ b/TrackableEntities.EF.Core.Tests/TrackableEntities.EF.Core.Tests.csproj @@ -1,8 +1,8 @@  - netcoreapp2.2 - + netcoreapp3.0 + 3.0.0 false @@ -15,14 +15,11 @@ - - - + + + - - all - runtime; build; native; contentfiles; analyzers - + diff --git a/TrackableEntities.EF.Core/DbContextExtensionsInternal.cs b/TrackableEntities.EF.Core/DbContextExtensionsInternal.cs index f4aa4ae..9ddd790 100644 --- a/TrackableEntities.EF.Core/DbContextExtensionsInternal.cs +++ b/TrackableEntities.EF.Core/DbContextExtensionsInternal.cs @@ -23,12 +23,14 @@ public static class DbContextExtensionsInternal public static void TraverseGraph(this DbContext context, object item, Action callback) { +#pragma warning disable EF1001 // Internal EF Core API usage. IStateManager stateManager = context.Entry(item).GetInfrastructure().StateManager; - var node = new EntityEntryGraphNode(stateManager.GetOrCreateEntry(item), null, null); + var node = new EntityEntryGraphNode(stateManager.GetOrCreateEntry(item), null, null, null); IEntityEntryGraphIterator graphIterator = new EntityEntryGraphIterator(); +#pragma warning restore EF1001 // Internal EF Core API usage. var visited = new HashSet(); - graphIterator.TraverseGraph(node, null, (n, s) => + graphIterator.TraverseGraph(node, n => { // Check visited if (visited.Contains(n.Entry.Entity.GetHashCode())) @@ -54,12 +56,14 @@ public static void TraverseGraph(this DbContext context, object item, public static async Task TraverseGraphAsync(this DbContext context, object item, Func callback) { +#pragma warning disable EF1001 // Internal EF Core API usage. IStateManager stateManager = context.Entry(item).GetInfrastructure().StateManager; - var node = new EntityEntryGraphNode(stateManager.GetOrCreateEntry(item), null, null); + var node = new EntityEntryGraphNode(stateManager.GetOrCreateEntry(item), null, null, null); IEntityEntryGraphIterator graphIterator = new EntityEntryGraphIterator(); +#pragma warning restore EF1001 // Internal EF Core API usage. var visited = new HashSet(); - await graphIterator.TraverseGraphAsync(node, null, async (n, s, ct) => + await graphIterator.TraverseGraphAsync(node, async (n, ct) => { // Check visited if (visited.Contains(n.Entry.Entity.GetHashCode())) diff --git a/TrackableEntities.EF.Core/TrackableEntities.EF.Core.csproj b/TrackableEntities.EF.Core/TrackableEntities.EF.Core.csproj index 7a1bbac..bc60919 100644 --- a/TrackableEntities.EF.Core/TrackableEntities.EF.Core.csproj +++ b/TrackableEntities.EF.Core/TrackableEntities.EF.Core.csproj @@ -1,18 +1,18 @@  - netstandard2.0 + netstandard2.1 true - 1.2.0 + 3.0.0 Tony Sneed Tony Sneed Trackable Entities for EF Core Provides an ApplyChanges extension method for DbContext that sets EntityState on trackable entities, so they can be saved by a service in a single transaction. MIT https://github.com/TrackableEntities/TrackableEntities.Core - http://trackableentities.github.io/images/tracking.png + icon.png change-tracking entity-framework-core n-tier - See: https://github.com/TrackableEntities/TrackableEntities.Core/releases/tag/v1.2.0 + See: https://github.com/TrackableEntities/TrackableEntities.Core/releases/tag/v3.0.0 true @@ -27,7 +27,11 @@ - + + + + + diff --git a/TrackableEntities.EF.Core/icon.png b/TrackableEntities.EF.Core/icon.png new file mode 100644 index 0000000..c0b3310 Binary files /dev/null and b/TrackableEntities.EF.Core/icon.png differ diff --git a/global.json b/global.json new file mode 100644 index 0000000..2223a05 --- /dev/null +++ b/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "3.0.100" + } +} \ No newline at end of file