繁体   English   中英

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

[英]Entity Framework - writing query using lambda expression

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

我将继续前进并假设您已经在多对多关系中定义了RolePermission和RoleUser之间的关系? 这将使你的生活变得更加简单。

var query1 = db.UM_RoleUser
    .Where(ru => ru.UserId == userID)
    .SelectMany(rp => rp.RolePermissions);

当然,这取决于你如何建立你的人际关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM