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)

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

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