我有一个简单的多对多关系,我想知道如何从中获取数据。这是设置
媒体 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();
}
有没有办法更好地做到这一点?
答案 0 :(得分:2)
通常,我从多对多地图中选择。
var keys = from k in Connection.Data.Media_Keyword
where k.MediaID == mediaID
select k.Keywords;
答案 1 :(得分: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();
}
答案 2 :(得分:0)
对Kleinux的回应(不知道为什么我不能对你的问题添加评论)
当然可以,但这并不是一件好事,因为上下文会给你一个新的“关键词”。然后,如果您尝试更新此内容或认为您将更新的内容,则上下文会将其视为新关键字并创建一个新关键字而不是更新它。
**更新 对不起我的英语,我是法国人,不是法国人,而是来自魁北克省。我给了我110%!!