fix: dapper doesn't play nice with List<T>

This commit is contained in:
sam 2024-10-27 23:43:07 +01:00
parent 64b4c26d93
commit da4dfae27c
Signed by: sam
GPG key ID: 5F3C3C1B3166639D
4 changed files with 31 additions and 6 deletions

View file

@ -74,12 +74,18 @@ public class DatabaseContext : DbContext
c => c.Aggregate(0, (a, v) => HashCode.Combine(a, v.GetHashCode()))
);
private static readonly ValueComparer<ulong[]> UlongArrayValueComparer =
new(
(c1, c2) => c1 != null && c2 != null && c1.SequenceEqual(c2),
c => c.Aggregate(0, (a, v) => HashCode.Combine(a, v.GetHashCode()))
);
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder
.Entity<Guild>()
.Property(g => g.KeyRoles)
.Metadata.SetValueComparer(UlongListValueComparer);
.Metadata.SetValueComparer(UlongArrayValueComparer);
modelBuilder.Entity<Invite>().HasKey(i => i.Code);
modelBuilder.Entity<Invite>().HasIndex(i => i.GuildId);