Сообщение может иметь много тем. Тема может быть назначена для многих сообщений. При добавлении сообщения с двумя темами, выбранными из списка тем, две темы NULL
также включены в мою таблицу тем. См. Id=34
и 35
. Что я сделал не так? Темы не должны изменяться. Я добавляю новое сообщение и выбираю темы из фиксированного количества тем (выпадающий список). Он отслеживается в таблице PostTopics (PostID, TopicID).EF Code first: Insert Many to many
Темы таблицы:
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
Они из моего слоя пользовательского интерфейса. Я не хочу утомлять вас подробностями. – Frank
Разве это не просто 'foreach (var i in pobjTopics.Where (t => t.TopicName! = Null))'? –