WCF/OData Web サービスは、タイプの安静な項目を 返しますvBeheer
。
クライアントで、以下を消費するメソッドを作成しました。
SRTDBEntities es = new SRTDBEntities(_serviceRoot);
return es.vBeheer.Where(b =>
b.TrackID == trackid &&
b.PersoonID == CurrentPersoon.ID );
ただし、(デバッグの午後の後)式に.ToList()を追加すると、結果セットが破損することに気付きました。アイテムのCount()
は正しく、期待どおりですが、アイテムの値が間違っています。多くは重複しており、多くは欠落しています(明らかに)。
だから私はlinqpadでこれをテストしました:
vBeheer.Where (b => b.TrackID==23 && b.PersoonID == 19 ).Dump();
- 期待どおりにサービスから正しい結果を返します。ID は「行」ごとに一意の値である必要があることに注意してください。
しかし、 .ToList() を追加するとうまくいかない
vBeheer.Where (b => b.TrackID==23 && b.PersoonID == 19 ).ToList().Dump();
これにより、多くの重複した(パターンなしで?)アイテムが発生します
この動作は予期せず望ましくありません。そしてさらに興味深い。データベースが正しい結果を返し、(Web サービスで) サーバーをデバッグすると、結果はまだ正しいと判断しましたが、クライアントに到着すると、ひどく間違った結果になります。
IT は問題になりませんが、データはとにかく ToList() を実行する DevExpress コンポーネント (DXGrid) によって使用されます。
nb: ブラウザでクエリを実行:
http://localhost:52671/SRTDataService.svc/vBeheer()?$filter=TrackID%20eq%2023%20and%20PersoonID%20eq%2019
予想される一意のアイテムのセットを返します。