2013-05-21 3 views
0

В отношении «многие ко многим» между файлом и категорией Я хочу проверить, существует ли файл, и если да, то если у него есть какие-либо категории (потому что есть шанс у него может не быть):Entity Framework: проверьте, существует ли объект и проверьте, есть ли у него связанный объект.

 public bool existsInDBAndHasCategories(string path) 
    { 
     using (WinFileContextContainer c = new WinFileContextContainer()) 
     { 
      return c.File.Any((o => o.path == path)); 
     } 
    }  

Это проверяет, имеет ли файл с этим путем запись в базе данных. Я получил это из потока на этом сайте. По правде говоря, я все еще плохо разбираюсь в LINQ и lambdas, поэтому я не знаю, как продлить его, чтобы дать BOOLEAN для любых категорий. Спасибо заранее за время.

ответ

1

Вы просто должны добавить еще одно условие для вашего метода (Предполагая, что вы определили Categories как список Category в File класс):

return c.File.Any((o => o.path == path && o.Categories.Any())); 
0

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

Вы код Шоуда выглядеть так:

public bool existsInDBAndHasCategories(string path) 
{ 
    using (WinFileContextContainer c = new WinFileContextContainer()) 
    { 
     var query = from f in c.File 
      where f.Path == path && 
      (f.Categories != null || f.Categories.Count != 0) 
      select f; 
     return (f.Count != 0) 
    } 
}  
Смежные вопросы