Calrification on Linq
-
Dear friends i have small clarification on linq to SQL, i am new to linq i have query like these
select p.PatientStudyDataId,p.DicomPatientName,p.DicomPatientId,p.DicomStudyDate,count(i.ImageDataId)
From dbo.PatientStudyData as p
join dbo.Modality as m on m.ModalityId = p.ModalityId
left join dbo.PatientSeriesData as s on s.PatientDataId =p.PatientStudyDataId
left join dbo.PatientImageData as i on i.PatientSeriesId =s.PatientSeriesId
group by p.PatientStudyDataId,p.DicomPatientName,p.DicomPatientId,p.DicomStudyDatei was trying to convert to linq
var query = from patient in DataContext.Select()
join modality in DataContext.Select() on patient.ModalityId equals modality.ModalityId
join series in DataContext.Select() on patient.PatientStudyDataId equals series.PatientDataId
into JoinedSerieas
from series in JoinedSerieas.DefaultIfEmpty()
join image in DataContext.Select() on series.PatientSeriesId equals image.PatientSeriesId
into JoinedImages
from image in JoinedImages.DefaultIfEmpty()
group patient by new {image.ImageDataId,patient.PatientStudyDataId, patient.DicomPatientName, patient.DicomPatientId, patient.DicomStudyDate, modality.Modality1} into listselect new PatientStudyTransferObject { PatientStudyDataId = list.Key.PatientStudyDataId, DicomPatientName = list.Key.DicomPatientName, DicomPatientId = list.Key.DicomPatientId, Modality = list.Key.Modality1, DicomStudyDate = list.Key.DicomStudyDate, Count = list.Count() };
My Problem is inside the count in sql "count(i.ImageDataId)" like these how to do this linq? if you want to give your own linq query , you are most welcome please help me By Joe
-
Dear friends i have small clarification on linq to SQL, i am new to linq i have query like these
select p.PatientStudyDataId,p.DicomPatientName,p.DicomPatientId,p.DicomStudyDate,count(i.ImageDataId)
From dbo.PatientStudyData as p
join dbo.Modality as m on m.ModalityId = p.ModalityId
left join dbo.PatientSeriesData as s on s.PatientDataId =p.PatientStudyDataId
left join dbo.PatientImageData as i on i.PatientSeriesId =s.PatientSeriesId
group by p.PatientStudyDataId,p.DicomPatientName,p.DicomPatientId,p.DicomStudyDatei was trying to convert to linq
var query = from patient in DataContext.Select()
join modality in DataContext.Select() on patient.ModalityId equals modality.ModalityId
join series in DataContext.Select() on patient.PatientStudyDataId equals series.PatientDataId
into JoinedSerieas
from series in JoinedSerieas.DefaultIfEmpty()
join image in DataContext.Select() on series.PatientSeriesId equals image.PatientSeriesId
into JoinedImages
from image in JoinedImages.DefaultIfEmpty()
group patient by new {image.ImageDataId,patient.PatientStudyDataId, patient.DicomPatientName, patient.DicomPatientId, patient.DicomStudyDate, modality.Modality1} into listselect new PatientStudyTransferObject { PatientStudyDataId = list.Key.PatientStudyDataId, DicomPatientName = list.Key.DicomPatientName, DicomPatientId = list.Key.DicomPatientId, Modality = list.Key.Modality1, DicomStudyDate = list.Key.DicomStudyDate, Count = list.Count() };
My Problem is inside the count in sql "count(i.ImageDataId)" like these how to do this linq? if you want to give your own linq query , you are most welcome please help me By Joe
i found the answer .... i have changed these two lines in my linq query
group new {patient, image} by new {patient.PatientStudyDataId, patient.DicomPatientName, patient.DicomPatientId, patient.DicomStudyDate, modality.Modality1 } into list
and
Count = list.Count(p =>p.image.ImageDataId ==p.image.ImageDataId)
i am getting answer... anyway thanks for reading my question and answer... by joe