Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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# 使用EF Core和OData,应用程序如何根据相关实体中的属性进行排序?_C#_Asp.net Core_Odata_Ef Core 2.2 - Fatal编程技术网

C# 使用EF Core和OData,应用程序如何根据相关实体中的属性进行排序?

C# 使用EF Core和OData,应用程序如何根据相关实体中的属性进行排序?,c#,asp.net-core,odata,ef-core-2.2,C#,Asp.net Core,Odata,Ef Core 2.2,在使用EF Core和OData的AspNet Core应用程序中,如何实现按相关实体中的属性排序的网格?下面是一个包含地址的网格的简化示例,用户可以单击State列按状态排序: public class Address { public int Id { get; set; } public string Line1 { get; set; } public int StateId { get; set; } public State State { get;

在使用EF Core和OData的AspNet Core应用程序中,如何实现按相关实体中的属性排序的网格?下面是一个包含地址的网格的简化示例,用户可以单击State列按状态排序:

public class Address
{
    public int Id { get; set; }
    public string Line1 { get; set; }
    public int StateId { get; set; }
    public State State { get; set; }
}

public class State 
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class AddressRepository
{
    public IQueryable Get()
    {
        return _context.Address.Include(a => a.State);
    }
}
当我通过在上下文忽略的
Address
中添加
StateName=>State.Name
属性来展平关系时,用户无法在网格中的该列上排序。最好的方法是,我可以在数据上下文中将该属性映射到
State.Name
,但我不太清楚如何做到这一点

在客户机上,我们使用OData进行排序、分页和筛选。如果我们尝试使用OData的
$expand
将网格映射到非展平对象,以关闭
State
属性,那么我们如何为网格显示展平,然后为排序取消展平呢?

这可能会有帮助: