2017-08-21 5 views
3

外側の左、私はいくつかの基準によってUserUserActionと一致する必要があります。ApprovedActionTypeUserId、そしてアクションが失われる可能性があるため、まだ、left outer joinとしてクエリを保存しておきたいです。通常のネットエンティティフレームワークでは、私は次の操作を行います:Entity FrameworkののCoreバージョンについては EntityFramework(.NETコア)複数の条件で参加

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} 

は、残念ながら、それは動作しません。 .NETコア用のEFを使用して同様の目標を達成するにはどうすればよいですか?

+0

あなたはどのEFコアバージョンを使用していますか? –

+0

どのようなエラーメッセージが表示されましたか? –

答えて

3

これを試してみてください。結合構文のいずれかの側に匿名型の

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} 

プロパティ名が一致する必要があります。