c#获取每个组ASP.NET MVC实体框架中存在的记录

问题描述

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

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

result set

数据库表中检索到的 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",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;