一篇文章可以有很多主题。一个主题可以分配给许多职位。 添加包含从主题列表中选择的两个主题的帖子时,两个NULL
主题也会插入到我的主题表中。见Id=34
和35
。我做错了什么?主题不应该改变。我添加了一个新帖子,并从固定数量的主题(下拉列表)中选择主题。它在PostTopics表(PostID,TopicID)中保持跟踪。EF代码优先:插入多对多
主题表:
Id TopicName TopicDesc 31 Sports Sports 32 Game Game 33 Politics Politics 34 NULL NULL 35 NULL NULL
TopicPosts表:
Topic_Id Post_Id
34 11
35 11
public class Post
{
public int Id { get; set; }
public int UserId { get; set; }
public virtual ICollection<Topic> PostTopics { get; set; }
}
public class Topic
{
public int Id { get; set; }
public string TopicName { get; set; }
public virtual ICollection<Request> Requests { get; set; }
}
// insert code: I think the problem is here
using (var context = new ChatContext())
{
// Post
context.Posts.Add(pobjPost);
pobjPost.PostTopics = new List<Topic>();
// topics
foreach (var i in pobjTopics)
{
pobjPost.PostTopics.Add(i);
}
context.SaveChanges();
}
或许,这将有助于包括一些你的变量来自哪里的代码('pobjPost','pobjTopics') – Guvante 2012-07-18 23:42:58
它们来自我的UI层。我不想让你知道细节。 – Frank 2012-07-19 03:37:52
它不只是'foreach(var i在pobjTopics.Where(t => t.TopicName!= null))'? – 2012-07-20 10:15:50