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;
问题:获取存在于所有实体中的用户,如阿里存在于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;