张雨zy
2016-05-24 12:58
采纳率: 100%
浏览 1.7k
已采纳

LINQ根据id查询数据,但数据id是不连续的,如何先判断该id的数据项是否存在

        Random rnd = new Random();
        //获取最大的id
        DataClasses1DataContext db = new DataClasses1DataContext();
        var q = db.Table1.Max(p => p.id);
        int number = rnd.Next(1, q); //根据随机的id加载
        var x = db.Table1.Single(m => m.id == number);

                    //这里的number如果随机到了不存在的id项。则会报错,如何避免。
                    //例如下面的数据中,id为8不存在。但是如果随机到了8,就会出错。如何让不出错。或者说,如何先判断下该id的数据项是否存在。
                    ![图片说明](https://img-ask.csdn.net/upload/201605/24/1464095980_964609.jpg)
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2016-05-24 13:21
    已采纳

    var x = db.Table1.AsEnumerable().OrderBy(x => Guid.NewGuid()).First();

    已采纳该答案
    打赏 评论
  • threenewbee 2016-05-24 13:12

    int number = rnd.Next(1, q - 1); //根据随机的id加载
    var x = db.Table1.Where(m => m.id <= number).OrderBy(x => x.id).First(); //取比number相等或大的最小的记录

    打赏 评论

相关推荐 更多相似问题