解决方案 »

  1.   

     CreateTime = c.CreateTime
      

  2.   

    编译时没有报错 ,是执行的时候报错。也就是说WaitAuditEntity这个实体中的CreateTime是string类型的,我现在要把linq查询出来的结果中的Datetime类型转换成string类型
      

  3.   

    var query = (from a in context.Users
                               from b in context.Companies
                               from c in context.Accounts
                               where a.Id == c.CreateUser && c.CompanyId == b.Id && c.AllPassState == false
                             select new WaitAuditEntity
                               {
                                  a,b,c                       
                               }).ToList().select(x=>new{
                               //这里写一次
                               });
      

  4.   

    这样是可以,但是仅仅因为转换一个字段的数据类型就这样做是不是很浪费资源?因为基本上每一个查询方法都会有这种转换情况。我把这里的时间转换成string类型主要是想把数据序列化成json格式时在界面上好处理一点,不然Datetime类型的数据在json中会变成一串数字而不是时间格式。还有其他方法吗?谢谢
      

  5.   


    EF其实就是解析Expression。。生成SQL。。问题SQL不会如何把datetime转string。。所以你应该先Tolist。。把结果加载到内存当中,再用linq to object的select去转下
      

  6.   

                              var query = from a in context.Users
                               from b in context.Companies
                               from c in context.Accounts
                               let _CreateTime c.CreateTime.ToString(), _UpdateTime = c.UpdateTime.ToString()
                               where a.Id == c.CreateUser && c.CompanyId == b.Id && c.AllPassState == false
                             select new WaitAuditEntity
                               {
                                   Id = c.Id,
                                   AccountName = c.AccountName,
                                   ContactName = c.ContactName,
                                   CompanyName = b.CompanyName,
                                   OpenCompany = a.BelongsCompany,
                                   Mobile = c.Mobile,
                                   AccountState = c.AccountState,
                                   PaymentState = c.PaymentState,
                                   ReviewState = c.ReviewState,
                                   EstablishState = c.EstablishState,
                                   AllPassState = c.AllPassState,
                                   CreateTime = _CreateTime ,
                                   UpdateTime = _UpdateTime ,

                                   CreateUserName = a.Name                              
                               };
      

  7.   

    没有在sql语句转
    在界面层转就可以了
      

  8.   


    EF其实就是解析Expression。。生成SQL。。问题SQL不会如何把datetime转string。。所以你应该先Tolist。。把结果加载到内存当中,再用linq to object的select去转下
    嗯,稍稍改了一下: let _CreateTime c.CreateTime.ToString() let _UpdateTime = c.UpdateTime.ToString()
    这样就可以了。谢谢各位