LINQ的综合运用

本文介绍了一个使用LINQ进行复杂数据查询和排序的例子,包括如何根据产品功能和包装筛选供应商信息,并根据不同排序方式进行结果排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


        var v = from pro in f.Product
                from sup in f.SupplyInfo
                from com in f.Company               
                where pro.UID == sup.ProductUID
                && com.UID == sup.CompanyUID
                && pro.FunctionUID.ToString().IndexOf(lstFunction.SelectedValue.Trim()) >= 0 //等同于 like '%XXX%'
                && pro.PackageUID.ToString().IndexOf(lstPackage.SelectedValue.Trim()) >= 0
                select new
                {
                    UID = sup.UID,                    
                    CompanyName = com.CompanyName,
                    ProductName = pro.ProductName,
                    Price = sup.Price,
                    Stock = sup.Stock,
                    TodayCount = (  from tom in f.SupplyInfo2
                                where tom.SupplyInfoUID == sup.UID
                                && tom.TomatoTime.Date == DateTime.Now.Date
                                select tom).Count(),

                    SumCount = (from tom in f.SupplyInfo2
                            where tom.SupplyInfoUID == sup.UID
                            select tom).Count()
                };
       
        if (ddlOrder.SelectedItem.Text.Trim() == "价格从低到高" || ddlOrder.SelectedItem.Text.Trim() == "默认排序")
        {
            var v2 =  v.OrderBy(u => u.价格);
            GridView1.DataKeyNames = new string[] { "UID" };
            GridView1.DataSource = v2;
        }
        if (ddlOrder.SelectedItem.Text.Trim() == "价格从高到低")
        {
            var v2 = v.OrderByDescending(u => u.价格);
            GridView1.DataKeyNames = new string[]{"UID"};
            GridView1.DataSource = v2;
        }
       
        GridView1.DataBind();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值