.NET EF 使用匿名类 怎么返回一个集合 tolist

2019-01-02 22:34发布

   var resultt = from c in ent.Student where c.Name.Contains("") select new { c.Name, c.Sex, c.StudentId };
              
    var  data = ent.Student.Select(p => new { p.Name, p.E_mail, p.ClassId }).Where(p => p.Name.Contains(""));

怎么用这样:
List<Student>resultt =( from c in ent.Student where c.Name.Contains("") select new { c.Name, c.Sex, c.StudentId }).ToList();
              
List<Student>data = ent.Student.Select(p => new { p.Name, p.E_mail, p.ClassId }).Where(p => p.Name.Contains("")).ToList();
但是用了匿名类报错

2条回答
我想做一个坏孩纸
2楼-- · 2019-01-02 23:18

ent.Student.Where(p => p.Name.Contains("王")).Select(p => new Student{ Name=p.Name, E_mail=p.E_mail, ClassId =p.ClassId }).ToList();

匿名类.当然要用var接.你要输出List<Student>data 那就不要用匿名类.

简单来说.你要清楚你想要什么.然后去想怎么做.不要搞错顺序.先写完.然后问为什么不是你想的那样.因为你做的时候就没想过要的东西是什么样.

查看更多
\"骚年 ilove
3楼-- · 2019-01-02 23:23

这个错误简单的说,就是你不能把一只动物(匿名动物)硬变成一匹马。

可行的方法是

var data = ent.Student.Select(p => new { p.Name, p.E_mail, p.ClassId }).Where(p => p.Name.Contains("")).ToList();

var newList= new List<Student>();

foreach(var item in data)
{
 newList.Add(new Student { Name=item.Name, E_mail=item.E_mail, ClassId=item.ClassId });
}

随便乱写的,不保证编译通过,你当作伪代码看好了。

查看更多
登录 后发表回答