私は MVC 4 と EF Code First 5 を使用しています。投稿エンティティとタグ エンティティには多対多の関係があります。
public class Post : BaseEntity
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public virtual ICollection<PostTag> Tags { get; set; }
}
public class PostTag : BaseEntity
{
public int TagId { get; set; }
public string Name { get; set; }
public virtual ICollection<Post> Posts { get; set; }
}
投稿エンティティでのこの Fluent マッピング:
HasMany(p => p.Tags)
.WithMany(t => t.Posts)
.Map(pt => pt.ToTable("PostTagsJunction")
.MapLeftKey("PostId")
.MapRightKey("TagId"));
新しい投稿を追加するための私の投稿サービス:
public void Add(Post entity)
{
_posts.Add(entity);
}
そして私の問題は次のとおりです。このタグを持つ新しい投稿エンティティを追加するとき:["A"、"B"、"C"]
データベースに存在するタグ:["B","H","E"],
しかし、タグエンティティに新しい ["B"] が挿入されました。これは重複しています!
["A","C"] タグのみを挿入する新しい投稿を挿入するにはどうすればよいですか?
私はこれになりたいです(新しい投稿IDは3です):
投稿:
postid
1
2
3
タグ:
tagid name
1 B
2 H
3 E
4 A
5 C
PostTagsJunction:
postid tagid
1 2
1 3
2 3
2 1
3 1
3 4
3 5