linq语句的一个小问题。
C# code
StudentDataContext sdc = new StudentDataContext();
public List<STUDENT> GetList()
{
var q = from s in sdc.STUDENT select s;
return q.ToList<STUDENT>();
}
用上面的方法会把student表中的所有字段都查出来,即 select * from Student
现在如果要求只查姓名和性别,即select sname,ssex from student
linq语句要如何写?
如果写成from s in sdc.STUDENT select new {s.sname,s.ssex};
那么q.ToList<STUDENT>();就不能编译,返回值为List<STUDENT>类型总不会错,应该怎么办?
错误:System.Linq.IQueryable<AnonymousType#1>”不包含“ToList”的定义,并且最佳扩展方法重载“System.Linq.Enumerable.ToList<TSource>(System.Collections.Generic.IEnumerable<TSource>)”的某些参数无效
------解决方案--------------------
楼主的目的是取出指定的字段,那么最好不要使用ToList<T> ,而是通过显示的声明来实现读取
例如:
C# code
StudentDataContext sdc = new StudentDataContext();
public List<STUDENT> GetList()
{
var q = from s in sdc.STUDENT select new STUDENT{Sex = s.Sex,Name = s.Name};
return q.ToList();
}