Obtenir une liste séparée par des virgules de l'entité de collecte à l'aide de linq
J'ai 2 entités Line
et Tag
. La relation est Line *----* Tag
De line
j'ai une propriété de navigation Line.Tags
qui retourne une liste de balises objets. Le Tag.Name
est la valeur de la chaîne im après.
Ce que j'ai vraiment besoin est d'obtenir tous les noms de balise dans une séparation par virgule façon comme :
tag1, tag2, tag3
J'ai essayé de le faire dans une projection, mais il a dit qu'il ne supporte pas 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;
Erreur:
LINQ to entities ne reconnaît pas la méthode " du Système.Chaîne De Jointure(Le Système.Chaîne, Système.Les Collections.Génériques.IEnumerable`1[Système.String])', et cette méthode ne peut pas être traduit dans un magasin d'expression.
Une idée de comment je peux obtenir cette liste séparée par des virgules de balises?
Merci d'avance.
Vous devez vous connecter pour publier un commentaire.
String.Join
. Vous aurez à obtenir les noms de retour dans une collection, et ensuite appelerString.Join
après la db appel.x.Tags.AsEnumerable().Select(t => t.Name)
ou_rs.Lines.Where(...).AsEnumerable().Select(...);
x.Tags
arrière de la db.Vous ne pouvez pas faire la concaténation de SQL, vous devez récupérer toutes les données dont vous avez besoin et ensuite travailler dans de code: