2015-11-04 192 views
0

我有两个实体内容和标签。如下。实体框架中的多对多关系

public class Content 
{ 
    public Content() 
    { 
     this.lstTags = new HashSet<Tag>(); 
    } 
    [Key] 
    public virtual int contentId { get; set; }  
    public virtual string contentval { get; set; } 
    public virtual ICollection<Tag> lstTags { get; set; } 

} 
public class Tag 
{ 
    public Tag() 
    { 
     this.lstContents = new HashSet<Content>(); 
    } 
    [Key] 
    public virtual int tagId { get; set; } 
    public virtual string TagName { get; set; } 
    public virtual ICollection<Content> lstContents { get; set; } 
} 

同时节约contentval我要检查,如果标记名已经存在。如果标记名已经存在,并且不存在现有tagid,并且不生成新标记。 什么将查询插入内容

回答

0

我制定了解决方案如下: -

 var Tags = new List<Tag>(); 
     Tags = content.lstTags.ToList(); 
     content.lstTags.Clear(); 
     db.Contents.Add(content); 
     foreach (var tag in Tags) 
     { 
      var tagExists = db.Tags.Include("lstContents").SingleOrDefault(e => e.TagName.Equals(tag.TagName)); 

      if (tagExists != null) 
      { 

       content.lstTags.Add(tagExists); 
      } 
      else 
      { 
       content.lstTags.Add(tag); 
      } 
     } 
     await db.SaveChangesAsync();