где по запросу LINQ - PullRequest
       25

где по запросу LINQ

1 голос
/ 05 июля 2011

У меня есть следующий код:

b.Text = myDataContext.purchases.Count().ToString();

"b" это label, что у меня есть на странице aspx.

Я хочу добавить в код: где items.main == true, как у меня здесь:

        var bla = from items in myDataContext.items
                   where items.main == true
                   select items;

Как я могу это сделать на: b.Text = myDataContext.purchases.Count().ToString();

у меня есть таблица: items с itemId столбца и основной столбец (бит).

и таблица: purchase.

при покупке у меня есть столбец itemId (с отношением) * * тысяча двадцать-один

1 Ответ

8 голосов
/ 05 июля 2011

Существует перегрузка Count(), которая принимает предикат (фильтр);и == true является избыточным, поэтому, если main является частью покупки :

b.Text = myDataContext.purchases.Count(p => p.main).ToString();

При редактировании вам необходимо присоединиться либо через помощника:

b.Text = myDataContext.purchases.Count(p => p.item.main).ToString();

Или вручную:

  b.Text = (from p in myDataContext.purchases
            join i in myDataContext.items on p.itemId equals i.itemId
            where i.main
            select p).Count().ToString();
...