ASP.NET在添加到多行时复制条目

时间:2018-05-16 07:48:23

标签: c# asp.net-web-api

我正在尝试向多行添加相同的条目 我的项目包含表商店和表标记。这是一个多对多的关系;每个商店可以包含多个标签,每个标签可以与多个商店相关联。

Store.cs:

public class Store{
   public int Id { get; set; }
   public virtual ICollection<Tag> Tags { get; set; }
}



Tag.cs​​

public class Tag{
       public int Id { get; set; }
       public string Name { get; set; }
    }

标签单独发布,然后与PUT请求中的商店相关。

StoreController.cs

public async Task<IHttpActionResult> PutStore(int id, StoreViewModel model){
         var store = await db.Stores.FindAsync(id);
          if (model.tags != null)
                {
                    foreach (var modelTag in model.tags)
                    {
                        var databaseTag = db.Tags.FirstOrDefault(c => c.Name == modelTag.Name);
                        if (databaseTag == null)
                            store.Tags.Add(new Tag()
                            {
                                Name = modelTag.Name
                            });
                        else
                            if (!store.Tags.Any(sc => sc.Name == modelTag.Name))
                                store.Tags.Add(databaseTag);
                    }

                    foreach (var storeTag in store.Tags.ToList())
                        if (!model.tags.Any(s => s.Name == storeTag.Name))
                            store.Tags.Remove(storeTag);
                }
}

StoreViewModel包含一系列标签 那么为什么标签被复制而不是链接到不同的商店呢?
提前谢谢。

0 个答案:

没有答案