1

我有两个 EntitiesBlogPostTag,我希望能够添加/检索Tag与 each 关联的 s列表,以及与 each 关联的 sBlogPost列表。BlogPostTag

从理论上讲,这应该没问题,因为会有一个表格将它们通过toBlogPostTags链接在一起。BlogPostIdTagId

我遇到的问题是当我尝试将Tags 添加到 newBlogPost时,该BlogPost.Tags属性为空。

如何初始化列表,甚至只是一个空列表,以便我可以将Tags 添加到它?

public class BlogPost
{
    public int BlogPostId { get; set; }
    public string BlogTitle { get; set; }
    public string BlogContent { get; set; }

    public virtual List<Tag> Tags { get; set; }
}

public class Tag
{
    public int TagId { get; set; }
    public string TagName { get; set; }

    public virtual List<BlogPost> BlogPosts { get; set; }
}

在某处创建标签,如下所示:

Tag tag1 = context.Tags.Create();
tag1.TagName = "test1";
context.Tags.Add(tag1);
context.SaveChanges();

然后我希望能够将它们添加到新的BlogPost

BlogPost post = context.BlogPosts.Create();
post.BlogTitle = "Test post";
post.BlogContent = "this is a test blog and as such lorem bacon.";
post.DatePosted = DateTime.Now;
post.Tags.Add(tag1);
context.BlogPosts.Add(post);
context.SaveChanges();

post.Tags抛出Object reference not set to an instance of an object

4

1 回答 1

3

在构造函数中初始化列表

public class BlogPost
{
    public int BlogPostId { get; set; }
    public string BlogTitle { get; set; }
    public string BlogContent { get; set; }

    public virtual List<Tag> Tags { get; set; }
    public BlogPost()
    {
        Tags = new List<Tag>();
    }
}

和其他班级一样

public class Tag
{
    public int TagId { get; set; }
    public string TagName { get; set; }

    public virtual List<BlogPost> BlogPosts { get; set; }

    public Tag()
    {
        BlogPosts = new List<BlogPost>();
    }
}
于 2013-02-21T15:36:03.897 回答