Попытка скрыть свойство в Response, но все равно получить его свойство - PullRequest
0 голосов
/ 26 сентября 2019

Итак, у меня есть приложение MVC, которое использует OData для запросов на получение нужных данных из базы данных с использованием Entity Framework Core.Картография и все установлено.Сущности выглядят так:

public class User
{
    public long Id { get; set; }
    public string Name { get; set; }
    public ICollection<UserGroup> UserGroups { get; set; }
}

public class Group
{
    public long Id { get; set; }
    public string Name { get; set; }
    public ICollection<UserGroup> UserGroups { get; set; }
}

public class UserGroup
{
    public long UserId{ get; set; }
    public User User { get; set; }
    public long GroupId{ get; set; }
    public Group Group { get; set; }
}

Мой призыв к этому выглядит примерно так:

http://localhost:8080/User(1)?$expand=UserGroups($expand=Group)

Пока все хорошо.Но то, что я получаю, это User сущность, список UserGroup сущностей и их базовых Group сущностей:

Текущий результат:

{
    "UserId": 1,
    "Name": "TestUser",
    "UserGroups": [
        {
            "UserId": 1,
            "GroupId": 45,
            "Group": {
                "GroupId": 45,
                "Name": "Section1Reader"
            }
        },
        {
            "UserId": 1,
            "GroupId": 47,
            "Group": {
                "GroupId": 47,
                "Name": "Section2Writer"
            }
        }
    ]
}

Я бы не хотел получать объекты UserGroup, а непосредственно объекты Group:

Требуемый результат:

{
    "UserId": 1,
    "Name": "TestUser",
    "UserGroups": [
        {
            "GroupId": 45,
            "Name": "Section1Reader"
        },
        {
            "GroupId": 47,
            "Name": "Section2Writer"
        }
    ]
}

1 Ответ

1 голос
/ 26 сентября 2019

попробуйте сделать это:

public class User
{
    public long Id { get; set; }

    public string Name { get; set; }

    public ICollection<UserGroup> UserGroups { get; set; }
}

public class UserGroup
{    

    public long GroupId{ get; set; }

    public string Name { get; set; }
}

для получения дополнительной информации см. Этот код https://dotnetfiddle.net/WZpeWt, который размещен в этом ответе https://stackoverflow.com/a/37376089/9673980

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...