Я определил этот запрос для возврата IEnumerable<Estructura>
(from d in db.Direccion
where d.Activo == true
select new Estructura()
{
IdEstructura = d.IdDireccion,
Descripcion = d.Descripcion,
IdPadre = 0,
lstEstructurasHijos = d.Cliente.Select(C => new Estructura()
{
IdEstructura = C.IdCliente,
Descripcion = C.Descripcion,
IdPadre = C.IdDireccion,
lstEstructurasHijos = C.Campana.Select(Ca => new Estructura()
{
IdEstructura = Ca.IdCampana,
Descripcion = Ca.Descripcion,
IdPadre = Ca.IdCliente,
lstEstructurasHijos = Ca.Servicio.Select(S => new Estructura()
{
IdEstructura = S.IdServicio,
Descripcion = S.Descripcion,
IdPadre = S.IdCampana,
lstEstructurasHijos = new HashSet<Estructura>()
})
})
})
} into query
select query);
И этот класс, связанный
public class Estructura
{
public Estructura()
{
this.lstEstructurasHijos = new HashSet<Estructura>();
}
public int IdEstructura { get; set; }
public int IdPadre { get; set; }
public string Descripcion { get; set; }
public IEnumerable<Estructura> lstEstructurasHijos { get;set;}
}
Выдает эту ошибку
System.NotSupportedException
: Тип 'Estructura
' появляется в двух структурно несовместимых инициализациях в одном запросе LINQ to Entities.Тип может быть инициализирован в двух местах одного и того же запроса, но только если в обоих местах установлены одинаковые свойства и эти свойства установлены в одном и том же порядке.
Почему я делаю неправильно?Потому что, если я удаляю экземпляр Estructura каждого элемента и позволяю анонимному типу linq работать хорошо
Обновление
Итак, я сделал несколько изменений в запросе, но янашел эту ошибку сейчас
не удалось создать 'System.Collections.Generic.IEnumerable
1`'.Разрешить только примитив ('como Int32, String y Guid') в этом контексте
Как я могу определить пустое значение по умолчанию hashset
для этого Ienumerable