Я наконец нашел способ:
Expression<Func<E,Datetime?>> expr =
e => (e.d1 ?? e.Rel.d1) ?? e.d2;
Expression<Func<E,someDeclaredType>> sel =
x => new someDeclaredType {
Id = x.Id,
V = expr.Compile()(x)
};
var q = myContext.E_DbSet.Select(sel.Compile());
другая кодировка (от @Anthony):
Expression<Func<E, someDeclaredType>> sel =
e => new someDeclaredType()
{
Id = e.Id,
V = expr.Compile()(e)
};
q = Files.Select(sel.Compile());
по образцу: dotnetfiddle
Пожалуйста, обратите внимание, что код не предназначен для ссылок на сущности. Это может вызвать исключение в linq к объекту из-за Rel = null
.