【发布时间】:2015-05-20 07:06:33
【问题描述】:
我正在做我的功课——使用实体框架制作一个 web api 2 项目。
这是我的表格布局,在 Singer 和 Genre 表格之间具有 m-2-m 关系。
My Genre 是一个表格,我用它来按字母表获取我的歌手列表(因此 Genre 表格从 (ID: 1, Name: "A") 到 (ID: 26, Name: "Z")获取数据
现在我想让所有歌手都以“H”开头 (id=8)
public IQueryable<Singer> GetByGenre(int id)
{
return db.Singers.Where(s => s.Genres.Any(g => g.ID == id));
}
使用此查询:
http://localhost:6798/api/Singers/GetByGenre?id=8
但结果很奇怪 - 只显示第一个结果,而其他结果返回 "ref" ?我通过创建一个“假”列表来检查
var list = db.Singers.Where(s => s.Genres.Any(g => g.ID == id)).ToList();
并对其进行调试,它返回正确的 3 Singers ?
--
如您所见,我还有其他表(歌曲、播放列表、视频)有一个 FK 指向我的 Singer 的 ID,所以我怎样才能只返回 Singer 表的列(ID、NAME、IMAGE)而不返回所有其他关系数据(播放列表、歌曲、视频...)?
【问题讨论】:
标签: c# entity-framework