Ho creato un tipo di entità che ha più proprietà di raccolta che fanno riferimento a elementi dello stesso tipo. In altre parole, riflette una singola tabella di database in cui le righe sono raggruppate in modo arbitrario, in modo tale che una riga possa apparire in più gruppi.Codice quadro entità Primo: come mappare più relazioni autoreferenziali molti-a-molti
Nel seguente esempio semplificato, la classe Person
ha Brothers
e Sisters
raccolta proprietà che fanno riferimento anche Person
entità:
public class Person
{
public Person()
{
Brothers = new Collection<Person>();
Sisters = new Collection<Person>();
}
[Key]
public string Name { get; set; }
public int Age { get; set; }
public virtual ICollection<Person> Brothers { get; set; }
public virtual ICollection<Person> Sisters { get; set; }
}
Entity Framework sembra pensare che questo è un modello valido, ma lo interpreta per creare un Single PersonPersons
join table, che non riflette la separazione tra le relazioni fratello e sorella.
Suppongo che la soluzione sia utilizzare l'API fluente per mappare esplicitamente tabelle di join separate per le due relazioni ma, nonostante la vasta sperimentazione, non sono riuscito a farlo funzionare.
Qualche suggerimento, per favore?
Grazie, Tim
Hai provato, HasMany (p => p.Brothers) .WithMany (b => b.Persons) .Map (m => m.Table ("Person_Brothers"); non hanno provato questo tipo di relazione ma che noi facciamo una mappa di molti a molti quando ef non collaborerà – trevorc