The child/dependent side could not be determined for the one-to-one relationship

entity-framework entity-framework-core

Question

I am trying to update my database with "update-database" command in package manager console, But I have this kind of error:

The child/dependent side could not be determined for the one-to-one 
relationship between 'Country.CapitalCity' and 'CapitalCity.Country'. To 
identify the child/dependent side of the relationship, configure the foreign 
key property. If these navigations should not be part of the same 
relationship configure them without specifying the inverse. See 
http://go.microsoft.com/fwlink/?LinkId=724062 for more details.

My Model classes look like this:

public class Country
{
    public int ID { get; set; }
    public string Name { get; set; }
    public long Population { get; set; }

    public int CapitalCityID { get; set; }
    public CapitalCity CapitalCity { get; set; }
}

public class CapitalCity
{
    public int ID { get; set; }
    public int Name { get; set; }

    public int CountryID { get; set; }
    public Country Country { get; set; }
}

After searching info about this problem, I added the following code in my DbContextModelSnapshot, but I still have problem.

modelBuilder.Entity<Country>()
            .HasOne(a => a.CapitalCity)
            .WithOne(a => a.Country)
            .HasForeignKey<CapitalCity>(c => c.CountryID);

What mistake do I have?

1
5
8/12/2018 12:38:47 PM

Accepted Answer

You have to put the below code in your DBContext class, not in SnapShot class. Don’t modify the Snapshot class, it’s auto generated class.

modelBuilder.Entity<Country>()
            .HasOne(a => a.CapitalCity)
            .WithOne(a => a.Country)
            .HasForeignKey<CapitalCity>(c => c.CountryID);
5
8/12/2018 2:36:25 PM


Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow