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个回答

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

yu540135101
张雨明 这个测试可以用,而且仅仅只要这一行就够了,厉害。
接近 4 年之前 回复

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

yu540135101
张雨明 不行啊,这个我试了下,每次都会取最小的数据。。我要的是随机取。。
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问