hier SQL ist meine SQL-Abfrage alsWählen Sie Top-1 resultieren aus Unterabfrage in Linq
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
folgen Und ich versuche, diese SQL-Anweisung in Linq zu konvertieren, wie
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)
};
Aber Problem folgt sein Geben Ich imageName
in einer verschachtelten Liste, aber ich möchte, dass imageName
nur als Zeichenfolge.
Ich überprüfe auch mit Quick Watch und in der folgenden Abbildung können Sie sehen, dass imageName
in inneren Liste erscheint.
noch seine Shows in Rasteransicht Spalte {image_name = f55c1573_a658_420e_9d33_2a8d997bbd51.jpg} anstelle von f55c1573_a658_420e_9d33_2a8d997bbd51.jpg. Ich habe dieses Ergebnis direkt an die Datenquelle zu Gridview – rahularyansharma
@rahularyansharma gegeben, siehe kleines Update - das war, weil Sie anonyme Art für Unterabfrage Ergebnis erstellt: 'new {soh.image_name}'. Sie sollten einfach einen String-Wert zurückgeben. –
Danke! es funktioniert ! – rahularyansharma