2012-12-12 15 views
0

我閱讀了我能找到的其他答案,但沒有人幫助我。我對.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> 

這「新」是造成錯誤:無法隱式轉換類型「系統。 Collections.Generic.List ....

我試圖谷歌,但我不明白我發現的行話。幫幫我?

+0

你可以請你發佈你的DbContext文件嗎? – IronMan84

+0

爲什麼新的評論列表出現問題,新的項目文檔列表沒有問題,以及爲什麼要指定主鍵值,他們應該自動生成並從數據庫中分配。 –

回答

1

雖然它與您的問題沒有直接關係,但您應該不會將AddOrUpdate用於對象圖。該方法的內部邏輯不檢查相關的對象,所以你可以解決你的問題,使其工作,但只有添加部分將功能。當您添加,更新或刪除ProjectDocComment時,Seed方法將無法識別更改。它僅直接識別Project實例中的更改。

+0

原來我有其他問題,在我做了一個更好的(希望)工作理解和使用「Fluent API」而不是我已取得進展的必需註釋之後。雖然它還沒有工作。感謝您的迴應! –