所以,假设我有一个Contest可以有多个ContestCulture. 对于本次比赛,我必须有Documents,其中有 aDocumentType和 a Culture(Rules, TermsAndConditions, PrivacyPolicy)
对于每个ContestCulture,我必须至少有一个才能使 有效。DocumentDocumentTypeContest
所以假设我有一个Contest2 ContestCulture(fr-CA, en-CA) 我必须至少有 6Document个Contest
- 文档 1:文化 1、规则
- 文档 2:文化 1、条款和条件
- 文档 3:文化 1、隐私政策
- 文档 4:文化 2、规则
- 文档 5:文化 2、条款和条件
- 文档 6:文化 2、隐私政策
实体如下:
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值列表) 的列表- 一个
ContestCultureID 列表(列表int) - (列表)的
Documents列表ContestDocument
我如何检查Document每个人是否至少有 1DocumentType个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};
