linq语句—类型转换

前因

使用linq语句在数据库中查询一段时间内的信息。将表中的数据给实体,尴尬的是表中date这个字段是string类型,需要转换。

代码

listStartTime = (from u in dbcontext.t_user
                             join a in dbcontext.t_addmcoinrecord on u.userID equals a.userID
                             join g in dbcontext.t_department on u.departmentID equals g.departmentID

                             where (start <= Convert.ToDateTime(a.date) && Convert.ToDateTime(a.date) <= end)
                             where (g.departmentName == userGrade)
                             select new stageModel()
                             {
                                 pai = 0,
                                 dayMcoin = a.addMcoin,
                                 userID = a.userID,
                                 userName = u.userName,
                                 userGrade = g.departmentName,
                                 startTime = startTime,
                                 endTime = endTime,
                                 StageConfluence = "",
                             }).ToList();

运行走起——>报错:不识别方法

这里写图片描述

那这怎么转换呢?

最好的方式就是不在linq与里边转化哈,先按着其他条件,没有时间的条件查出来信息给实体。然后再对实体的字段转换类型进行时间的筛选。

代码

listStartTime = (from u in dbcontext.t_user
                             join a in dbcontext.t_addmcoinrecord on u.userID equals a.userID
                             join g in dbcontext.t_department on u.departmentID equals g.departmentID


                             where (g.departmentName == userGrade)
                             select new stageModel()
                             {
                                 pai = 0,
                                 dayMcoin = a.addMcoin,
                                 userID = a.userID,
                                 userName = u.userName,
                                 userGrade = g.departmentName,
                                 startTime = startTime,
                                 endTime = endTime,
                                 date =a.date ,
                                 StageConfluence = "",
                             }).ToList();

            for (int i = 0,j=0; i < listStartTime.Count; i++)
            {

                if (start <= Convert.ToDateTime( listStartTime[i].date) && Convert.ToDateTime( listStartTime[i].date) <= end )
                {                    
                    listTest.Add(listStartTime[i]);

                        listTest[j].Mcoin = Convert.ToDecimal(listTest[j].dayMcoin);
                        j++;
                }
            }

说点啥:遇到问题没有很快的想出解决方案,还是我的套路还是没有用好。套路要用到问题还没有出来我们就会知道解决方案了。。。

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值