我正在開發一個asp.net-mvc項目。如何在Entity Framework中以多對多關係添加和重用對象?
我有一個物品表和一個標籤表。還有一個ItemTags表,由兩列組成,設置爲複合鍵,存儲前兩個表中的Id。
映射到EntityFramework後面的表使得能夠在表格之間導航。
當我添加一個新的標籤爲某個特定項目使用:
db.Items.Where(id => id.Id == newItem.Id).First().Tags.Add(newTag);
我的問題是:如果標籤在標籤表中已經加入,會發生什麼,而我還有一個項目想重用相同的標籤? 如果我有一個僅使用標籤表中已有標籤的新項目,會發生什麼情況?
是否使用:
db.Items.Where(id => id.Id == newItem.Id).First().Tags.Add(newTag);
AGAIN確保我沒有相同的標籤添加兩次。我如何「製造」標籤和物品之間的關係,如果它們都已在表格中。
謝謝!
好的。感謝您的答覆。我還有一件事情還不清楚。 如果我有一個項目和標籤已被添加到他們各自的表。我如何在它們之間建立關係? – unmircea 2010-07-04 14:16:19
@basilmir你的代碼應該工作得很好。只需將標籤添加到Item.Tags集合。反向應該也可以。 Tags.Items.Add(商品) – jfar 2010-07-04 14:32:42
感謝您的回覆。我正在尋找的東西是這樣的: Tag relatedTag = new Tag {Id = 2}; Item relatedItem = new Item {Id = 10}; db.AttachTo(「Tags」,relatedTag); db.AttachTo(「Items」,relatedItem); db.SaveChanges(); 這是否會創建我的表之間的關係並更新兩者之間的表? – unmircea 2010-07-05 14:36:29