我刚刚启动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;


上面的工作正常,可以满足我的需求,但是我也尝试使用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));


谁能完成?

关系:

UM_RoleUser and UM_User


谢谢

最佳答案

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

关于c# - Entity Framework -使用Lambda表达式编写查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3492856/

10-13 03:43