// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.TestModels.ManyToManyModel; using Microsoft.Extensions.DependencyInjection; namespace EntityFrameworkCore.Jet.FunctionalTests; public class ManyToManyTrackingProxyGeneratedKeysJetTest( ManyToManyTrackingProxyGeneratedKeysJetTest.ManyToManyTrackingProxyGeneratedKeysJetFixture fixture) : ManyToManyTrackingJetTestBase< ManyToManyTrackingProxyGeneratedKeysJetTest.ManyToManyTrackingProxyGeneratedKeysJetFixture>(fixture) { public override Task Can_insert_many_to_many_shared_with_payload(bool async) // Mutable properties aren't proxyable on Dictionary => Task.CompletedTask; public override Task Can_update_many_to_many_shared_with_payload() // Mutable properties aren't proxyable on Dictionary => Task.CompletedTask; public override Task Can_insert_update_delete_shared_type_entity_type() // Mutable properties aren't proxyable on Dictionary => Task.CompletedTask; public override Task Can_insert_many_to_many_shared_with_payload_unidirectional(bool async) // Mutable properties aren't proxyable on Dictionary => Task.CompletedTask; public override Task Can_update_many_to_many_shared_with_payload_unidirectional() // Mutable properties aren't proxyable on Dictionary => Task.CompletedTask; protected override bool RequiresDetectChanges => false; public class ManyToManyTrackingProxyGeneratedKeysJetFixture : ManyToManyTrackingJetFixtureBase { protected override string StoreName => "ManyToManyTrackingProxyGeneratedKeys"; public override DbContextOptionsBuilder AddOptions(DbContextOptionsBuilder builder) => base.AddOptions(builder).UseChangeTrackingProxies(); protected override IServiceCollection AddServices(IServiceCollection serviceCollection) => base.AddServices(serviceCollection.AddEntityFrameworkProxies()); public override bool UseGeneratedKeys => true; protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext context) { base.OnModelCreating(modelBuilder, context); modelBuilder .SharedTypeEntity>("JoinOneToThreePayloadFullShared") .Ignore("Payload"); // Mutable properties aren't proxyable on Dictionary modelBuilder .SharedTypeEntity>("UnidirectionalJoinOneToThreePayloadFullShared") .Ignore("Payload"); // Mutable properties aren't proxyable on Dictionary modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Key1).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.SharedTypeEntity("PST").IndexerProperty("Id").ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Key1).ValueGeneratedOnAdd(); modelBuilder.Entity().Property(e => e.Id).ValueGeneratedOnAdd(); } } }