Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何继续使用LINQ查询_C#_Sql Server_Asp.net Mvc_Entity Framework_Linq - Fatal编程技术网

C# 如何继续使用LINQ查询

C# 如何继续使用LINQ查询,c#,sql-server,asp.net-mvc,entity-framework,linq,C#,Sql Server,Asp.net Mvc,Entity Framework,Linq,我有一个linq查询: var list = (from x in db.students where x.name== student_name select new { x.date, x.Student_id

我有一个linq查询:

var list = (from x in db.students
                        where x.name== student_name 
                        select new
                        {
                            x.date,
                            x.Student_id
                        }
我现在还不想执行
.toList()
查询,我想在稍后阶段选择学生的更多属性,例如:

x.student_age 
x.student_name
在稍后的阶段

例如,添加到var列表:

    var list = (from x in db.students
                        where x.name== student_name 
                        select new
                        {
                            x.date,
                            x.Student_id
                            x.student_age 
                            x.student_name
                        }.toList();

我该怎么做呢

您以错误的方式处理问题。如果不知道要选择对象的哪些属性,为什么要选择子集

var list = (from x in db.students
            where x.name== student_name 
            select x); 
此时,您尚未实现查询。它仍然是一个
IQueryable
。 现在,当您知道需要哪些属性时,仍然可以选择匿名对象,或者最好选择ViewModel类:

list = list.Select(x => new StudentViewModel {
    Id = x.Id,
    Name = x.Name,
    /* ....*/
});
如果要使用匿名对象,只需执行以下操作:

list = list.Select(x => new {
    Id = x.Id,
    Name = x.Name,
    /* ....*/
});

现在,当您调用
list.ToList()
时,它被具体化并执行查询。您的
IQueryable
成为
IEnumerable

如果您的查询仍然是延迟查询,我认为您可以在稍后阶段执行select查询

var list = from x in db.students
           where x.name == student_name 
然后在下一阶段:

var list1 = from x in list
            select new
            {
                x.date,
                x.student_id
                x.student_age 
                x.student_name
            }

无法理解你的问题。请将其重新表述以便于理解。您应该定义希望在稍后阶段选择更多的内容。
。toList()
将显示所有字段。你想要选择你想要的字段吗?更多什么?一个学生的更多属性还是更多学生的更多属性?@Marco一个学生的更多属性美丽,我将测试这个,非常感谢!不要忘记声明ViewModel类,否则您将遇到另一个编译时错误;)这将无法编译。查询语法要求您有一个select语句。很抱歉,我弄错了,您可以在第一个查询中添加select x。