c# 获取每个组中存在的记录 ASP.NET MVC Entity Framework

c# get records which exist in each group ASP.NET MVC Entity Framework

问题:获取存在于所有实体中的用户,如阿里存在于ENT01,ENT02,ENT03

我有一个列表,我想获取每个组中存在的用户。在给定的图像细节 OfficerName"Ali" 中存在所有三个 EntityCode。我需要获取给定 EntityCodes

列表中存在的用户

从数据库 table 检索到 EntitUser 的列表。使用以下查询

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" , OfficerName = "ali"},
    new EntityUser(){EntityCode = "ENT03" , OfficerName = "ali"},
    new EntityUser(){EntityCode = "ENT01" , OfficerName= "jorj"},
    new EntityUser(){EntityCode = "ENT01" , OfficerName= "reza"},
    new EntityUser(){EntityCode = "ENT01" , OfficerName= "hamid"},
    new EntityUser(){EntityCode = "ENT01" , OfficerName= "farid"},
    new EntityUser(){EntityCode = "ENT02" , OfficerName= "farid"},
    new EntityUser(){EntityCode = "ENT03" , OfficerName= "sasan"},
    new EntityUser(){EntityCode = "ENT02" , OfficerName= "jorj"},
};

// 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;