Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add owned types to InheritanceRelationshipsQueryTest #20704

Merged
merged 1 commit into from
Apr 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,125 +9,6 @@ public abstract class InheritanceRelationshipsQueryFixtureBase : SharedStoreFixt
{
protected override string StoreName { get; } = "InheritanceRelationships";

protected override void OnModelCreating(ModelBuilder modelBuilder, DbContext context)
{
modelBuilder.Entity<DerivedInheritanceRelationshipEntity>().HasBaseType<BaseInheritanceRelationshipEntity>();
modelBuilder.Entity<BaseInheritanceRelationshipEntity>().HasKey(e => e.Id);

modelBuilder.Entity<NestedReferenceDerived>();
modelBuilder.Entity<NestedCollectionDerived>();
modelBuilder.Entity<DerivedReferenceOnBase>();
modelBuilder.Entity<DerivedCollectionOnBase>();
modelBuilder.Entity<DerivedReferenceOnDerived>();
modelBuilder.Entity<DerivedCollectionOnDerived>();
modelBuilder.Entity<BaseReferenceOnBase>().HasKey(e => e.Id);
modelBuilder.Entity<BaseReferenceOnDerived>().HasKey(e => e.Id);
modelBuilder.Entity<BaseCollectionOnBase>().HasKey(e => e.Id);
modelBuilder.Entity<BaseCollectionOnDerived>().HasKey(e => e.Id);
modelBuilder.Entity<NestedReferenceBase>().HasKey(e => e.Id);
modelBuilder.Entity<NestedCollectionBase>().HasKey(e => e.Id);

modelBuilder.Entity<BaseInheritanceRelationshipEntity>()
.HasOne(e => e.DerivedSefReferenceOnBase)
.WithOne(e => e.BaseSelfReferenceOnDerived)
.HasForeignKey<DerivedInheritanceRelationshipEntity>(e => e.BaseId)
.IsRequired(false);

modelBuilder.Entity<BaseInheritanceRelationshipEntity>()
.HasOne(e => e.BaseReferenceOnBase)
.WithOne(e => e.BaseParent)
.HasForeignKey<BaseReferenceOnBase>(e => e.BaseParentId)
.IsRequired(false);

modelBuilder.Entity<BaseInheritanceRelationshipEntity>()
.HasOne(e => e.ReferenceOnBase)
.WithOne(e => e.Parent)
.HasForeignKey<ReferenceOnBase>(e => e.ParentId)
.IsRequired(false);

modelBuilder.Entity<BaseInheritanceRelationshipEntity>()
.HasMany(e => e.BaseCollectionOnBase)
.WithOne(e => e.BaseParent)
.HasForeignKey(e => e.BaseParentId)
.IsRequired(false);

modelBuilder.Entity<BaseInheritanceRelationshipEntity>()
.HasMany(e => e.CollectionOnBase)
.WithOne(e => e.Parent)
.HasForeignKey(e => e.ParentId)
.IsRequired(false);

modelBuilder.Entity<DerivedInheritanceRelationshipEntity>()
.HasOne(e => e.DerivedReferenceOnDerived)
.WithOne()
.HasForeignKey<DerivedReferenceOnDerived>("DerivedInheritanceRelationshipEntityId")
.IsRequired(false);

modelBuilder.Entity<DerivedInheritanceRelationshipEntity>()
.HasOne(e => e.ReferenceOnDerived)
.WithOne(e => e.Parent)
.HasForeignKey<ReferenceOnDerived>(e => e.ParentId)
.IsRequired(false);

modelBuilder.Entity<DerivedInheritanceRelationshipEntity>()
.HasMany(e => e.BaseCollectionOnDerived)
.WithOne(e => e.BaseParent)
.HasForeignKey(e => e.ParentId)
.IsRequired(false);

modelBuilder.Entity<DerivedInheritanceRelationshipEntity>()
.HasMany(e => e.CollectionOnDerived)
.WithOne(e => e.Parent)
.HasForeignKey(e => e.ParentId)
.IsRequired(false);

modelBuilder.Entity<DerivedInheritanceRelationshipEntity>()
.HasMany(e => e.DerivedCollectionOnDerived)
.WithOne()
.HasForeignKey("DerivedInheritanceRelationshipEntityId")
.IsRequired(false);

modelBuilder.Entity<DerivedInheritanceRelationshipEntity>()
.HasOne(e => e.BaseReferenceOnDerived)
.WithOne(e => e.BaseParent)
.HasForeignKey<BaseReferenceOnDerived>(e => e.BaseParentId)
.IsRequired(false);

modelBuilder.Entity<BaseReferenceOnBase>()
.HasOne(e => e.NestedReference)
.WithOne(e => e.ParentReference)
.HasForeignKey<NestedReferenceBase>(e => e.ParentReferenceId)
.IsRequired(false);

modelBuilder.Entity<BaseReferenceOnBase>()
.HasMany(e => e.NestedCollection)
.WithOne(e => e.ParentReference)
.HasForeignKey(e => e.ParentReferenceId)
.IsRequired(false);

modelBuilder.Entity<BaseCollectionOnBase>()
.HasOne(e => e.NestedReference)
.WithOne(e => e.ParentCollection)
.HasForeignKey<NestedReferenceBase>(e => e.ParentCollectionId)
.IsRequired(false);

modelBuilder.Entity<BaseCollectionOnBase>()
.HasMany(e => e.NestedCollection)
.WithOne(e => e.ParentCollection)
.HasForeignKey(e => e.ParentCollectionId)
.IsRequired(false);

modelBuilder.Entity<PrincipalEntity>()
.HasOne(e => e.Reference)
.WithMany()
.IsRequired(false);

modelBuilder.Entity<ReferencedEntity>()
.HasMany(e => e.Principals)
.WithOne()
.IsRequired(false);
}

protected override void Seed(InheritanceRelationshipsContext context)
=> InheritanceRelationshipsContext.Seed(context);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ public virtual void Entity_can_make_separate_relationships_with_base_type_and_de
}

[ConditionalFact]
public virtual void Include_reference_with_inheritance1()
public virtual void Include_reference_with_inheritance()
{
using var context = CreateContext();
var query = context.BaseEntities.Include(e => e.BaseReferenceOnBase);
Expand Down Expand Up @@ -114,7 +114,7 @@ public virtual void Include_self_reference_with_inheritance_reverse()
}

[ConditionalFact]
public virtual void Include_reference_with_inheritance_with_filter1()
public virtual void Include_reference_with_inheritance_with_filter()
{
using var context = CreateContext();
var query = context.BaseEntities.Include(e => e.BaseReferenceOnBase).Where(e => e.Name != "Bar");
Expand Down Expand Up @@ -174,7 +174,7 @@ public virtual void Include_reference_without_inheritance_with_filter_reverse()
}

[ConditionalFact]
public virtual void Include_collection_with_inheritance1()
public virtual void Include_collection_with_inheritance()
{
using var context = CreateContext();
var query = context.BaseEntities.Include(e => e.BaseCollectionOnBase);
Expand All @@ -196,7 +196,7 @@ public virtual void Include_collection_with_inheritance_reverse()
}

[ConditionalFact]
public virtual void Include_collection_with_inheritance_with_filter1()
public virtual void Include_collection_with_inheritance_with_filter()
{
using var context = CreateContext();
var query = context.BaseEntities.Include(e => e.BaseCollectionOnBase).Where(e => e.Name != "Bar");
Expand Down Expand Up @@ -410,7 +410,7 @@ public virtual void Include_collection_with_inheritance_on_derived_reverse()
}

[ConditionalFact]
public virtual void Nested_include_with_inheritance_reference_reference1()
public virtual void Nested_include_with_inheritance_reference_reference()
{
using var context = CreateContext();
var query = context.BaseEntities.Include(e => e.BaseReferenceOnBase.NestedReference);
Expand All @@ -420,7 +420,7 @@ public virtual void Nested_include_with_inheritance_reference_reference1()
}

[ConditionalFact]
public virtual void Nested_include_with_inheritance_reference_reference3()
public virtual void Nested_include_with_inheritance_reference_reference_on_base()
{
using var context = CreateContext();
var query = context.DerivedEntities.Include(e => e.BaseReferenceOnBase.NestedReference);
Expand All @@ -440,7 +440,7 @@ public virtual void Nested_include_with_inheritance_reference_reference_reverse(
}

[ConditionalFact]
public virtual void Nested_include_with_inheritance_reference_collection1()
public virtual void Nested_include_with_inheritance_reference_collection()
{
using var context = CreateContext();
var query = context.BaseEntities.Include(e => e.BaseReferenceOnBase.NestedCollection);
Expand All @@ -450,7 +450,7 @@ public virtual void Nested_include_with_inheritance_reference_collection1()
}

[ConditionalFact]
public virtual void Nested_include_with_inheritance_reference_collection3()
public virtual void Nested_include_with_inheritance_reference_collection_on_base()
{
using var context = CreateContext();
var query = context.DerivedEntities.Include(e => e.BaseReferenceOnBase.NestedCollection);
Expand All @@ -470,7 +470,7 @@ public virtual void Nested_include_with_inheritance_reference_collection_reverse
}

[ConditionalFact]
public virtual void Nested_include_with_inheritance_collection_reference1()
public virtual void Nested_include_with_inheritance_collection_reference()
{
using var context = CreateContext();
var query = context.BaseEntities.Include(e => e.BaseCollectionOnBase).ThenInclude(e => e.NestedReference);
Expand All @@ -492,7 +492,7 @@ public virtual void Nested_include_with_inheritance_collection_reference_reverse
}

[ConditionalFact]
public virtual void Nested_include_with_inheritance_collection_collection1()
public virtual void Nested_include_with_inheritance_collection_collection()
{
using var context = CreateContext();
var query = context.BaseEntities.Include(e => e.BaseCollectionOnBase).ThenInclude(e => e.NestedCollection);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,20 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;

namespace Microsoft.EntityFrameworkCore.TestModels.InheritanceRelationships
{
public class BaseCollectionOnBase
{
[NotMapped]
public int Id { get; set; }

public string Name { get; set; }

public int? BaseParentId { get; set; }
public BaseInheritanceRelationshipEntity BaseParent { get; set; }

[NotMapped]
public NestedReferenceBase NestedReference { get; set; }

[NotMapped]
public List<NestedCollectionBase> NestedCollection { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using System.ComponentModel.DataAnnotations.Schema;

namespace Microsoft.EntityFrameworkCore.TestModels.InheritanceRelationships
{
public class BaseCollectionOnDerived
{
[NotMapped]
public int Id { get; set; }

public string Name { get; set; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,22 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;

namespace Microsoft.EntityFrameworkCore.TestModels.InheritanceRelationships
{
public class BaseInheritanceRelationshipEntity
{
[NotMapped]
public int Id { get; set; }

public string Name { get; set; }

[NotMapped]
public DerivedInheritanceRelationshipEntity DerivedSefReferenceOnBase { get; set; }

[NotMapped]
public BaseReferenceOnBase BaseReferenceOnBase { get; set; }

[NotMapped]
public ReferenceOnBase ReferenceOnBase { get; set; }
public OwnedEntity OwnedReferenceOnBase { get; set; }

[NotMapped]
public List<BaseCollectionOnBase> BaseCollectionOnBase { get; set; }

[NotMapped]
public List<CollectionOnBase> CollectionOnBase { get; set; }
public List<OwnedEntity> OwnedCollectionOnBase { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,20 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;

namespace Microsoft.EntityFrameworkCore.TestModels.InheritanceRelationships
{
public class BaseReferenceOnBase
{
[NotMapped]
public int Id { get; set; }

public string Name { get; set; }

public int? BaseParentId { get; set; }
public BaseInheritanceRelationshipEntity BaseParent { get; set; }

[NotMapped]
public NestedReferenceBase NestedReference { get; set; }

[NotMapped]
public List<NestedCollectionBase> NestedCollection { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using System.ComponentModel.DataAnnotations.Schema;

namespace Microsoft.EntityFrameworkCore.TestModels.InheritanceRelationships
{
public class BaseReferenceOnDerived
{
[NotMapped]
public int Id { get; set; }

public string Name { get; set; }

public int? BaseParentId { get; set; }

[NotMapped]
public DerivedInheritanceRelationshipEntity BaseParent { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@ public class DerivedInheritanceRelationshipEntity : BaseInheritanceRelationshipE
public DerivedReferenceOnDerived DerivedReferenceOnDerived { get; set; }
public ReferenceOnDerived ReferenceOnDerived { get; set; }
public BaseInheritanceRelationshipEntity BaseSelfReferenceOnDerived { get; set; }
public OwnedEntity OwnedReferenceOnDerived { get; set; }

public List<BaseCollectionOnDerived> BaseCollectionOnDerived { get; set; }
public List<DerivedCollectionOnDerived> DerivedCollectionOnDerived { get; set; }
public List<CollectionOnDerived> CollectionOnDerived { get; set; }
public List<OwnedEntity> OwnedCollectionOnDerived { get; set; }
}
}
Loading