我想在实体框架中实现下面提到的问题。
我有2张桌子(下面是他们的简化版本)
项目表
itemId,itemName
标签表
tagId,tagName
我的逻辑是,一个项目可以有多个标签,一个标签可以有多个与之相关的项目,所以我添加了多对多的关系(如果我错了,请在这里纠正我)
我已经从中创建了模型(edmx文件)和数据库。
我编写了代码,用于向我的示例表添加数据,并且工作正常。以下是样本数据
itemId itemName ---items table
1 | fish
2 | cell phone
tagId tagName ------tags table
1 | eatable
2 | electronics
3 | non veg
我需要知道如何编写这3个查询
答案 0 :(得分:1)
如果您的关联符合正常命名(问题中的EDMX图表会有帮助)...
问题1。
Tag tag = ... // probably load from database or create if necessary
Item item = ...
item.Tags.Add(tag);
问题2.
var tags = item.Tags;
问3.a所有标签与任何项目无关
var unrelatedTags = context.Tags.Where(tag => tag.Items.Count() > 0);
Q 3.b所有与特定项目无关的标签
var unrelatedTags = context.Tags.Except(item.Tags);