два условия where в одном запросе linq - PullRequest
0 голосов
/ 04 сентября 2011

У меня есть таблица мембранных счетов

              member_id
              member_name
              membertransactionamount
              memberaccount_id

и мое имя сущности - databasecontextsearch

и я связываю эти детали с представлением таблицы данных, используя способ foolwing

        var memberdetails = from members in databasecontextsearch.memberacconuts
                              select new 
                               {  
                                  memberid = members.member_id
                                  name = members.member_name
                                  amount = members.membertransactionamount
                                 };
                         bindingsource1.datasource = memberdetails;
                        datagridview1.datasource = bindingsource1;

и у меня есть текстовое поле (txtsrch) и кнопка (поиск)

всякий раз, когда пользователь вводит имя_элемента в текстовое поле (txtsrch), сведения об элементе будут заполняться представлением таблицы данных в соответствии с этим именем_элемента.

всякий раз, когда пользователь вводит значение membertransactionamount в представлении таблицы данных текстового поля (txtsrch), будут заполняться сведениями об элементах тех, кто имеет эту сумму membertransaction ..

возможно ли выполнение этих условий в одиночном условии if с использованием linq для сущностей ...

1 Ответ

2 голосов
/ 04 сентября 2011

Вы можете «преобразовать» это в AND:

var memberdetails = from members in databasecontextsearch.memberacconuts
                    where 
                    string.IsNullOrEmpty(name_param)?true:members.memebername==name_param
                    &&
                    ((tran_param!=null?members.membertransactionamount==tran_param:true))
                    select new 
                    {  
                         memberid = members.member_id
                         name = members.member_name
                         amount = members.membertransactionamount
                    };

Объяснение:

Если name_param равно нулю или пусто, первая часть условия where будет иметь значение true; если нет, сделаю сравнение.

Если значение tran_param равно нулю, вторая часть where будет иметь значение true; если нет, сделаем сравнение с membertransactionmaount.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...