1

where句の中にif条件を書きたいです。名または姓が null の場合、 where 句に追加したくないためです。それ以外の場合は、追加したいと思います。

だから私は書く

var query1 = from opv in _opvRepository.Table
                         join o in _orderRepository.Table on opv.OrderId equals o.Id
                         join gr in _graduandRepository.Table on opv.graduand_id equals gr.graduand_id
                         join pv in _productVariantRepository.Table on opv.ProductVariantId equals pv.Id
                         join p in _productRepository.Table on pv.ProductId equals p.Id
                         where (opv.ceremony_id == ceremony_id) && 
                         (!o.Deleted) && (opv.IsHireItem == true)  &&
                         (!p.Deleted) &&
                         (!pv.Deleted) && (opv.ceremony_id == ceremony_id)      
                       //  group opv by opv.OrderId into g
                         select new
                         {
                             opvTable = opv,
                             grTable = gr,

                         };


// This is not working. I have problem in here. How to add this??
             if (!String.IsNullOrEmpty(Fname))
                 query1 = query1.Where(grTable = > grTable.first_name == Fname);




            var result = query1.ToList().Select(x =>
            {
                return new HireItemReportLine()
                {
                    OrderId = x.opvTable.OrderId,
                    OrderDate=x.opvTable.Order.CreatedOnUtc,
                    Amount= x.opvTable.Order.OrderSubtotalExclTax,
                    PaymentMethod = x.opvTable.Order.PaymentMethodSystemName,
                    paidDate = x.opvTable.Order.CreatedOnUtc,

                    Fname = x.grTable.first_name,
                    MName = x.grTable.middle_name,
                    LName = x.grTable.last_name,



                };
            }).ToList();

私のコーディングのどこが悪いのですか??

4

1 に答える 1

2

opvTable元のクエリでは、との 2 つのプロパティを持つ匿名型が選択されていることに注意してくださいgrTableWhereしたがって、次のように、後続の句でこれらのプロパティのいずれかを使用する必要があります。

   query1 = query1.Where(item => item.grTable.first_name == Fname);
于 2012-11-08T00:26:38.073 に答える