2013-12-03 3 views
0

У меня есть таблица, которая выглядит следующим образом: -запросов LINQ в Junction таблице

CategoryId | QuestionId 
----------------------- 
1  |  2 
1  |  3 
3  |  2 
4  |  3 

мне нужно вытащить все вопросы, которые не используются в конкретной категории. так, например, CategoryID = 1.

В результате должно быть создано никаких вопросов для отображения.

Кто-нибудь знает лучший способ сделать это? до сих пор у меня нигде нет.

EDIT **

public partial class FAQ 
    { 
     public FAQ() 
     { 
      this.FAQCategoriesFAQs = new HashSet<FAQCategoriesFAQ>(); 
     } 

     public int Id { get; set; } 
     public string Question { get; set; } 
     public string Answer { get; set; } 
     public bool IsVisible { get; set; } 
     public Nullable<System.DateTime> DateLastUpdated { get; set; } 
     public System.DateTime DateCreated { get; set; } 
     public bool IsDeleted { get; set; } 

     public virtual ICollection<FAQCategoriesFAQ> FAQCategoriesFAQs { get; set; } 
    } 

public partial class FAQCategory 
    { 
     public FAQCategory() 
     { 
      this.FAQCategoriesFAQs = new HashSet<FAQCategoriesFAQ>(); 
     } 

     public int Id { get; set; } 
     public string Name { get; set; } 
     public int DomainId { get; set; } 
     public Nullable<System.DateTime> DateLastUpdated { get; set; } 
     public System.DateTime DateCreated { get; set; } 
     public bool IsDeleted { get; set; } 
     public int SortOrder { get; set; } 

     public virtual Domain Domain { get; set; } 
     public virtual ICollection<FAQCategoriesFAQ> FAQCategoriesFAQs { get; set; } 
    } 

public partial class FAQCategoriesFAQ 
    { 
     public int FAQCategoryId { get; set; } 
     public int FAQId { get; set; } 
     public int SortOrder { get; set; } 

     public virtual FAQCategory FAQCategory { get; set; } 
     public virtual FAQ FAQ { get; set; } 
    } 
+0

У вас есть объекты с навигационными свойствами? –

+0

Да, x.FAQCategoriesFAQs .. но мне нужно игнорировать вопросы, где они повторяются другими категориями? – Derek

+0

«Мне нужно вытащить все вопросы, которые не используются определенной категорией, поэтому, например, CategoryID = 1« Должно ли быть «ID вопроса = 1»? Значит, вам нужны вопросы, которые нигде не появляются в этой таблице? В противном случае я смущен тем, о чем вы просите. Если это вопросы не в этой таблице, я предполагаю, что вы можете получить список идентификаторов вопроса, которые существуют? – Chris

ответ

2

Если у вас есть свойство навигации для категорий Question лица:

db.Questions.Where(q => !q.Categories.Any(c => c.Id == id)) 

UPDATE Таким образом, ваша таблица стык немного отличается от оригинального вопроса :)

db.FAQs.Where(q => !q.FAQCategoriesFAQs.Any(qc => qc.FAQCategoryId == id)) 
+0

Я должен получить доступ к стыковочному столу напрямую, я боюсь. Это не идеальное, но нам нужно что-то менять. Поэтому я не могу получить доступ к навигационным свойствам категорий. Мне нужно получить доступ к таблице соединений, что делает ее сложной. – Derek

+0

@Derek вы также можете указать код сущности (показать идентификаторы и свойства навигации). Также почему вы вынуждены использовать соединительную таблицу? Есть ли другие поля помимо ключей? –

+0

Да, в таблицу соединений добавлена ​​колонка порядка сортировки, которая нарушает свойства навигации. – Derek

Смежные вопросы