本帖最后由 fer_ba 于 2013-01-08 10:56:12 编辑

解决方案 »

  1.   

    这是因为LINQ的延迟查询特性,
    当招待到foreach代码里时,才会去招待查询,此时 aa才会有值
           
      var aa = t2.Where(o => o.Uid.HasValue);//Uid是long?类型
                     foreach (DBModel.Models.Coupon a in aa)
                     {
                        
                        }
      

  2.   

    才会去招待查询 ==> 才会去执行查询
    Try:var aa = t2.Where(o => !Nullable<long>.Equals(o.Uid,null)).ToList();
      

  3.   

    关于NULL查询,可参考我的另外一篇文章:
    http://bbs.csdn.net/topics/380220328
      

  4.   

    才会去招待查询 ==> 才会去执行查询
    Try:var aa = t2.Where(o => !Nullable<long>.Equals(o.Uid,null)).ToList();改成如下:  var aa = t2.Where(o => !Nullable<long>.Equals(o.Uid, null)).ToList(); ;//现在是这行出错
                    foreach (DBModel.Models.Coupon a in aa)
                    {
                        Response.Write(a.AddDate);
                    }
      

  5.   

    错误也一样System.MissingMethodException: Method not found: 'System.Nullable`1 DBModel.Models.Coupon.get_Uid()'. at WebMvc.Areas.Manager.Controllers.CouponController.b__7(Coupon o) at System.Linq.Enumerable.WhereListIterator`1.MoveNext() at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at WebMvc.Areas.Manager.Controllers.CouponController.Index(Nullable`1 qAmount, Nullable`1 qStatus, Nullable`1 qExpirationTime, Nullable`1 page) in g:\Project\xxxx\xxxxx\Areas\Manager\Controllers\CouponController.cs:line 52