私は2つのエンティティLine
とTag
を持っています。関係はLine *----* Tag
linqを使用してエンティティコレクションのコンマ区切りリストを取得
からline
私はタグオブジェクトのリストを返すナビゲーションプロパティLine.Tags
です。 Tag.Name
は、後の文字列値imです。私は本当に必要なもの
はそうのようにカンマ区切りの方法ですべてのタグ名を取得することです:
tag1, tag2, tag3
私は投影でこれを実行しようとしましたが、それはそれはサポートtoString()
var o = dgvLines.CurrentRow.DataBoundItem as Order;
var r = _rs.Lines.Where(y => y.InvoiceNo == o.InvoiceNo).Select(x => new
{
ReturnNo = x.Return.ReturnNo,
Part = x.Part,
Tags = String.Join(", ", x.Tags.ToList().Select(t => t.Name))
});
dgvExistingParts.DataSource = r;
をdoesntの言いました
エラー:
参加可能System.String方法」を認識しないエンティティへのLINQ(可能System.String、System.Collections.Generic.IEこのメソッドをストア式に変換することはできません。
このカンマ区切りのタグリストをどのように取得できますか?
ありがとうございます。
Entity Frameworkのは、 'String.Joinをサポートしていません。 '。名前をコレクションに戻してから、dbコールの後に 'String.Join'を呼び出す必要があります。 –
@MuhammadA:それから 'x.Tags.AsEnumerable()。Select(t => t.Name)'または '_rs.Lines.Where(...)。AsEnumerable()。Select(...) ; – Oliver
@MuhammadA:パフォーマンスに悪影響を与える可能性があります(チェックする必要があります。返されるレコードの数はわかりません)。選択前にToList()を呼び出してください。 – empi