Исправление ссылки на цикл в коде Entity Framework в первую очередь при сериализации в JsonC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Исправление ссылки на цикл в коде Entity Framework в первую очередь при сериализации в Json

Сообщение Anonymous »

У меня есть следующие классы (для краткости аннотированы);

Код: Выделить всё

public partial class Device
{
[Key]
public int ID { get; set; }
public virtual Policy MainPolicy { get; set; }
}

public class Policy
{
[Key]
public override int ID { get; set; }

[ForeignKey("ID"), Column("deviceid")]
public virtual Device MainDevice { get; set; }
}
Теперь, когда я пытаюсь выбрать из базы данных с помощью linq (например, с точки зрения устройства и пытаюсь включить данные политики).

Когда я затем пытаюсь вернуть сериализованный результат, я обнаруживаю цикл самоссылки для устройства и политики свойства.

Например, выбор с точки зрения устройств;

Код: Выделить всё

    var result = _dbset
.Include(x => x.Policy)
.Where(predicate);

return result.ToList();
Затем я иду фильтровать и возвращаю результаты в свой метод webapi следующим образом:

Код: Выделить всё

    var filtered = from x in results
select new
{
ID = x.ID,
PolicyNumber = x.MainPolicy.Number,
Created = x.CreatedDate
};

return Ok(filtered);
Насколько мне известно, атрибут ForeignKey должен это исправить? т.е. в приведенном выше коде путем украшения MainDevice ForeignKey("ID") это должно сообщить EF, в каком направлении находится связь?

Я бы предпочел исправить и понять это, чем простое добавление цикла игнорирования json, если это возможно.

Подробнее здесь: https://stackoverflow.com/questions/323 ... ng-to-json
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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