如何将Linq(EF)级联查询的结果转换为泛型集合类型

寂寞沙洲 2014-08-20 05:10:21
var contacts = from c in db.Contact
join p in db.ContactGroup
on c.GroupId equals p.Id
select new
{
c.Id,
c.Name,
c.Phone,
c.Email,
c.GroupId,
p.GroupName
};

如何将contacts转换为泛型集合: IEnumerable<MVCLearning.Models.ContactViewModel>或List<ContactViewModel> 。
下面的方法不行:
IEnumerable<ContactViewModel> models=contacts.Cast<ContactViewModel>();
下面的代码也不行:
IEnumerable<ContactViewModel> models= contacts.ToList<ContactViewModel>();
...全文
238 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
寂寞沙洲 2014-08-20
  • 打赏
  • 举报
回复
var contacts = from c in db.Contact join p in db.ContactGroup on c.GroupId equals p.Id select new ContactViewModel { c.Id, c.Name, c.Phone, c.Email, c.GroupId, p.GroupName }; 这样写报错; ---------------------------- List<ContactViewModel> models= contacts.Select(x => new ContactViewModel() { xx = x.xx, yy = x.yy, ... })ToList(); 可以!! 谢谢! 看看大家是否还有其他方法,一会给分!
threenewbee 2014-08-20
  • 打赏
  • 举报
回复
List<ContactViewModel> models= contacts.Select(x => new ContactViewModel() { xx = x.xx, yy = x.yy, ... })ToList();
q107770540 2014-08-20
  • 打赏
  • 举报
回复
你的问题在于 查询时用了匿名类,在ToList()转化时当然出错了
q107770540 2014-08-20
  • 打赏
  • 举报
回复
var contacts = from c in db.Contact join p in db.ContactGroup on c.GroupId equals p.Id select new ContactViewModel { c.Id, c.Name, c.Phone, c.Email, c.GroupId, p.GroupName };

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧