我有3个带映射的模型。
问题是当我尝试种子时我得到NullReferenceException。
[Table("Articles")]
public class Article
{
[Required]
public int Id { get; set; }
public string Title { get; set; }
public DateTime Date { get; set; }
public string Text { get; set; }
public virtual List<Comment> Comments { get; set; }
public virtual List<Tag> Tags { get; set; }
}
[Table("Tags")]
public class Tag
{
[Required]
public int Id { get; set; }
[Required]
public string Name { get; set; }
public virtual List<Article> Articles { get; set; }
}
[Table("Comments")]
public class Comment
{
[Required]
public int Id { get; set; }
[Required]
[DataType(DataType.MultilineText)]
public string Text { get; set; }
public DateTime Date { get; set; }
[Required]
public virtual Article Article { get; set; }
}
public ArticleMapping()
{
this.HasKey(m => m.Id);
this.HasMany(m => m.Comments);
this.HasMany(m => m.Tags);
}
public CommentMapping()
{
this.HasKey(m => m.Id);
this.HasRequired(m => m.Article);
}
public TagMapping()
{
this.HasKey(m => m.Id);
this.HasMany(m => m.Articles);
}
这是我种子数据的方式:
protected override void Seed(MychineContext context)
{
Article article = new Article();
article.Title = "Looking for trouble";
article.Date = DateTime.Now;
article.Text = "Lorem ipsum dolor sit amet";
context.Articles.Add(article);
Tag tag = new Tag();
tag.Name = "PHP";
tag.Articles.Add(article);
article.Tags.Add(tag);
context.Articles.Attach(article);
context.SaveChanges();
base.Seed(context);
}
这种映射是否正确?如果我使用&#34; migration&#34;我每次都需要重置所有数据吗?
答案 0 :(得分:0)
感谢您的回答。
我解决了这个问题。
标签是一个列表,我忘了在添加标签之前创建实例。