我正在使用LINQ to SQL进行数据库操作。基本上我写了一个返回学生类型的选择查询。学生类型中的一列是标记列表。
我可以构建没有标记的匿名学生类型,如下所示:
var studentList = from student in context.Student
from marks in context.Marks.Where(m => m.studentId = studentId)
select new
{
RollNo = student.RollNo,
Name = student.Name,
PhoneNo = student.PhoneNo
};
LINQ to SQL是否有可能在我的新匿名类型中创建匿名类型列表(本例中为标记)?
答案 0 :(得分:1)
选择所有带标记的学生我认为你会想要使用连接。 编辑:糟糕,您可能只想要每位学生一条记录。我添加了一个分组。
var studentList = from student in context.Student
join marks in Context.Marks
on student.studentId equals marks.studentId
group by student
into g
select new
{
RollNo = g.Key.RollNo,
Name = g.Key.Name,
PhoneNo = g.Key.PhoneNo,
Marks = g.marks
};
答案 1 :(得分:0)
如果StudentId
表上的Marks
是外键(如果不是,为什么不呢?),您应该能够做到:
var studentList = (from student in context.Student
select new
{
student.RollNo, // no need to explicitly name the properties if they're the same name as the property you're selecting
student.Name,
student.PhoneNo,
student.Marks // LINQ to SQL will do the join automagically
}).ToList();
我还假设你真的需要List<T>
- 来获得一个你需要致电.ToList()
的人。
答案 2 :(得分:0)
var studentList = (from student in context.Student
select new
{
RollNo = student.RollNo,
Name = student.Name,
PhoneNo = student.PhoneNo,
Marks = context.Marks.Where(m => m.studentId = student.studentId)
}).ToList();