[英]Linq To Sql Finding item in many to many relationship
接下来是我的用户场景: 实体框架更新存根导致主键冲突
使用EF6,我的表结构如下:
Users - UserCodePK, UserName
UserGroups - UserCodeFK,GroupCodeFK
Groups - GroupCodePK,GroupDescription
我正在尝试编写一种方法来返回用户是否在列表中出现任何组:
public static bool InUserGroup(string userCode, List<string> userGroupList)
{
using (var dbContext = new MyEntities())
{
var results = dbContext.Users.Where(u => u.UserCodePK == userCode).FirstOrDefault();
return results.UserGroups.Where(ug => userGroupList.Contains(ug.GroupCodePK)).Any();
}
}
确实确实可以,但是我认为这效率不高,因为它正在执行2个数据库调用。
我怎么能重写它以提高效率,即。 一个数据库调用?
您可以尝试这样做:
return dbContext.Users.Where(u => u.UserCodePK == userCode
&& u.UserGroups.Where(ug => userGroupList.Contains(ug.GroupCodePK)).Any();
应该将其转换为单个数据库调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.