var Sele = (from gb in DB.Table01
                    group gb by new { gb.单位名称, gb.报表月份 } into G
                    orderby  G.Key.报表月份
                    where G.Key.所属编码.Contains(Page.User.Identity.Name)
                    select new
                    {
                        DetailsItem = G,
                        UNit = G.Key.单位名称,
                        DAte = G.Key.报表月份,
                    }).Skip(1).Take(20);
        DataList1.DataSource = Sele;
        DataList1.DataBind();//Table01 表的主键是ID出现以下问题!此提供程序只支持对返回实体或投影(包含所有标识列)的有序查询使用 Skip(),这种查询为单表(非联接)查询,或者为 Distinct、Except、Intersect 或 Union (非 Concat)操作。
请教高人怎么解决 急!!!!!!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    var Sele = (from gb in DB.Table01 
                        group gb by new { gb.单位名称, gb.报表月份,gb.所属编码 } into G 
                        orderby  G.Key.报表月份 
                        where G.Key.所属编码.Contains(Page.User.Identity.Name) 
                        select new 
                        { 
                            DetailsItem = G, 
                            UNit = G.Key.单位名称, 
                            DAte = G.Key.报表月份, 
                        }).Skip(1).Take(20); 
            DataList1.DataSource = Sele; 
            DataList1.DataBind(); //Table01 表的主键是ID 出现以下问题! 此提供程序只支持对返回实体或投影(包含所有标识列)的有序查询使用 Skip(),这种查询为单表(非联接)查询,或者为 Distinct、Except、Intersect 或 Union (非 Concat)操作。 
    请教高人怎么解决 急!!!!!!!!!!!!!!!!!!!!!!!!!!!
      

  2.   

    这里的的说明不是已经指出需要在select返回的元素中包含 Table01的主键字段么?
      

  3.   

    var Sele = (from gb in DB.Table01 
                        group gb by new { gb.单位名称, gb.报表月份,gb.所属编码 } into G 
                        orderby  G.Key.报表月份 
                        where G.Key.所属编码.Contains(Page.User.Identity.Name) 
                        select new 
                        { 
                            DetailsItem = G, 
                            UNit = G.Key.单位名称, 
                            DAte = G.Key.报表月份, 
                        })                         //.Skip(1).Take(20); 
            DataList1.DataSource = Sele; 
            DataList1.DataBind(); 我怎样对它进行分页呀 !!!!!!!!请教高人 !
      

  4.   

    http://www.cnblogs.com/9527/archive/2007/07/05/807451.htmlhttp://www.cnblogs.com/yzlhccdec/archive/2008/03/06/1093750.htmlhttp://tech.it168.com/msoft/2008-01-17/200801171848835.shtml上面文章都是有关LINQ分页的
      

  5.   

    后来在linq模型上设置了个“假主键”忽悠过去了. ??这是1个人的解决方案 但没细节!
    谁能说的具体点!
      

  6.   

    你必须的把主键写入SELECT 即使你不对他进行操作因为ling内部生成的SQL代码需要主键排序你先写上测试一下?