[英]How to write below mysql query using Entity Framework with Lambda expression?
[英]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.