2013-11-14 3 views
0

Я знаю, что мы можем получить отчетливый на одной колонке, используя следующий запрос: Я знаю, что мы можем получить отчетливый на одной колонке, используя следующий запрос:Distinct на одной колонке в LINQ с соединениями

SELECT * 
FROM (SELECT A, B, C, 
       ROW_NUMBER() OVER (PARTITION BY B ORDER BY A) AS RowNumber 
     FROM MyTable 
     WHERE B LIKE 'FOO%') AS a 
WHERE a.RowNumber = 1 

я использовал аналогичный SQL запрос в моем случае, когда я присоединяюсь к нескольким таблицам, но мой проект находится в mvc4, и мне нужен linq для эквивалента объекта. Вот мой код:

select * from 
(
select fp.URN_No, 
ROW_NUMBER() OVER 
    (PARTITION BY pdh.ChangedOn ORDER BY fp.CreatedOn) 
    as num, 

fp.CreatedOn, pdh.FarmersName, pdh.ChangedOn, cdh.Address1, cdh.State, ich.TypeOfCertificate, ich.IdentityNumber, bdh.bankType, bdh.bankName, 
pidh.DistrictId, pidh.PacsRegistrationNumber, idh.IncomeLevel, idh.GrossAnnualIncome 

from MST_FarmerProfile as fp inner join PersonalDetailsHistories as pdh on fp.personDetails_Id = pdh.PersonalDetails_Id 
inner join ContactDetailsHistories as cdh on fp.contactDetails_Id = cdh.ContactDetails_Id 
inner join IdentityCertificateHistories as ich on fp.IdentityCertificate_Id = ich.IdentityCertificate_Id 
inner join BankDetailsHistories as bdh on fp.BankDetails_Id = bdh.BankDetails_Id 
left join PacInsuranceDataHistories as pidh on fp.PacsInsuranceData_Id = pidh.PacsInsuranceData_Id 
left join IncomeDetailsHistories as idh on fp.IncomeDetails_Id = idh.IncomeDetails_Id 

where URN_No in(
select distinct MST_FarmerProfile_URN_No from PersonalDetailsHistories where MST_FarmerProfile_URN_No in(
select URN_No from MST_FarmerProfile where (CreatedOn>[email protected] and CreatedOn<= @toDate and Status='Active'))) 
)a where a.num=1 

ответ

1

Используйте этот запрос linq после получения результата из sql. p.ID - ваше желание отличное название колонки

List<Person> distinctRecords = YourResultList 
      .GroupBy(p => new { p.ID}) 
      .Select(g => g.First()) 
      .ToList(); 
+0

Это сделало мою работу. Благодарю. – Saket

Смежные вопросы