问题描述
问题:获取存在于所有实体中的用户,例如ENT01,ENT02,ENT03中的Ali存在
我有一个列表,想要获取每个组中存在的用户。在给定的图像细节中,所有三个EntityCode中均存在OfficerName
“ Ali ”。我需要获取存在于给定EntityCodes列表中的用户
List<string> EntityCodes = new List<string>();// have 3 EntCodes,can have more
var Contacts=_db.EntityUser.Where(x => x.MasterGroupCode == GroupCode && x.IsCurrent==true).ToList();
我得到包含这些属性的EntityUser
列表
public partial class EntityUser
{
public string Email { get; set; }
public System.Guid Id { get; set; }
public string EntityCode { get; set; }
public string OfficerType { get; set; }
public string OfficerName { get; set; }
}
任何帮助都非常有用
解决方法
如果我对问题的理解正确,那么此示例应该可以解决您的问题。
注意:只需使用您的dbContext而不是EntityUsers
集合
// sample test data
var EntityUsers = new List<EntityUser>()
{
new EntityUser(){EntityCode = "ENT01",OfficerName = "ali"},new EntityUser(){EntityCode = "ENT02",new EntityUser(){EntityCode = "ENT03",new EntityUser(){EntityCode = "ENT01",OfficerName= "jorj"},OfficerName= "reza"},OfficerName= "hamid"},OfficerName= "farid"},OfficerName= "sasan"},};
// this also can be load from database.
List<string> entityCodes = new List<string>() { "ENT01","ENT02","ENT03" };
// linq query to select users that has all EntityCodes
var usersInAllEntities = from u in EntityUsers
group u by u.OfficerName into gr
where entityCodes.All(c => gr.Any(g => g.EntityCode == c ) )
from usr in gr
select usr;