我正在学习使用LINQ,EF等。我有2个自动生成的edmx类course
和student
。我编写了一个代码来访问course id
和course name
。对于数据,我还想分别获取已注册课程的students names
的数据。以下是我的代码。
testEntities1 t = new testEntities1();
var u = (from g in t.courses
select new
{
g.C_Id,
g.C_Name,
dd = g.student.Select(r=>r.S_Name)
}).ToList();
现在如何使用/获取我选择的属性dd
中的数据,其中包含已注册课程的所有学生姓名。我可以将数据放入变量u
。我只是不知道如何继续并从dd
中获取数据。请帮忙。以下是获取course id
和course name
数据的行。如何获取学生姓名的数据。
List<course> ui = u.Select(d => new course() { C_Name = d.C_Name, C_Id = d.C_Id }).ToList();
答案 0 :(得分:0)
首先,无需先将数据提取到anonymous
类型,然后将其添加到自定义类型course
,您可以直接执行此操作,如下所述。现在,既然你没有提到course
的类型,我正在考虑跟随两个可能性: -
案例1:如果public List<string> Students_Enrolled { get; set; }
中的学生姓名为course
,即您想要提取已注册学生的列表,那么: -
List<course> u = (from g in t.courses
select new course
{
C_ID = g.C_Id,
C_Name = g.C_Name,
Students_Enrolled = g.student.Select(r => r.S_Name).ToList()
}).ToList();
案例2 :如果您的学生姓名为public string Students_Enrolled { get; set; }
,即如果您要获取以逗号分隔的学生姓名,则可以执行以下操作: -
List<course> u = (from g in t.courses
select new course
{
C_ID = g.C_Id,
C_Name = g.C_Name,
Students_Enrolled = String.Join(",",g.student.Select(r => r.S_Name))
}).ToList();