.Net Core OData默认选择

时间:2019-06-27 09:26:11

标签: c# .net asp.net-core odata

我在我们的项目中使用.Net Core 2.2 OData。我想对实体使用默认选择查询,因为我有针对用户的敏感数据,用户可以决定是否共享。

public IQueryable<User> Get()
{
    return db.Users.Where(x => x.ShowProfile).Select(x => new User
    {
        Id = x.Id,
        Name = x.Name,
        Surname = x.Surname,
        Photo = x.ShowPhoto && !string.IsNullOrEmpty(x.Photo) ? x.Photo : null,
        Bar = x.Bar,
        RegistrationNumber = x.RegistrationNumber,
        PhoneNumber = x.ShowPhoneNumber && x.PhoneNumber != "-" ? x.PhoneNumber : null,
        WorkPhoneNumber = x.ShowWorkPhoneNumber && x.WorkPhoneNumber != "-" ? x.WorkPhoneNumber : null,
        Email = x.ShowEmail && x.Email != "-" ? x.Email : null,
        //Profiles = x.Profiles //Error When This Line Uncommented
    }).AsQueryable();
}

这段代码很好用,但是如果我使用$ expand和$ filter进行扩展,那么我将无法获得结果,我需要它。

我已经尝试过使用DTO模型作为UserDto,并且效果很好,但结果不是odata格式,因此我无法使用$ count等。

正确的申请方法是什么?

0 个答案:

没有答案