私のプロジェクトでBLToolKitを使用していますが、これを動作させようとしていました。私が気に入らないのは、私は分の時間を平均してテンポを平均化しようとしていますが、分単位で生成されるselect文は元の時間を選択します。私は正しくlinq式をやっていると思う(しかし、私は期待どおりの結果を得ていない)。 (これはC#、あなたが気にしているなら)誰でも何がうまくいかないのか知っていますか?BLToolKit、Linq Query、SQL私が期待したものではない
var test = (from r in db.SensorReadingRaws
where r.TimeLogged < DateTime.Now.AddMinutes(-2)
group r by new
{
Sensor = r.SensorNumber,
//group time down to the minute
Time = r.TimeLogged.AddSeconds(-1 * r.TimeLogged.Second).AddMilliseconds(-1 * r.TimeLogged.Millisecond)
} into grouped
select new SensorReading
{
SensorNumber = grouped.Key.Sensor,
TimeLogged = grouped.Key.Time,
Reading = (int)grouped.Average(x => x.Reading)
}).ToList();
textBox1.Text = db.LastQuery;
と結果のクエリは、私は昨日と同じ問題を持って、この
SELECT
[r].[SensorNumber],
[r].[TimeLogged],
Avg([r].[Reading]) as [c1]
FROM
[SensorReadingRaw] [r]
WHERE
[r].[TimeLogged] < @p1
GROUP BY
[r].[SensorNumber],
DateAdd(Millisecond, Convert(Float, -DatePart(Millisecond, [r].[TimeLogged])), DateAdd(Second, Convert(Float, -DatePart(Second, [r].[TimeLogged])), [r].[TimeLogged])),
[r].[TimeLogged]
私はbltoolkitの異なるバージョンでこれと同じことをしようとしているので、それは、BLToolKitのバグであると思われます完全に異なる結果をもたらす。 – XenoPuTtSs