-
Notifications
You must be signed in to change notification settings - Fork 3.2k
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
EF Core 5 Daily - HasData / ToTable give - The skip navigation 'xxxxxxx' doesn't have a foreign key associated with it. Every skip navigation must have a configured foreign key. #22521
Comments
You should use SharedEntity method to refer to the join entity as it is a shared type entity type. Using Entity here is making that entity type to be removed from skip navigations. Though it should not throw exception. |
Thanks Smit - not sure if you meant using Entity shouldn't throw an exception - for the avoidance of doubt, using SharedTypeEntity as per below throws also:
|
@AndriySvyryd @smitpatel I get the same exception even when using Works: protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Community>()
.HasMany(x => x.Members)
.WithMany(x => x.Memberships)
.UsingEntity<Dictionary<string, object>>(
"CommunityPerson",
x => x.HasOne<Person>().WithMany(),
x => x.HasOne<Community>().WithMany());
modelBuilder.Entity<Community>().HasData(new Community { Id = 1, Name = ".Net Foundation" });
modelBuilder.Entity<Person>().HasData(new Person { Id = 1, Name = "Geoff Smith" });
// The following both fail without the manual configuration commented above
modelBuilder.SharedTypeEntity<Dictionary<string, object>>("CommunityPerson").HasData(new { MembersId = 1, MembershipsId = 1 });
modelBuilder.SharedTypeEntity<Dictionary<string, object>>("CommunityPerson").ToTable("CommunityPersonTest");
} Stack trace when many-to-many is built by convention:
|
Allowing EF Core to create many to many relationship. Seeding data or renaming the automatically created join table as follows:
Both throw:
If I configure the many to many relationship manually as follows, they work:
Steps to reproduce
Further technical details
EF Core version: 6.0.0-alpha.1.20462.1
Database provider: Microsoft.EntityFrameworkCore.SqlServer / Microsoft.EntityFrameworkCore.SqlServer
Target framework: .NET Core 3.1 / .NET Core 5.0
Operating system: Windows 10
IDE: Visual Studio 2019 Preview 16.8.0 Preview 2.1 /
The text was updated successfully, but these errors were encountered: