用相关表播种实体数据库

时间:2012-12-12 22:41:52

标签: entity-framework ef-code-first ef-migrations

我读完了我能找到的其他答案,但没有一个能帮助我。我对.NET,Entity,C#等都很陌生。所以我希望你能原谅我。我正在尝试创建一个“种子”文件,当我尝试单独播种所有表时,当它是一个相关的表时,我会收到错误。我不仅想要看到一张儿童餐桌,还要看一个孙子(希望这很有意义)。例如,由于我发现了一个帖子,这就是我现在正在尝试的内容:

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" }
                        }
                     }
                  }
             }
        );

我的问题是:

 Comment = **new** List<Comment> 

“new”导致错误:无法隐式转换类型'System.Collections.Generic.List ....

我试图谷歌,但我不明白我发现的行话。帮助

1 个答案:

答案 0 :(得分:1)

虽然它与您的问题没有直接关系,但您不应将AddOrUpdate用于对象图。该方法的内部逻辑不会检查相关对象,因此您可以解决您的问题并使其工作,但只有添加部分才能正常运行。当您添加,更新或删除ProjectDocComment时,Seed方法将无法识别更改。它只能直接识别Project实例中的更改。