Я начал с этого вопроса, который я вроде как ответил там, и теперь я задавая более фундаментальный вопрос здесь. Я упростил запрос до этого:
var q = from ent in LinqUtils.GetTable<Entity>()
from tel in ent.Telephones.DefaultIfEmpty()
select new {
Name = ent.FormattedName,
Tel = tel != null ? tel.FormattedNumber : "" // this is what causes the error
};
tel.FormattedNumber
- это свойство, которое объединяет поля Number
и Extension
в аккуратно отформатированную строку. И вот ошибка, которая возникает:
System.InvalidOperationException: Could not translate expression 'Table(Entity).SelectMany(ent => ent.Telephones.DefaultIfEmpty(), (ent, tel) => new <>f__AnonymousType0`2(Name = ent.FormattedName, Tel = IIF((tel != null), tel.FormattedNumber, "")))' into SQL and could not treat it as a local expression.
Если я изменил ссылку выше от FormattedNumber
до простого Number
, все будет хорошо.
Но я хочу, чтобы отформатированный номер хорошо отображался в моем списке. Что вы рекомендуете как самый чистый, самый чистый способ сделать это?