В моем приложении я выполняю запрос объекта. Если я использую профилировщик SQL, ловлю сгенерированный SQL-запрос и запускаю его вручную, он дает ожидаемые результаты.
Например
Val Date
68 2011-05-31 00:00:00.000
48 2011-05-30 00:00:00.000
92 2011-05-29 00:00:00.000
52 2011-05-28 00:00:00.000
32 2011-05-27 00:00:00.000
32 2011-05-26 00:00:00.000
52 2011-05-25 00:00:00.000
81 2011-05-24 00:00:00.000
Если я вставлю точку останова в свой код и посмотрю на то, что содержит LoadOperation.Entities, я замечу, что, когда фигура 'Val' для записи уже появилась (IE, как 52 выше), тогда коллекция LoadOperation.Entities использует данные из предыдущей записи (со значением 52), а не фактическая дата.
Таким образом, в приведенных выше данных мой LoadOperation.Entities выглядит следующим образом (обратите внимание, что даты теперь повторяются, по-видимому, потому что 'Vals' произошли ранее)
68 2011-05-31 00:00:00.000
48 2011-05-30 00:00:00.000
92 2011-05-29 00:00:00.000
52 2011-05-28 00:00:00.000
32 2011-05-27 00:00:00.000
32 2011-05-27 00:00:00.000
52 2011-05-28 00:00:00.000
81 2011-05-24 00:00:00.000
Кто-нибудь знает, почему это происходит?
Мой EntityQuery выглядит как
var appDataQuery = context.GetVwKeyDatasQuery().Where(d => d.KPIDate <= OverViewDate && d.GELID == GelID && d.ClockworkID == ClockWorkID).OrderByDescending(d => d.KPIDate);
И это создает правильный T-SQL, который при выполнении в SQL Query Analyzer возвращает правильные значения.
Остальной код
LoadOperation lo = context.Load<vwKeyData>(appDataQuery);
lo.Completed += new EventHandler(LoadOperation_Completed);
EventHandler -
public void LoadOperation_Completed(object sender, EventArgs e)
{
LoadOperation<vwKeyData> histResults = sender as LoadOperation<vwKeyData>;
int _count = 0;
foreach (vwKeyData v in histResults.Entities)
{.......
К этому моменту HistResults.Entities уже неверно. Буду признателен за любую помощь, так как это испортит некоторые графики, над которыми я работаю.
Спасибо
M