2017-08-21 1 views
3

Ich brauche User und UserAction nach mehreren Kriterien entsprechen: UserId, ActionType, Approved, und wollen immer noch die Abfrage als left outer join zu halten, da die Aktion fehlen könnte. In regelmäßigen Rahmen .net Unternehmen würde ich folgendes:EntityFramework (.NET Core) linken äußeren Join durch mehrere Bedingungen

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} 

Für die Core-Version von Entity Framework leider funktioniert es nicht. Wie kann ich mit EF für .NET Core ein ähnliches Ziel erreichen?

+0

Welche EF Core-Version sind Sie? –

+0

Welche Fehlermeldung haben Sie erhalten? –

Antwort

3

Try this:

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} 

Eigenschaftsnamen der anonymen Typen auf beiden Seiten der Syntax übereinstimmen müssen mitmachen.

Verwandte Themen