LINQ 客户端新增自增列如何做?

兔子家族-二哥 2017-10-09 12:37:32
网上得方法 两种都试过:
var query=list.Select((x,i)=>new {序号=i++,x.产品号 ,x.零件号}); 本身就报错,改成:
var query=list.Select((x,i)=>new {序号=i+1,x.产品号 ,x.零件号}); 运行时报错不能不支持用于查询运算符“Select”的重载。
var newList = list.AsEnumerable().Select((x, i) => new { x.dTaskEndTime, orderNo = i + 1 });无法将XX类型 转换为 SQL 并且无法将它视为局部表达式。

list 代码:
var list = (from a in LinqDBContext.UerCheckList
select new
{
a.dTaskStartTime,
a.dTaskEndTime,
a.orgid,
OrgManagerId=string.IsNullOrEmpty(a.OrgManagerId)?"":a.OrgManagerId,
OrgUserId = string.IsNullOrEmpty(a.OrgUserId) ? "" : a.OrgUserId,
Remarks = string.IsNullOrEmpty(a.Remarks) ? "" : a.Remarks,
a.SubmitStatet,
a.SubmitTime,
a.UserCheckId,
a.UserCheckTime,
State = a.dTaskEndTime < DateTime.Now ? "逾期" : (from c in LinqDBContext.UserCheckContent where c.orgid == a.orgid select c.ProjectId).ToList().Count == (from d in LinqDBContext.UserCheckInfo where d.UserCheckId == a.UserCheckId select d).ToList().Count ? "已完成" : ((from e in LinqDBContext.UserCheckInfo where e.UserCheckId == a.UserCheckId select e).ToList().Count == 0 ? "未完成" : "完成中"),
SiteInfo = LinqDBContext.site.Where(x => x.orgid == a.orgid).Select(x => new { x.siteid, x.sitename })
});
...全文
1407 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
打老虎zz 2017-10-12
  • 打赏
  • 举报
回复
引用 5 楼 God_Girl 的回复:
[quote=引用 4 楼 woainixinxin521 的回复:] 写的好长 看的有点晕 看了半天没看明白只说前面三句了 var query=list.Select((x,i)=>new {序号=i++,x.产品号 ,x.零件号}); var query=list.Select((x,i)=>new {序号=i+1,x.产品号 ,x.零件号}); 看IQueryable下的Select方法 和IEnumerable 下面的Select方法参数的区别 var newList = list.AsEnumerable().Select((x, i) => new { x.dTaskEndTime, orderNo = i + 1 });这个报错 在AsEnumerable之前的代码里
var listHis = from b in LinqDBContext.site from c in LinqDBContext.GatewaySystemInfo from d in LinqDBContext.alarmdata where c.siteid == b.siteid && b.orgid==orgid && d.Gatewayaddress == c.Gatewayaddress select d; 大哥 求解 我这换成SQL可以查很多条出来 但是 这样用LINQ 就只有一条 为什么啊?????[/quote] 你确定你是在查看linq生成的sql运行在数据库执行查询的?如果是应该不会存在这样的问题 如果不是的话 看之后有什么操作
  • 打赏
  • 举报
回复
引用 4 楼 woainixinxin521 的回复:
写的好长 看的有点晕 看了半天没看明白只说前面三句了 var query=list.Select((x,i)=>new {序号=i++,x.产品号 ,x.零件号}); var query=list.Select((x,i)=>new {序号=i+1,x.产品号 ,x.零件号}); 看IQueryable下的Select方法 和IEnumerable 下面的Select方法参数的区别 var newList = list.AsEnumerable().Select((x, i) => new { x.dTaskEndTime, orderNo = i + 1 });这个报错 在AsEnumerable之前的代码里
var listHis = from b in LinqDBContext.site from c in LinqDBContext.GatewaySystemInfo from d in LinqDBContext.alarmdata where c.siteid == b.siteid && b.orgid==orgid && d.Gatewayaddress == c.Gatewayaddress select d; 大哥 求解 我这换成SQL可以查很多条出来 但是 这样用LINQ 就只有一条 为什么啊?????
打老虎zz 2017-10-09
  • 打赏
  • 举报
回复
写的好长 看的有点晕 看了半天没看明白只说前面三句了 var query=list.Select((x,i)=>new {序号=i++,x.产品号 ,x.零件号}); var query=list.Select((x,i)=>new {序号=i+1,x.产品号 ,x.零件号}); 看IQueryable下的Select方法 和IEnumerable 下面的Select方法参数的区别 var newList = list.AsEnumerable().Select((x, i) => new { x.dTaskEndTime, orderNo = i + 1 });这个报错 在AsEnumerable之前的代码里
打老虎zz 2017-10-09
  • 打赏
  • 举报
回复
  static List<string> s = new List<string>() { "东", "南", "西", "北" };
        static void Main(string[] args)
        {
            var Queryable = s.AsQueryable();
            var Data = s.AsEnumerable().
                Zip(Enumerable.Range(1, s.Count), (j, i) => new { Str = j, RowNum = i, }).ToList();
            Console.ReadLine();

        }
打老虎zz 2017-10-09
  • 打赏
  • 举报
回复
用ZIP 合并
  • 打赏
  • 举报
回复
卧槽 这是为什么??????我直接加tolist 报错无法转换 我还必须再查询一次 , 子查询得原因??? var q = (from x in list select new { x.dTaskEndTime, x.dTaskStartTime, x.orgid, x.OrgManagerId, x.OrgUserId, x.Remarks, x.SiteInfo, x.State, x.SubmitStatet, x.SubmitTime, x.UserCheckId, x.UserCheckTime }).OrderBy(x=>x.dTaskEndTime).ToList(); List<dynamic> ls = new List<dynamic>(); int number = 0; foreach (var x in q) { number = number + 1; var c = new { x.dTaskEndTime, x.dTaskStartTime, x.orgid, x.OrgManagerId, x.OrgUserId, x.Remarks, x.SiteInfo, x.State, x.SubmitStatet, x.SubmitTime, x.UserCheckId, x.UserCheckTime, orderNo = number }; ls.Add(c); } 此法可行

8,497

社区成员

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

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