Je dois faire correspondre User
et UserAction
selon plusieurs critères: UserId
, ActionType
, Approved
et ActionType
souhaite toujours conserver la requête en tant que left outer join
, car l'action risque de manquer. Dans un cadre d'entité .net classique, je procéderais comme suit:
var q = from u in db.User
join ua in db.UserActions on { u.Id, "Approved" } equals { ua.UserId, ua.ActionType } into actions
from ua in action.DefaultIfEmpty()
where u.Active
select new { User = u, Actions = ua}
Pour la version Core de Entity Framework, malheureusement, cela ne fonctionne pas. Comment puis-je atteindre le même objectif en utilisant EF for .NET Core?
Essaye ça:
var q = from u in db.User
join ua in db.UserActions on new { UserId = u.Id, ActionType = "Approved" } equals new { ua.UserId, ua.ActionType } into actions
from ua in actions.DefaultIfEmpty()
where u.Active
select new { User = u, Actions = ua}
Les noms de propriété des types anonymes de chaque côté de la syntaxe de jointure doivent correspondre.