简体   繁体   English

随机选择不起作用

[英]randomize Select do not work

I wrote a code that's going to accidentally bring back row of data 我写了一段会意外带回数据行的代码

I want to 5 row chosen randomly but do not work and return value 我想随机选择5行,但不起作用并返回值

Everything was true, but the part that is related to the random return just do not work anymore 一切都是正确的,但是与随机收益相关的部分不再起作用

public List<tblInvoice> Admin_GetRowsSendProduct(string StartDate, string EndDate, int status = -1, bool Randomize = false)
{
    LtSProductDataContext db = new LtSProductDataContext(BLLBase.BLLBase.ConnectionString);
    IQueryable<tblInvoice> xxx = db.tblInvoices.Where(p => p.status == true);
    DateTime _StartDate = DateTime.MinValue;
    DateTime _EndDate = DateTime.MinValue;
    if (xConvertor.ToString(StartDate) == "" || xConvertor.ToString(EndDate) == "")
    {
        if (string.IsNullOrEmpty(StartDate) == false)
            _StartDate = BLLBase.xDateTime.DateXorshid2DateMiladi(StartDate.ToString());
        if (string.IsNullOrEmpty(EndDate) == false)
        {
            _EndDate = BLLBase.xDateTime.DateXorshid2DateMiladi(EndDate.ToString());
            if (_StartDate == _EndDate) { _EndDate = _StartDate.AddDays(1); }
        }
        xxx = xxx.Where(p =>
        (p.status == true) &&
                        (_StartDate == DateTime.MinValue || p.Date >= _StartDate) && (_EndDate == DateTime.MinValue || p.Date <= _EndDate));
    }
    else if (xConvertor.ToString(StartDate) != "" && xConvertor.ToString(EndDate) != "")
    {
        _StartDate = BLLBase.xDateTime.DateXorshid2DateMiladi(StartDate.ToString());
        _EndDate = BLLBase.xDateTime.DateXorshid2DateMiladi(EndDate.ToString());

        xxx = xxx.Where(p => p.Date <= _EndDate && p.Date >= _StartDate && p.status == true && p.SendStatus == status);
    }

    xxx = xxx.Where(p => (status == -1 || p.SendStatus == status) && p.status == true).OrderByDescending(p => p.Date);



    if (Randomize)
    {
        Random rnd = new Random();
        xxx = xxx.OrderBy(x => rnd.Next());
        //xxx = xxx.OrderBy(o => Guid.NewGuid());
        xxx = xxx.Take(3);
        return xxx.Where(p => (p.isPostalPayment == null || p.isPostalPayment == false)).ToList();
    }
    else
    {
        return xxx.Where(p => (p.isPostalPayment == null || p.isPostalPayment == false)).ToList();
    }
    //return xxx.Where(p => p.PaymentType != 4).ToList();
}

do not work this section: 不执行此部分:

xxx = xxx.OrderBy(x => rnd.Next()); 

or 要么

xxx = xxx.OrderBy(o => Guid.NewGuid());
if (Randomize)
{
    List<tblInvoice> _Result = db.tblInvoices.ToList();

    var _Temp = xxx.Where(p => (p.isPostalPayment == null || p.isPostalPayment == false)).ToList();
    _Result = _Temp.OrderBy(o => Guid.NewGuid()).Take(5).ToList();
    return _Result;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM