linq语句的一个小疑点
linq语句的一个小问题。C# codeStudentDataContext sdc new StudentDataContext()public ListSTUDENT
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# codeStudentDataContext 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(); }