| 

.NET C# Java Javascript Exception

2
Hallo NG,

ich habe eine Tabelle Country:
public class Country 
{
public Country()
{
Customers = new List<Customer>();
CustomersDiff = new List<Customer>();
}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long CountryID { get; set; }
[StringLength(3)]
[Required]
public string CountryFlag { get; set; }
[StringLength(100)]
[Required]
public string CountryName { get; set; }
[StringLength(7)]
[Required]
public string CountryCode { get; set; }
public ICollection<Customer> Customers { get; set; }
public ICollection<Customer> CustomersDiff { get; set; }
}

und eine Tabelle Customer:
public class Customer : Contact
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public long CustomerID {get; set; }
[Required]
public long CountryID { get; set; }
public Country Country { get; set; }
[StringLength(120)]
public string Street { get; set; }
[StringLength(120)]
public string DiffAddressName { get; set; }
public long? DiffAddressCountryID { get; set; }
public Country DiffAddressCountry { get; set; }
}

Diese Tabelle hat 2 Verweise auf die Tabelle Country. Der eine ist required der andere optional.
Wenn ich nun die Migration aufrufe bekomme ich folgende Fehlermeldung:
Unable to determine the relationship represented by navigation property 'Country.Customers' of type 'ICollection<Customer>'. Either manually configure the relationship, or ignore this property using the '[NotMapped]' attribute or by using 'EntityTypeBuilder.Ignore' in 'OnModelCreating'.
Kann mir hier jemand helfen?

Danke im voraus.

Ingo
27.11.2017
ingo 122 1 6
1 Antwort
1
Ich kenne das Entity-Framework zwar nicht im Detail aber generell bilden ORM-Mapper 1:N Mappings über eine Verknüpfung über den Primary Key ab. Der Generator kann wohl nicht damit umgehen, dass du zweimal dieselbe Tabelle verknüpfst. Wie die Fehlermeldung schon aussagt, musst du wohl die Verknüpfung manuell definieren. Die Doku dazu findest du hier: Relationsships - EF Core
28.11.2017
luedi 2,1k 1 9
Danke ich habe einen besseren Weg gefunden.
ingo 28.11.2017

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH