Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何进行多级查询_C#_Asp.net Mvc - Fatal编程技术网

C# 如何进行多级查询

C# 如何进行多级查询,c#,asp.net-mvc,C#,Asp.net Mvc,我正在制作一个简单的律师应用程序来计算代理佣金 我们有两类代理人 第一代理人-为律师事务所带来新客户的人 第二个代理-谁也带来代理并获得佣金 我正在使用asp.net identity,这是创建此关系的最佳实践,可以将类型为Application user的名为Parent的字段添加为Application user类中的集合 public virtual ICollection<ApplicationUser> Parent { get; set; } 我希望将上面的查询绕过代理

我正在制作一个简单的律师应用程序来计算代理佣金 我们有两类代理人

  • 第一代理人-为律师事务所带来新客户的人
  • 第二个代理-谁也带来代理并获得佣金
  • 我正在使用asp.net identity,这是创建此关系的最佳实践,可以将类型为Application user的名为Parent的字段添加为Application user类中的集合

    public virtual ICollection<ApplicationUser> Parent { get; set; }
    

    我希望将上面的查询绕过代理作为父项查询到新查询,然后我可以获取子项的列表

    如果您希望所有用户都具有相同的父项,请尝试:

    var usersWithParent = _context.Users.Where(u => u.Parents.Any(p => p.Id == myParentId)).ToList();
    

    另外,请参阅我关于立即加载所有收藏的评论。

    在您的第一段中有许多不相关的信息。请重新编写并仅共享重要信息。请出示您的实体代码-仅重要部分-并用一两句话解释您想要的关系。强制复制和粘贴:您好,欢迎!请阅读并阅读以改进您的问题,并帮助我们了解您的问题。您是否在用户上有parentId字段?这将有助于将关系存储在数据库中。如果是,请尝试->var child=\u context.Users.Where(u=>u.ParentId==Id);不,我还没有创建PrentID和EF generate表,表中的字段如上所示,我想我不能在用户中添加ParentID,因为父类型是用户的集合,而不是用户的集合,这是要加载很多单独的数据库点击。您应该使用
    Include()
    一步完成。有lambda语法,或者您可以尝试
    var userWithClientsParents=\u context.Users.Include(u=>u.Parents).Include(“Clients.Cases.casepharges”).Single(c=>c.Id==Id)
    public ActionResult ViewAgent(string Id)
            {
                //Get selected agent with related data
                var Agent = _context.Users.Single(c => c.Id == Id);
                _context.Entry(user).Collection(u => u.Clients).Load();
                _context.Entry(user).Collection(u => u.Parent).Load();
                foreach (var item in user.Clients)
                {
                    _context.Entry(item).Collection(c => c.Case).Load();
                    foreach (var charge in item.Case)
                    {
                        _context.Entry(charge).Collection(c => c.CaseCharge).Load();
    
                    }
                }
    
                //select agent Child's of agent with related data
                // How can i query it ?? an error here but i am looking around
                var childs=  _context.Users.Where(u=>u.Parent.Select(p=>p.Id==Id))
                return View(user);
            }
    
    var usersWithParent = _context.Users.Where(u => u.Parents.Any(p => p.Id == myParentId)).ToList();