EF的查询结果怎么转换成自定义类型?

edonglu 2017-04-25 11:20:13
MVC,LINQ,EF都是第一次用,完全是瞎搞,请各位赐教
代码如下:
public IQueryable<T> GetMember(Guid ID)
{
return (from m in dbContext.Set<Membership>()
where m.ID == ID
select new
{
MembershipID = m.ID,
Name = m.Name,
NickName = m.NickName,
Phone = m.Phone,
Sex = m.Sex,
Birthday = m.Birthday

}).Cast<T>();
}
====================================
T是我自定义的类型,结构和查询结果是一样的,报错信息如下:
Unable to cast object of type 'System.Data.Entity.Infrastructure.DbQuery`1[<>f__AnonymousType0`6[System.Guid,System.String,System.String,System.String,System.Nullable`1[System.Int32],System.Nullable`1[System.DateTime]]]' to type 'System.Linq.IQueryable`1[XCRM.Interface.Models.MembercenterResult]'."}

...全文
1292 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2017-05-27
  • 打赏
  • 举报
回复
Cast是不行的,你需要的是Emitmapper
zhiming99 2017-05-27
  • 打赏
  • 举报
回复
public IQueryable<T> GetMember(Guid ID) { return (from m in dbContext.Set<Membership>() where m.ID == ID select new T { MembershipID = m.ID, Name = m.Name, NickName = m.NickName, Phone = m.Phone, Sex = m.Sex, Birthday = m.Birthday }).Cast<T>(); }
qq_15148111 2017-05-27
  • 打赏
  • 举报
回复
试着加枚举,比如var query = (from a in db.PORT_EMP join v in db.PORT_DEPT on a.DEPTID equals v.DEPTID select new {a, v}).AsEnumerable().Select(item => new { s=Convert.ToInt32(item.a.LOGSTATUS), });
exception92 2017-04-26
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
AsEnumerable() 一下。
应该是AsQueryable() 一下。
exception92 2017-04-26
  • 打赏
  • 举报
回复
AsEnumerable() 一下。
tangqiaojie 2017-04-26
  • 打赏
  • 举报
回复
主要是匿名类型默认是转不了其他类型,试试这样:

public IQueryable<dynamic> GetMember(Guid ID)
{
    return (from m in dbContext.Set<Membership>()
            where m.ID == ID
            select new
            {
                MembershipID = m.ID,
                Name = m.Name,
                NickName = m.NickName,
                Phone = m.Phone,
                Sex = m.Sex,
                Birthday = m.Birthday

            });
}

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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