Reading.GetUnProcessReadings().ToList();
一次返回20個事務。我需要循環,直到它沒有返回任何交易。從方法返回的循環列表直到該方法不給我記錄
我有下面的代碼,我不認爲這是有效的:
IEnumerable<SSS.ServicesConfig.data.Reading> readings = Reading.GetUnProcessReadings().ToList();;
var gpsreadings = new List<TruckGpsReading>();
do
{
gpsreadings = new List<TruckGpsReading>();
if (readings.Count() > 0)
{
foreach (var reading in readings)
{
Logging.Log("Starting ProcessGpsFile.ProcessReading 3", "ProcessReading", Apps.RemoteTruckService);
var gpsreading = new TruckGpsReading();
gpsreading.DateTimeOfReading = reading.DateTimeOfReading;
gpsreading.Direction = reading.Direction;
gpsreading.DriverNumber = CurrentIniSettings.DriverNumber;
gpsreading.Latitude = (float)reading.Latitude;
gpsreading.Longitude = (float)reading.Longitude;
gpsreading.Speed = reading.Speed;
gpsreading.TruckNumber = CurrentIniSettings.TruckNumber;
gpsreadings.Add(gpsreading);
}
var response = client.SaveGpsReadings(globalSetting.TokenId, globalSetting.SourceId, gpsreadings.ToArray());
if (response != "true")
{
Logging.Log("ProcessGpsFile.ProcessReading: " + response, "ProcessReading", Apps.RemoteTruckService);
}
else
{
Logging.Log("ProcessGpsFile.ProcessReading: Reading.DeleteGpsReadings(readings)", "ProcessReading", Apps.RemoteTruckService);
SSS.ServicesConfig.data.Reading.DeleteGpsReadings(readings);
}
}
readings = Reading.GetUnProcessReadings().ToList();
} while (readings.Count() > 0);
是否有這樣做的更好的辦法?
**編輯* *
public static IEnumerable<Reading> GetUnProcessReadings()
{
try
{
using (var context = new SuburbanEntities())
{
return (from r in context.Readings
where r.IsPublished == false
select r).Take(10).ToList();
}
}
catch (Exception ex)
{
Logging.Log("An error occurred.", "GetPpsSetting", Apps.ServicesConfig, ex);
return null;
}
}
是什麼'Reading.GetUnProcessReadings()'返回? – Andrei
如果沒有進入Reading類,我們不知道如何回答這個問題。 – catfood
對不起,我添加了它。人們必須學會閱讀思想:P – ErocM