J'ai 3 tables que je dois utiliser:
Brand-
BrandID
Nom
aide avec un LINQ trois tables requête
BrandSource-
BrandID
SourceID
Source-
SourceID
SourceName
Image
Donc, j'ai une relation de many-many avec BrandSource étant ma table intermédiaire. J'ai chaque colonne de marque affichée dans une table et j'ai fait une nouvelle colonne pour l'image source. Essentiellement, s'il y a 5 sources pour une marque, j'en ai besoin pour montrer une rangée pour la marque et les 5 images sources différentes dans la nouvelle colonne que j'ai faite (5 images dans une cellule). Depuis que j'ai joint les trois tables, il est évident qu'il y a 5 lignes dans la table BrandSource et affiche 5 lignes de chaque marque avec une seule image source dans une cellule. Je suis sûr que je pourrais sélectionner des marques distinctes, mais cela ne résout toujours pas mon problème de comment je peux obtenir toutes les images de la source pour chaque marque à apparaître dans la même cellule.
Voici mon code linq: (Comme vous pouvez le voir il ya quelques informations ici que j'ai omis ci-dessus pour la brièveté).
var join = from b in db.Brands
join bs in db.Brands_Sources on b.BrandID equals bs.BrandID
join sb in db.Sources on bs.SourceID equals sb.SourceID
select new { Brand = b, source = sb.Image, c = b.Description.Length < 204 ? b.Description : b.Description.Substring(0, 204) + "..." };
Et voici comment je l'utilise:
foreach (var result in join)
{
bool a = result.Brand.Active;
string chk = string.Empty;
if (a == true)
chk = "checked='checked'";
else
chk = "";
resultSpan.InnerHtml += "<tr><td><input type='checkbox' " + chk + "></td><td width='1%'><img width='50px' src='" + result.Brand.Image + "'</img></td>" +
"<td>" + result.Brand.Name + "</td><td width='60%'>" + result.c + "</td><td><img src='"+result.source+"'></img></td><td>" + result.Brand.DateCreated + "</td><td>" + result.Brand.DateModified + "</td></tr>";
}
c'est exactement ce que je cherchais. Je vous remercie. –