Веб -API; Организация сущности; Данные возвращают рекурсивныеC#

Место общения программистов C#
Ответить
Anonymous
 Веб -API; Организация сущности; Данные возвращают рекурсивные

Сообщение Anonymous »

Я сталкиваюсь с проблемой; Вероятно, с самоотверженным циклом:
model: < /p>
public class ProtectedAccount
{
public int Id { get; set; }

[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public DateTime Created { get; private set; }
public DateTime? Changed { get; set; }
public bool Disabled { get; set; }

public virtual ICollection
Members { get; set; }
public virtual ProtectedAccountType Type { get; set; }
}

public class ProtectedAccountMember
{

public int Id { get; set; }
[StringLength(300)]
public string Name { get; set; }

[Index]
public virtual ProtectedAccount ProtectedAccount { get; set; }
}
< /code>
контроллер: < /p>
[ResponseType(typeof(ProtectedAccount))]
[Route("ProtectedAccounts/{id}/Members")]
[HttpGet]
public IHttpActionResult GetProtectedAccountMembers(int id)
{
var protectedAccount = db.ProtectedAccounts.Find(id);

if (protectedAccount == null)
{
return NotFound();
}

return Ok(protectedAccount.Members.ToList());
}
< /code>
Данные, которые я получаю для GET, кажется, рекурсивны во всех навигациях: < /p>
[
{
"ProtectedAccount": {
"Members": [
{
"Id": 2,
"Name": "XXX, XX",

},
{
"Id": 3,
"Name": "XX, XX",

}
],
"Type": null,
"Id": 25,
"ObjectGUID": "76bf65e7-af60-4fe8-b3e1-90afbfd65b65",
"Name": "XXX",

},
"Id": 1,
"Name": "test",
},
{
"ProtectedAccount": {
"Members": [
{
"Id": 1,
"Name": "test",

},
{
"Id": 3,
"Name": "XX, XX",
"SamAccountName": "XX",
"Disabled": false
}
],
"Type": null,
"Id": 25,
"ObjectGUID": "76bf65e7-af60-4fe8-b3e1-90afbfd65b65",
"Name": "XXXX",

},
"Id": 2,
"Name": "XX, XX",

},
{
"ProtectedAccount": {a
"Members": [
{
"Id": 1,
"Name": "test",
"SamAccountName": "XXX",
"Disabled": false
},
{
"Id": 2,
"Name": "XX, XX",
"SamAccountName": "XX",
"Disabled": false
}
],
"Type": null,
"Id": 25,
"ObjectGUID": "76bf65e7-af60-4fe8-b3e1-90afbfd65b65",
"Name": "XXX",
},
"Id": 3,
"Name": "XX, XX",

}
]
< /code>
В базе данных есть только один «ProtecteCcount». Должен ли я использовать DTO, чтобы преодолеть эту проблему? Я попробовал некоторую конфигурацию через форматирования формата JSON, но не получил каких -либо лучших результатов.


Подробнее здесь: https://stackoverflow.com/questions/351 ... -recursive
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»