J'essaie de retourner une liste de résultats, où la table jointe a plusieurs valeurs, mais je veux seulement une valeur d'image pour chaque valeur de liste.Aide avec Linq to SQL; retourner un résultat de une à plusieurs relation
Le SQL est comme ceci:
SELECT
Title, Comments, ThumbNailPath, thumbheight, thumbwidth
FROM
Listings as l INNER JOIN
Images as i ON l.id = i.ListingId
WHERE
(i.ImageSlot = 1)
Ma classe repository ressemble à quelque chose comme ceci: (db.GetListings() est la méthode de procédure stockée j'ai ajouté à la section des méthodes du fichier .dbml)
private ListingModelDataContext db = new ListingModelDataContext();
public IQueryable FindAllListings()
{
//return all listings and first associated thumbnail
return db.GetListings();
}
Lorsque je tente d'appeler de procédure stockée j'obtiens l'erreur
'System.Data.Linq.ISingleResult' à « System.Linq. IQueryable '. Une conversion explicite existe (êtes-vous manque un casting?)
Je cherche des conseils sur la façon dont je pourrais appeler cette déclaration soit sql d'une procédure ou simplement structurer le LINQ pour retourner cette valeur stockée.
Ma préférence est de savoir comment écrire l'instruction LINQ. Pour clarifier, j'ai une relation de un à plusieurs sur la table des images. (plusieurs images par fiche) Je veux seulement renvoyer la première image sur une page de résultats de recherche. Donc, pour chaque liste, renvoyer la valeur de l'image où imageSlot = 1.
Je devrais obtenir une liste de lignes montrant les valeurs de liste jointes aux valeurs d'image. J'obtiens les résultats corrects dans SQL mais je ne sais pas comment l'écrire dans linq ou comment appeler le sproc correctement.
Merci d'avance et désolé si c'est difficile à lire.
Il y a une erreur SQL ici ... qu'est-ce qui est aliasé à h? –
Pouvez-vous poster le code Linq to SQL que vous utilisez pour appeler ce SP? – ristonj
votre droit il devrait être l.id je l'ai tapé dans la fenêtre mal. – Andrew