Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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# 使用oData和EFCore返回关系对象_C#_Api_Asp.net Core_Entity Framework Core_Odata - Fatal编程技术网

C# 使用oData和EFCore返回关系对象

C# 使用oData和EFCore返回关系对象,c#,api,asp.net-core,entity-framework-core,odata,C#,Api,Asp.net Core,Entity Framework Core,Odata,我可以使用linq和实体框架核心以及以下控制器功能来获取关系数据。但是,当我尝试使用oData时,它会忽略关系数据 我需要做额外的步骤吗?没有错误,但它只是忽略响应中的关系数据 [HttpGet] [EnableQuery] public IEnumerable<User> Get() { IEnumerable<User> users; using (var context = new DivDbConte

我可以使用linq和实体框架核心以及以下控制器功能来获取关系数据。但是,当我尝试使用oData时,它会忽略关系数据

我需要做额外的步骤吗?没有错误,但它只是忽略响应中的关系数据

    [HttpGet]
    [EnableQuery]
    public IEnumerable<User> Get()
    {
        IEnumerable<User> users;
        using (var context = new DivDbContext())
        {
            users = context.Users.Include(user => user.UserClaims).ToList();
        }

        return users;
    }
[HttpGet]
[启用查询]
公共IEnumerable Get()
{
i无数用户;
使用(var context=new DivDbContext())
{
users=context.users.Include(user=>user.UserClaims.ToList();
}
返回用户;
}

我想出来了。oData要求您通过URL显式请求扩展对象。我可以通过添加$expand=\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

?$expand=userClaims


也就是说,我不知道如何用这种语法处理嵌套属性。UserClaims有一个claim属性,也可以进行扩展。

我可以使用正斜杠在同一对象上请求多个扩展属性,但我仍然没有找到如何扩展已扩展对象的属性。下面是如何扩展子对象的子对象: