Skip to content

Commit

Permalink
Fix new EF Core warning
Browse files Browse the repository at this point in the history
  • Loading branch information
0xced committed Mar 3, 2020
1 parent 8f84b7b commit a3d484a
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions source/Web/Database/NugetPackageConfiguration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
using ICanHasDotnetCore.NugetPackages;
using ICanHasDotnetCore.Plumbing;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.ChangeTracking;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using NuGet.Versioning;
Expand All @@ -13,6 +14,14 @@ namespace ICanHasDotnetCore.Web.Database
{
public class NugetPackageConfiguration : IEntityTypeConfiguration<NugetPackage>
{
private static ValueComparer<IReadOnlyList<T>> CreateIReadOnlyListComparer<T>()
{
// Adapted from https://github.com/dotnet/efcore/issues/17471#issuecomment-526330450
return new ValueComparer<IReadOnlyList<T>>(
(c1, c2) => c1.SequenceEqual(c2),
c => c.Aggregate(0, (a, v) => HashCode.Combine(a, v.GetHashCode())));
}

public void Configure(EntityTypeBuilder<NugetPackage> builder)
{
var dependenciesConverter = new ValueConverter<IReadOnlyList<string>, string>
Expand All @@ -34,8 +43,10 @@ public void Configure(EntityTypeBuilder<NugetPackage> builder)
builder.Property(e => e.Version).HasConversion(versionConverter);
builder.Property(e => e.SupportType).HasConversion<string>();
builder.Property(e => e.ProjectUrl);
builder.Property(e => e.Dependencies).HasConversion(dependenciesConverter);
builder.Property(e => e.Frameworks).HasConversion(frameworksConverter);
builder.Property(e => e.Dependencies).HasConversion(dependenciesConverter)
.Metadata.SetValueComparer(CreateIReadOnlyListComparer<string>());
builder.Property(e => e.Frameworks).HasConversion(frameworksConverter)
.Metadata.SetValueComparer(CreateIReadOnlyListComparer<FrameworkName>());
}
}
}

0 comments on commit a3d484a

Please sign in to comment.