3

我有一個多對多的關係。ef代碼第一次種子多對多關係

標籤可以有多個文章,文章可以有多個標籤。

public class Article : Entity 
{ 
    [StringLength(150)] 
    public string Name { get; set; } 
    public string Content { get; set; } 
    public ICollection<Tag> Tags { get; set; } 
} 
public class Tag : Entity 
{ 
    public string Name { get; set; } 
    public ICollection<Article> Articles { get; set; } 
} 

的EF codefirst創建一個表名爲TagArticlesTag_Id列和Article_Id

我試圖種子這樣

protected override void Seed(Context context) 
    { 
     var articles = new List<Article>(); 
     for (int i = 0; i < 10; i++) 
     { 
      articles.Add(new Article { Name = "test " + i, Content = "lourm ipsum" }); 
     } 
     var tags = new List<Tag>(); 
     for (int i = 0; i < 10; i++) 
     { 
      tags.Add(new Tag { Name = "tag " + i , Articles = new Article[]{ articles[0] }}); 
     } 
     context.Articles.AddOrUpdate(x => x.Name, articles.ToArray()); 
     context.Tags.AddOrUpdate(x => x.Name, tags.ToArray()); 
    } 

,但在遷移後TagArticles表是空的,我該怎麼辦播種橋表?

回答

1

上面的代碼對我有用,當我將它放入時,但我必須添加主鍵以便數據庫實際保存。

你在哪裏設置主鍵?這是在實體繼承?

你的後裔,還有文章和標籤在數據庫中(有沒有適合我,直到我糾正了PK的問題)

+0

馬克,你是對的,它的工作是的實體有一個ID。我雙重checed,它爲我工作。我做了一個context.SaveChanges()到最後。謝謝 – eiu165 2012-08-04 13:10:34