İki tabloyu sorgulayan ve kayıtları başarıyla döndüren bir LINQ sorgum var. Sadece en son rekoru iade etmesini istiyorum, ama işe almakta zorlanıyorum. Tüm kayıtları bir hata olmadan döndürür.İç birleştirmeyle bir LINQ sorgusunda en son tarihi seçin
Benim sorgu:
var viewModel = from area in db.area
join sample in db.sample on area.location_id equals sample.location_id
from s in db.sample.OrderByDescending(s => s.sample_date).Take(1)
select new AreaViewModel { h_area = area, s_sample = sample };
return View(viewModel);
Tamamen sıkışmış, büyük takdir yardım! Eğer koleksiyon dönmek isterseniz koleksiyon döndürmez olarak
var viewModel = (from area in db.area
join sample in db.sample on area.location_id equals sample.location_id
from s in db.sample
select new AreaViewModel
{
h_area = area,
s_sample = sample
}).OrderByDescending(s => s.s_sample.sample_date)
.FirstOrDefault();
, o zaman, yerine FirstOrDefault()
orada Take(1)
kullanabilirsiniz: Yanlış yerde Take()
yöntemi aradığınız
Bu harika çalışıyor, şerefe! – emerfan