ich zwei Tabellen haben, die wie folgt aussehen:LinqToSql - Mehrere Unterabfragen erstellt viele Roundtrips
alt text http://www.brettrobichaud.com/images/linq.png
Ich versuche Abfrage zu generieren, die für jede Periode von ApplianceStatisticsLog zwei spezifischen StatisticsNames enthält. Unten ist die Linq-Abfrage, die ich mir ausgedacht habe. Es funktioniert, aber generiert eine einzelne Abfrage für die erste Unterauswahl, dann eine zusätzliche Abfrage für jeden Datensatz für die zweite Unterauswahl. Aua, die DB-Roundtrips bringen mich um.
Wie kann ich dies überarbeiten, um eine einzige SQL-Abfrage auszuquetschen?
from l in ApplianceStatisticsLogs
where l.ApplianceServerId > 1
orderby l.PeriodEndUtc ascending
select new
{
Time = l.PeriodEndUtc,
Stat1 = from s in ApplianceStatistics
where s.ApplianceStatisticsLogId == l.ApplianceStatisticsLogId
&& s.ApplianceStatisticNameId == 2
select s.Value,
Stat2 = from s in ApplianceStatistics
where s.ApplianceStatisticsLogId == l.ApplianceStatisticsLogId
&& s.ApplianceStatisticNameId == 3
select s.Value
}
@BrettRobi überprüfen Sie meine Antwort, wenn Sie eine Chance bekommen, sollte es für Ihr Szenario funktionieren. – eglasius