всякий раз, когда я хочу, чтобы добавить теги к столбу я должен работать с PostTags свойствами от Post и классов тегов?
Если вы используете пример кода, многочастичных ко-многим частям в above document, ответ да. Вы должны иметь возможность использовать свойство PostTags
объекта Post
для добавления записей в таблицу PostTag
.
Если вы хотите добавить список Tags
к Post
а также Post
вновь создать вы можете использовать следующий код:
using (var db = new MyContext())
{
var posttag = new PostTag { TagId = txttagjoinId.Text };
Post newone = new Post()
{
Content = "new content",
Title = "new title"
};
newone.PostTags = new List<PostTag>() { posttag };
db.Posts.Add(newone);
db.SaveChanges();
}
Если вы хотите добавить список Tags
к существовавшему Post
вы можете сначала получить сообщение, а затем обновить свойство PostTags
. Следующий код добавить Tags
список первой Post
записи:
using (var db = new MyContext())
{
var posttag = new PostTag { TagId = txttagjoinId.Text };
List<Post> allposts = db.Posts.ToList();
allposts[0].PostTags = new List<PostTag>() { posttag };
db.Posts.Update(allposts[0]);
db.SaveChanges();
}
Если добавить public DbSet<PostTag> PostTags { get; set; }
к MyContext
класса, вам не нужно PostTags
свойство, вы должны иметь возможность добавлять записи в PostTag
таблицу следующим образом, но которые может быть не рекомендуются:
using (var db = new MyContext())
{
var posttag = new PostTag { TagId = txttagjoinId.Text, PostId = 1 };
db.PostTags.Add(posttag);
db.SaveChanges();
}
Обратите внимание таблицы PostTags
была создана с иностранным клавишем PostId
и TagId
, что при добавлении или обновления записей, которые необходимо удовлетворять ограничения.