// 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 : ManyToManyTrackingJetTestBase< ManyToManyTrackingProxyGeneratedKeysJetTest.ManyToManyTrackingProxyGeneratedKeysJetFixture> { public ManyToManyTrackingProxyGeneratedKeysJetTest(ManyToManyTrackingProxyGeneratedKeysJetFixture fixture) : base(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 void Can_update_many_to_many_shared_with_payload() { // Mutable properties aren't proxyable on Dictionary } public override void Can_insert_update_delete_shared_type_entity_type() { // Mutable properties aren't proxyable on Dictionary } 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 void Can_update_many_to_many_shared_with_payload_unidirectional() { // Mutable properties aren't proxyable on Dictionary } 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(); } } }