2010-10-25 5 views
0

J'ai un type de collection de domaines appelé SavedAnswers et j'aimerais ajouter cette collection à mon Entity Framework. J'ai essayé de comprendre ce que je devais faire mais je suis confus sur toute l'information là-bas.Ajout d'une collection d'objets à Entity Framework

Answers possède une clé primaire d'identité et deux clés étrangères, ce qui génère plus de problèmes/questions.

public void AddEntries(List<SavedAnswers> answers) 
    { 
     foreach (var item in answers) 
     { 
      db.Entries.AddObject(Entries.CreateEntries(1, item.QuestionId, item.AnswerId)); 
     } 

     db.SaveChanges(); 
    } 
+0

Alors, quel est le problème? –

+0

Désolé, je n'ai aucune idée si je le fais de la bonne façon. – MisterIsaak

+0

Oui, sauf une chose que j'ai mentionnée dans ma réponse. –

Répondre

2

Votre code semble bon, sauf que vous ne devriez pas utiliser la méthode d'usine généré sur votre Entrée objet. Au lieu de cela, il suffit de créer via le constructeur et le remplir avec l'objet initialiseur:

public void AddEntries(List answers) { 
    foreach (var item in answers) { 
     db.Entries.AddObject(new Entry() 
     { 
      QuestionId = item.QuestionId, 
      AnswerId = item.AnswerId 
     }); 
    } 
    db.SaveChanges(); 
} 

Lorsque vous utilisez la méthode ObjectSet.AddObject pour ajouter des objets nouvellement créés qui n'existent pas dans le magasin, l'entité recevra une générée automatiquement EntityKey temporaire et son EntityState sera défini sur Ajouté.

+0

Ça marche! Merci d'avoir ajouté l'explication sur EntityKey et State. – MisterIsaak

Questions connexes