Итак, допустим, у меня есть Contest
, который может иметь несколько ContestCulture
. Для этого конкурса у меня должно быть Documents
, которое имеет DocumentType
и Culture
(Правила, Условия и Условия, PrivacyPolicy)
Для каждого ContestCulture
, я должен иметь, КАК минимум, один Document
для каждого DocumentType
для того, чтобы Contest
был действительным.
Итак, скажем, у меня есть Contest
с 2 ContestCulture
(fr-CA, en-CA), который я должен иметь по крайней мере 6 Document
для этого Contest
- Документ1: Культура1, Правила
- Документ2: Культура1, Условия и Условия
- Документ3: Культура1, PrivacyPolicy
- Document4: Culture2, Rules
- Document5: Culture2, TermsAndConditions
- Document6: Culture2, PrivacyPolicy
Сущности похожи на следующие:
public class Document
{
public DocumentType DocumentType { get; set; }
public int CultureId { get; set; }
public Culture Culture { get; set; }
public int ContestId { get; set; }
public Contest Contest { get; set; }
//Some other properties
//...
}
public class Contest
{
public List<Document> Documents { get; set; }
public List<ContestCulture> ContestCultures { get; set; }
//Some other properties
//...
}
public class ContestCulture
{
public int ContestId { get; set; }
public Contest Contest { get; set; }
public int CultureId { get; set; }
public Culture Culture { get; set; }
//Some other properties
//...
}
public class Culture
{
public string Code { get; set; }
public string Name { get; set; }
}
Теперь, когда контекст установлен ..
У меня есть 3 списка:
- список
DocumentType
(список enum
значений) - a список
ContestCulture
идентификаторов (список int
) - список
Documents
для Contest
(список Document
)
Как проверить если у меня есть хотя бы 1 Document
fo r каждый DocumentType
для каждого ContestCulture
?
Я действительно новичок в LinQ, поэтому я попробовал это:
from cultureId in list_usedCultureIdsForContest
join doc in documents on cultureId equals doc.CultureId into temp1
from t in temp1.DefaultIfEmpty()
select new {cultureId, t};
, но он дает мне только те, которые у меня есть, как показано ниже: