OK, nous allons essayer de faire un peu plus clair: voici le schéma NerdDinner de base que vous mentionnez dans votre message:
alt text http://i31.tinypic.com/nejqmu.jpg
La question de savoir si oui ou non vous aurez un « RSVPs » La propriété de style (un "EntitySet") à laquelle vous pouvez ajouter des entités ne dépend pas du fait que vous ayez ou non une ou plusieurs relations - cela dépend de la fin de la relation dans laquelle vous vous trouvez.
La table parent (ici: Dîner) a généralement 0, 1 ou plusieurs entrées de l'enfant dans la table des enfants (ici: RSVP). Donc, dans la table parente, vous devez avoir une propriété "RSVP" qui vous permet de stocker plusieurs entités - une entité EntitySet. Cependant, à partir de la table enfant, l'enfant ne peut jamais être associé exactement à un parent - par conséquent, vous n'avez qu'une seule entité appelée "Dîner" (le dîner auquel ce RSVP est destiné).
Vous voyez clairement lorsque vous cliquez sur la ligne entre les deux entités et regardez ses propriétés:
alt text http://i31.tinypic.com/2f07our.jpg
Le One-To-Many « Cardinalité » Les définit ceci: un parent a beaucoup enfants, mais un enfant n'a qu'un seul parent.
Par conséquent, dans votre code, vous serez en mesure d'écrire ceci:
NerdDinnerDataContext ctx = new NerdDinnerDataContext();
Dinner upcomingDinner = new Dinner();
upcomingDinner.EventDate = new DateTime(2009, 10, 10);
upcomingDinner.Address = "One Microsoft Way, Redmond, WA";
upcomingDinner.ContactPhone = "(555) 123 1234";
upcomingDinner.RSVPs.Add(new RSVP() { AttendeeName = "ScottGu" });
upcomingDinner.RSVPs.Add(new RSVP() { AttendeeName = "ScottHa" });
upcomingDinner.RSVPs.Add(new RSVP() { AttendeeName = "PhilHa" });
RSVP scottHunter = new RSVP();
scottHunter.AttendeeName = "Scott Hunter";
scottHunter.Dinner = upcomingDinner;
Le parent (dîner) a une collection de RSVPs (un EntitySet, pour être exact, dans LINQ to SQL terminologie), donc vous pouvez avoir
upcomingDinner.RSVPs.Add(new RSVP() { AttendeeName = "ScottGu" });
d'autre part, la propriété enfant « RSVP » ne peut être associé à un seul dîner, il ne dispose pas d'un EntitySet, mais une seule instance d'un "Dîner" pour établir la connexion, et vous écrirez:
scottHunter.Dinner = upcomingDinner;
Est-ce que cela rend les choses un peu plus claires? Ce sont vraiment les bases de la modélisation de base de données relationnelle et comment associer les tables parent et enfant les unes aux autres - traduites par Linq-to-SQL en objets et comment ils peuvent être connectés et associés.
Marc
Assurez-vous de vérifier Linq Scott Guthrie à tutoriel SQL à http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part- 1.aspx –