私はthis questionで始まりました。私はthereと答えました。そして今、もっと根本的な質問をしています。私はこれまで、クエリを簡素化しました:Linq "式をSQLに変換できなかったため、ローカル式として扱うことができませんでした。"
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.
を私はNumber
FormattedNumber
への単なるは、すべてが正常に動作しますから、上記の基準を変更した場合:そして、ここでの結果エラーがあります。
しかし、私はフォーマットされた数字を私のリストにうまく表示したいと思います。そうするためのきれいな、きれいな方法として何をお勧めしますか?