[C#]linq 联接查询得到第二个表的单个记录

标签: Linq SQLServer C#
发布时间: 2017/2/27 4:52:24
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我使用 linq 联接两个表中获取数据。但我第二个表中有对应于第一个表的多个记录。我想只有第一条记录从第二个表。

Table student
id     name 
1      a1
2      b1

Table images
id   image         studentId
1    1.jpg            1
2    2.jpg            1
3    3.jpg            2
4    4.jpg            2


Result should be 

id  name image
1   a1   1.jpg
2   b1   3.jpg  

我用下面的代码。和其返回四个记录。

 public IEnumerable<StudentBean> getStudent()
        {
             return (from p in context.student
                     join r in context.images
                      on p.id equals r.studentId


                     select new StudentBean
                    {id=p.id,
                     name =p.name,
                     image=r.image
                    }).ToList<StudentBean>();
        }

解决方法 1:

...
join r in context.images
on p.id equals r.studentId into imgs
from r in imgs.Take(1)
...
赞助商