Объединить Linq в EF - PullRequest
       3

Объединить Linq в EF

2 голосов
/ 22 марта 2011

Я хочу проверить, существует ли какой-либо продукт в бренде, прежде чем удалять бренд.Я записываю следующий код Linq в код структуры сущностей

            int count =0;
            if(!_entitiesContext.Product.Any(p=>p.BrandID==brandID))
            {
                var brand =
                    (from c in _entitiesContext.Brand
                     where c.BrandID == brandID 
                     select c).FirstOrDefault();

                _entitiesContext.DeleteObject(brand);
                count = _entitiesContext.SaveChanges();
            }

            return count>0;

Приведенный выше код будет дважды обращаться к базе данных, как я могу объединить два, чтобы генерировать один SQL-запрос с использованием ключевого слова EXISTS?

1 Ответ

0 голосов
/ 22 марта 2011

Если вы не получили результата от левого объединения, значит, вы не знаете, что для этого бренда нет товаров.

Попробуйте,

var query1 = from b in _entitiesContext.Brand
            join p in _entitiesContext.Product on
            on b.BrandID equals p.BrandID
                into bpGroup
                where b.BrandID == brandID
            select new 
            {
              Brand = b
            ,  Count = bpGroup.Count()
            };

if (Count == 0 )
{
    // delete Brand
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...