代码之家  ›  专栏  ›  技术社区  ›  Praveen Prasad

实体框架:实现非常简单的关联场景

  •  0
  • Praveen Prasad  · 技术社区  · 16 年前

    我想在实体框架中实现下面提到的问题。

    项目表

    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个查询

    1. 添加标签和项目之间的关系,例如,在项目“鱼”中添加标签“可吃”、“不可食”
    2. 获取与项目相关的所有标签(例如:鱼)
    1 回复  |  直到 16 年前
        1
  •  1
  •   Ian Mercer    16 年前

    问题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);