【问题标题】:Entity Framework - Join on many to many实体框架 - 加入多对多
【发布时间】:2010-11-14 00:23:14
【问题描述】:

我有一个简单的多对多关系,我想知道您如何从中获取数据。这是设置

表格

媒体 Media_Keyword(多对多映射) 关键字

这是我的代码:

    public List<Keyword> GetFromMedia(int mediaID)
    {
        var media = (from m in Connection.Data.Media
                   where m.id == mediaID
                   select m).First();

        var keys = (from k in media.Media_Keyword
                    select new Keyword {ID = k.Keywords.id, Name = k.Keywords.keyword});

        return keys.ToList();
    }

有没有办法更好地做到这一点?

【问题讨论】:

    标签: join entity


    【解决方案1】:

    通常,我从多对多映射中直接选择。

    var keys = from k in Connection.Data.Media_Keyword
           where k.MediaID == mediaID
           select k.Keywords;
    

    【讨论】:

      【解决方案2】:

      实体框架我没有专门用过,你就不能这样组合吗?

      public List<Keyword> GetFromMedia(int mediaID)
      {
          return (from m in Connection.Data.Media
                     from k in m.Media_Keyword
                     where m.id == mediaID
                     select new Keyword {ID = k.Keywords.id, Name = k.Keywords.keyword}).ToList();
      }
      

      【讨论】:

        【解决方案3】:

        对 Kleinux 的回复(不知道为什么我不能对您的问题添加评论)

        当然可以,但这不一定是好事,因为上下文会为您提供一个新的“关键字”。然后,如果您尝试更新此内容或认为您将更新的内容,上下文会将其视为新关键字,并会创建一个新关键字而不是更新它。

        ** 更新 对不起我的英语,我是法国人,不是法国人,而是来自魁北克。我要付出我的 110%!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-20
          相关资源
          最近更新 更多