这是一个基于表单(桌面)的应用程序,可与Entity Framework 6和MySQL一起使用,我具有与多对多关系相关的帖子和标签。
modelBuilder.Entity<Post>()
.HasMany<Tag>(p => p.Tags)
.WithMany(p => p.Posts)
.Map(mp =>
{
mp.ToTable("PostToTag");
mp.MapLeftKey("PostId");
mp.MapRightKey("TagId");
});
在列表框中选择标记,以便将它们添加到如下所示的Post对象
List<Tag> _Tags = listBoxSelectedTags.Items.Cast<Tag>().ToList();
if (_Tags != null)
{
_Tags.ForEach(t => post.Tags.Add(t));
}
最后保存更改方法称为
db.Posts.Add(post);
db.SaveChanges();
问题是,当我创建新帖子时,例如选择帖子1和标签1(标签1已在“标签”表中定义)时,其保存成功,但是当我创建下一个帖子2和标签1时,我收到错误消息
{“密钥'IX_Name_Tag'的重复条目'Tag 1'”}
所有标签已在“标签创建”表单中创建。标签名称设置为唯一。我也尝试过AddOrUpdate(post)