में शामिल होने के लौटने के लिए एकाधिक स्तंभों का उपयोग कर और समूह द्वारा इकाई की रूपरेखा

0

सवाल

मैं कोशिश कर रहा हूँ का निर्माण करने के लिए इस इकाई की रूपरेखा क्वेरी वापस करने के लिए यह चार स्तंभों:

Cidade = a.Nome, Estado = b.Uf, TemperaturaMinima = d.TemperaturaMinima, TemperaturaMaxima = d.TemperaturaMaxima

लेकिन मैं नहीं करना चाहते हैं, सिडेड स्तंभ दोहराएँ । तो मैं नहीं जानता कि कैसे का उपयोग करने के लिए समूह द्वारा बस में सिडेड स्तंभ लौटने के लिए और इस सब के चार स्तंभ हैं ।

आप मेरी मदद कर सकते?

`var cidadesMaisFrias = (from a in _contexto.Cidades
                                join b in _contexto.Estados
                                on a.EstadoId equals b.Id
                                join d in _contexto.PrevisaoClimas
                                on a.Id equals d.CidadeId
                                where d.DataPrevisao >= DateTime.Parse("23/11/2021") &&
                                d.DataPrevisao <= DateTime.Parse("29/11/2021")
                                orderby d.TemperaturaMinima ascending

                                select new
                                {
                                    Cidade = a.Nome,
                                    Estado = b.Uf,
                                    TemperaturaMinima = d.TemperaturaMinima,
                                    TemperaturaMaxima = d.TemperaturaMaxima
                                }).Take(3).ToList();`
entity-framework linq sql-server
2021-11-24 02:58:26
1

सबसे अच्छा जवाब

0

हाय :) मुझे आशा है कि मैं समझ गया अपनी आवश्यकता को सही ढंग से - आप चाहते हैं का पता लगाएं 3 ठंडे शहरों में आप DB में, सही? यहाँ मेरी ले लो. मैं मूल रूप से बस बदल गया है में शामिल होने के लिए समूह में शामिल हों, तो वहाँ है एक प्रविष्टि के लिए प्रत्येक शहर के बजाय डुप्लिकेट प्रविष्टियों. इसके अलावा, मैं ले जाया गया छँटाई करने के लिए अंत.

    var minDate = DateTime.Parse("23/11/2021");
    var maxDate = DateTime.Parse("29/11/2021");
    var toTake = 3;
        
    var cidadesMaisFrias = _contexto.Cidades.Where(c => true) // select all cities, no filter
            .GroupJoin(_contexto.Estados,
                c => c.EstadoId,
                e => e.Id,
                (c, e) => new { Citade = c, Estado = e } // here you get Citade with list of it's Estados (shoudl be one Estado)
                )
            .GroupJoin(_contexto.PrevisaoClimas,
                ce => ce.Citade.Id,
                pc => pc.CidadeId,
                (ce, pc) =>
                    new
                    {
                        Citade = ce.Citade.Nome,
                        Estados = ce.Estado.First().Uf,
                        TemperaturaMinima = pc.Where(x=>  x.DataPrevisao >= minDate && x.DataPrevisao <= maxDate).Min(x=>x.TemperaturaMinima), // first filter forecasts by date, then get smallest temperature
                        TemperaturaMaxima = pc.Where(x=>  x.DataPrevisao >= minDate && x.DataPrevisao <= maxDate).Max(x=>x.TemperaturaMaxima) // first filter forecasts by date, then get highest temperature
                    }
                )
            .OrderBy(x=>x.TemperaturaMinima) // sort by coldest
            .Take(toTake) // take 3 coldest 
            .ToList();
2021-11-25 14:27:06

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में