Eine Komma-separierte Liste von entity-Sammlung mithilfe von linq
Habe ich von 2 Personen Line
und Tag
. Der Bezug ist Line *----* Tag
Vom line
ich habe eine navigation, die Eigenschaft Line.Tags
gibt eine Liste von Tag-Objekten. Die Tag.Name
ist der string-Wert im nach.
Was ich wirklich brauche, ist, um alle tag-Namen in eine comma seperated Weg wie so :
tag1, tag2, tag3
Ich versucht, dies zu tun in einer Projektion, aber es sagte, dass es keine Unterstützung für 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;
Fehler:
LINQ to Entities nicht erkennt die Methode 'System.String Join(System.String, System.Sammlungen.Generisches.IEnumerable`1[System.String])' - Methode, und diese Methode kann nicht übersetzt werden, in einen laden zu Ausdruck.
Irgendeine Idee, wie ich dieses Komma getrennte Liste von tags?
Vielen Dank im Voraus.
InformationsquelleAutor sprocket12 | 2012-05-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
String.Join
. Sie haben, um die Namen wieder in einer Kollektion und rufen Sie dannString.Join
nach dem db-Aufruf.Dann können Sie versuchen
x.Tags.AsEnumerable().Select(t => t.Name)
oder_rs.Lines.Where(...).AsEnumerable().Select(...);
es können schlechte Auswirkungen auf die Leistung haben (Sie haben, um es zu überprüfen, ich weiß nicht, wie viele Datensätze zurückgegeben werden), sondern versuchen, den Aufruf von ToList() vor Select
check mein update, ich meinte ToList() vor dem ersten Wählen - ich aktualisierte den code
Das wird nicht bringen, damit der
x.Tags
wieder aus der db.InformationsquelleAutor empi
Nicht die Verkettung in SQL, so dass Sie haben, um wieder die Daten, die Sie benötigen, und arbeiten dann in den normalen code:
Sie sind willkommen, Muhammad 🙂
InformationsquelleAutor Nicholas Butler