C# LINQ 查询容易犯的错误

关于 无法将类型“System.Linq.IQueryable<AnonymousType#1>”隐式转换为“System.Collections.Generic.List<Service.NewRecord>”。存在一个显式转换(是否缺少强制转换?)   的问题

 

 1 public List<NewRecord> showRecords()
 2         {
 3             var q = from record in sport.Record
 4                     join user in sport.User on record.userid equals user.Id
 5                     join goods in sport.Goods on record.goodid equals goods.Id
 6                     select new
 7                     {
 8                         goodid = record.goodid,
 9                         //....
10                     };
11             return q.ToList();
12         }

 

 1 public List<NewRecord> showRecords()
 2         {
 3             var q = from record in sport.Record
 4                     join user in sport.User on record.userid equals user.Id
 5                     join goods in sport.Goods on record.goodid equals goods.Id
 6                     select new NewRecord
 7                     {
 8                         goodid = record.goodid,
 9                         //....14                     };
15             return q.ToList();
16         }

第一段代码 select new 后面没有定义创建的类型NewRecord编译器是直接报错,开始在网上看了很多类似的情况一直没有找到正确的解决方法,所以贴出来好让跟我犯了同样错误的人省点时间,后面自己试了挺多次才发现这种方法,这里面具体原因不是很懂,希望有大神在评论里指导啊(*^__^*),第二段代码就成功运行。

 

第一次发博客,有点水,编辑器第一次用感觉好爽。

posted @ 2015-12-13 20:51  huangpengan  阅读(705)  评论(0)    收藏  举报