Вот мой SQL запрос, как следоватьВыберите верхний 1 результат подзапроса в LINQ к SQL
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
И я стараюсь, чтобы преобразовать эту инструкцию SQL в LINQ, как следовать
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)
};
Но проблема ее подачи me imageName
во вложенном списке, но я хочу, чтобы imageName
как строка.
Я также проверяю, используя быстрые часы, и на следующем изображении вы можете увидеть, что imageName
появляется во внутреннем списке.
все еще его показывает в виде столба сетки {image_name = f55c1573_a658_420e_9d33_2a8d997bbd51.jpg} вместо f55c1573_a658_420e_9d33_2a8d997bbd51.jpg. Я прямо дал этот результат источнику данных для gridview – rahularyansharma
@rahularyansharma, пожалуйста, просмотрите небольшое обновление - это потому, что вы создали анонимный тип для результата подзапроса: 'new {soh.image_name}'. Вы должны просто вернуть строковое значение. –
Спасибо! это работает ! – rahularyansharma