我正在开发一个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