Auto-référencement de plusieurs-à-plusieurs relation récursive Entity Framework code first
Je n'arrive pas à faire ce travail à tous les
class Member
{
public virtual IList<Member> Friends { get; set; }
[Key]
public int MemberId { get; set; }
public string Name{ get; set; }
}
J'ai essayé d'ajouter des Mappages mais en vain. Est-il un moyen de le faire avec CTP5?
- Je ne pense pas que cela concerne le premier code mais vérifiez ce post out.
Vous devez vous connecter pour publier un commentaire.
Par convention, le Premier Code prendra uni-directionnelle des associations un-à-plusieurs. Par conséquent, vous devez utiliser l'API fluent pour laisser le Premier Code savoir que vous voulez avoir un grand nombre de beaucoup d'auto-référencement de l'association:
Remarque: Il y a un bogue connu dans CTP5 qui ne vous laissera pas de personnaliser la table de jointure des noms de colonne dans ce scénario.
Si je suis correct, vous pouvez influencer le de nombreux de nombreux nom de la table avec ce code:
espère que cette aide.
Vous pouvez obtenir que cela fonctionne en EF 4 CTP5 en utilisant le Modèle de la Première, mais la CTP5 le Premier Code a trop de bugs avec l'auto-référentielle et polymorphe de la requête de configurations à utiliser le Premier Code pour de tels scénarios. Morteza Manavi (voir autre réponse) a documenté plusieurs d'entre eux sur son blog.
Votre exemple n'est pas un plusieurs-à-plusieurs relations, il s'agit plus d'une relation récursive.
Je ne suis pas sûr de la façon de le résoudre. Mais le problème avec votre code que vous obtiendrez deux champs sur la même ligne avec le même nom. MemberId pour l'id de la ligne et de la MemberId pour l'id de l'ami.
Modifier
Essayer de faire comme ceci: