У меня есть отношения многие ко многим с EF Core 2.x.
Я создал 3 класса:
public class Place
{
public string Name {get; set;}
public int Id {get; set;}
public ICollection<PlaceUser> Users {get; set;}
}
public class User
{
public string Name {get; set;}
public int Id {get; set;}
public ICollection<PlaceUser> Places {get; set;}
}
public class PlaceUser
{
public int UserId{get; set;}
public User User{get; set;}
public int PlaceId{get; set;}
public Place Place{get; set;}
}
public class PlaceDto
{
public string Name {get; set;}
public int Id {get; set;}
public ICollection<PlaceUserDto> Users {get; set;}
}
В моем dbcontext
я настроил отношения. Все работает хорошо.
Но когда я хочу сопоставить свое Dto Place с моим Place Object в моем объектном месте, у меня возникает исключение рекурсивности и переполнения:
У меня есть:
Place
|-> Users
|-> User
|-> Place
|-> Users
|-> ...
Я попытался в своей конфигурации mapper использовать глубину, но она не работает.
Единственный найденный мной обходной путь:
if(place!=null && place.Users!=null)
{ // I set all the place.Users[i].Place = null; and place.Users[i].User=null;}
Но это уродливое решение и не очень удобно в все.
Итак, какое решение я могу использовать?
Спасибо,
Я добавил конфигурацию автоматического средства:
configuration.CreateMap<Place, PlaceDto>().MaxDepth(1);