Select top 1 résultat de la sous-requête dans linq to sql
Voici ma requête sql comme suit
select enq_Id,enq_FromName,
enq_EmailId,
enq_Phone,
enq_Subject,
enq_Message,
enq_EnquiryBy,
enq_Mode,
enq_Date,
ProductId,
(select top 1 image_name
from tblProductImage as i
where i.product_id=p.product_Id) as imageName,
p.product_Name,
p.product_code
from tblEnquiry as e
inner join tblProduct as p ON e.ProductId=p.product_Id
where ProductId is not null
Et j'essaie de convertir cette instruction sql en linq comme suit
var result = from e in db.tblEnquiries
join d in db.tblProducts
on e.ProductId equals d.product_Id
where e.ProductId != null
orderby e.enq_Date descending
select new {
e.enq_Id,
e.enq_FromName,
e.enq_EmailId,
e.enq_Phone,
e.enq_Subject,
e.enq_Message,
e.enq_EnquiryBy,
e.enq_Mode,
e.enq_Date,
d.product_Id,
d.product_Name,
imageName = (from soh in db.tblProductImages
where soh.product_id == e.ProductId
select new { soh.image_name }).Take(1)
};
Mais le problème sa me donne imageName
dans une liste imbriquée, mais je veux que imageName
juste comme une chaîne de caractères .
J'ai également vérifier en utilisant espion et dans l'image suivante vous pouvez voir que imageName
figurant dans la liste intérieure .
OriginalL'auteur rahularyansharma | 2013-04-04
Vous devez vous connecter pour publier un commentaire.
Au lieu de
Take(1)
qui retourne la séquenceIEnumerable<string>
, utilisezFirstOrDefault()
qui renvoie unique chaîne de la valeur (ou la valeur null si il n'y a pas de résultats). Aussi, ne pas créer anonyme de type de sous-requête résultat:BTW
FirstOrDefault()
génèreTOP(1)
SQL.consultez les petites mise à jour - c'est parce que vous avez créé anonyme de type de sous-requête résultat:
new { soh.image_name }
. Il vous suffit de retourner la chaîne de valeur.Merci ! ses œuvres !
veuillez faire une chose pour moi est-il possible de modifier ma question titre dès maintenant ses pas l'apparence générale et peut être quelques autres de ne pas obtenir de l'aide juste en voyant le titre .
Je crois que maintenant la question est bien mis en forme 🙂
OriginalL'auteur Sergey Berezovskiy