Używam AutoMapper do projektu następującą strukturęprojekt zagnieżdżone obiekty AutoMapper gdzie wewnętrzna obiekt jest pustych braku
public class OuterSource
{
....
public Guid? InnerId { get; set }
public InnerSource Inner { get; set; }
}
public class InnerSource
{
public Guid Id { get; set; }
public DateTime Date { get; set; }
}
public class OuterDest
{
....
public InnerDest Inner { get; set; }
}
public class InnerDest
{
public Guid Id { get; set; }
public DateTime Date { get; set; }
}
var result = AutoMapper.Project<OuterSource, OuterDest>(query);
Jak widać, obiekt wewnętrzny jest pustych.
Projekcja działa dobrze, jeśli obiekt Wewnętrzny ma wartość, ale jeśli obiekt Wewnętrzny ma wartość NULL, EF wyrzuci wyjątek, tak jakby nie rozumiał, że InnerDest powinien w rzeczywistości mieć wartość NULL.
"The cast to value type 'Guid' failed because the materialized value is null. Either the result type's generic parameter or the query must use a nullable type."
Korzystanie
var result = AutoMapper.Map<IEnumerable<OuterSource>, IEnumerable<OuterDest>>(query);
nie rozwiązuje mojego problemu, ale oczywiście wolałbym użyć projektu.
Czy jest jakiś dobry sposób obejścia tego, czy może po prostu nie używać.