所以你有一个Fiches (FichePfes) 的表和一个EnseignantFiches (enseignant_fiche) 的表。
Fiches 和 EnseignantFiches 之间似乎存在某种关系:每个Fiche 都有(拥有?)一个EnseignantFiche, namely the EnseignantFichethat the foreign keyIdFiche` 指代。
此外,每个Fiche 都有一个布尔属性Valid;每个EnseignantFiche 都有一个(字符串?)属性IdEns。
要求:给我所有Valid Fiches,它拥有一个EnseignantFiche,其值为IdEns,等于“变量”
var validFiches = dbContext.Fiches.Where(fiche => fiche.Valid);
var variableEnseignantFiches = dbContext.EnseignantFiches
.Where(enseignantFiche => enseignantFiche.IdEns == "*variable*";
var requestedFiches = validFiches.Join(
variableEnseignantFiches,
fiche => validFiche.IdFiche, // from every Fiche take the foreign key
enseignantFiche => enseignantFiche.IdFiche, // from every EnseignatFiche take primary key
(fiche, enseignantFiche) => new // when they match, make one new object
{
// Select the fiche properties that yo plan to use
FicheId = fiche.Id,
FicheName = fiche.Name,
...
// Select the EnseignantFiche properties that you plan to use:
EnseignantName = enseignantFiche.Name,
...
});
言辞:
从 Fiches 表中,只保留有效的。
从 EnseignantFiches 表中,仅保留 IdEns 等于“Variable”的那些
将这两个表加入主键等于外键,并选择您计划使用的属性。
当然,您可以在一个大的 LINQ 语句中做到这一点。由于查询尚未执行,因此不会提高处理速度。它肯定会降低可读性、可测试性和可重用性。