2012-12-12 1 views
0

J'ai lu les autres réponses que j'ai pu trouver, mais aucune d'elles ne m'a aidé. Je suis assez nouveau pour .NET, Entity, C# etc. Donc j'espère que vous me pardonnerez. J'essaye de créer un dossier de «graine» et j'obtiens des erreurs quand j'essaye de semer toutes les tables séparément, quand c'est une table liée. J'essaie de voir non seulement une table pour enfants, mais aussi un petit-fils (espoir qui a du sens). Par exemple, voici ce que je voulais maintenant en raison d'un poste que j'ai trouvé:Création d'une base de données d'entités avec des tables associées

context.Projects.AddOrUpdate(i => i.ProjectID, 
    new Project 
    { 
     ProjectID = 1, 
     Title = "Project 1", 
     ProjectDoc = new List<ProjectDoc> 
      { 
       new ProjectDoc { 
        ProjectDocID = 1, ProjectID = 1, Content = "Doc Content", DocTitle = "Chapter 1", 
         Comment = new List<Comment> 
         { 
          new Comment { ProjectDocID = 1, CommentID = 1, Text = "Comment text" } 
         } 
        } 
        } 
      } 
     ); 

Mon problème est avec:

Comment = **new** List<Comment> 

Ce « nouveau » est à l'origine d'une erreur: Impossible de convertir implicitement système de type ». Collections.Generic.List ....

J'ai essayé Google, mais je n'ai pas compris le jargon que j'ai trouvé. Aidez-moi?

+0

Pouvez-vous s'il vous plaît poster votre fichier DbContext? – IronMan84

+0

Pourquoi y a-t-il un problème avec la nouvelle liste de commentaires et aucun problème avec la nouvelle liste de docs de projet, plus pourquoi spécifiez-vous les valeurs de clé primaire, elles devraient être générées automatiquement et assignées de la base de données. –

Répondre

1

Bien qu'il ne soit pas directement lié à votre problème, vous ne devez simplement pas utiliser AddOrUpdate pour les graphiques d'objets. La logique interne de la méthode ne vérifie pas les objets liés, donc vous pouvez résoudre votre problème et le faire fonctionner mais seule la partie Ajouter sera fonctionnelle. Lorsque vous ajoutez, mettez à jour ou supprimez ProjectDoc ou Comment la méthode Seed ne reconnaîtra pas la modification. Il reconnaît uniquement les modifications dans l'instance Project directement.

+0

Il s'avère que j'ai eu d'autres problèmes, après avoir fait un meilleur travail (espérons-le) comprendre et utiliser l'API Fluent au lieu d'une annotation requise que j'ai fait progresser. Bien que cela ne fonctionne pas encore. Merci pour la réponse! –

Questions connexes