实体框架 - 使用 lambda 表达式编写查询

Muh*_*tar 5 c# sql linq asp.net entity-framework-4

我刚刚启动 Entity Framework & linq 并编写此查询

 var query = from rp in db.UM_RolePermission
             where (from ru in db.UM_RoleUser 
             where ru.UM_User.UserID == userId select ru.RoleID).Contains(rp.RoleId)
             select rp;
Run Code Online (Sandbox Code Playgroud)

上面工作正常并满足我的需求,但是我尝试使用 lambda 表达式编写相同的内容来理解这一点。

我曾尝试自己写这篇文章,但未能完成。

var query1 = db.UM_RolePermission
             .Where(rp => (from ru in db.UM_RoleUser where ru.UM_User.UserID == userId select ru.RoleID).Contains(rp.RoleId));
Run Code Online (Sandbox Code Playgroud)

任何人都可以完成这个吗?

关系:

UM_RoleUser and UM_User
Run Code Online (Sandbox Code Playgroud)

谢谢

Die*_*res 4

var query = db.UM_RolePermission
            .Where(rp => db.UM_RoleUser
                         .Where(ru => ru.UM_User.UserID == userId)
                         .Select(ru => ru.RoleID)
                         .Contains(rp.RoleId))
Run Code Online (Sandbox Code Playgroud)