0

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

Media 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();
    }

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

4

3 回答 3

2

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

var keys = from k in Connection.Data.Media_Keyword
       where k.MediaID == mediaID
       select k.Keywords;
于 2009-07-25T15:35:37.797 回答
0

我没有专门使用实体框架,但你不能像这样组合它们吗?

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();
}
于 2009-07-25T15:36:42.957 回答
0

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

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

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

于 2009-08-12T18:03:17.040 回答