私は当初、銀色の部分をデバッグする方法がわからないため、これはINotifyPropertyChanged/Bindingの問題だと思っていました。だから、私はforeachループ内にメッセージボックスを配置し、データがそのように返された後に値を表示する必要がありました。更新されたデータをサービスから取得するのに問題があることが判明しました。私はこのサービスを使ってサーバー上のデータを更新し、データを再ロードするためにコールバックを取得します。このサービスの部分が正しいデータを返しています(ブレークポイントを使って検証したので、結果が保持されているデータを見ることができます)。しかし、銀色面は正しいデータを得ていない。ここに関連コードがあります。WCF RIAサービスの戻りデータがサービスの2つの側面で一致しない
public IQueryable<OurClass> GetItems(string condition)
{
var result = from items in context.OurClass
where item.value == condition
select item;
return result; //had my breakpoint here and the values were the correct updated values
}
/
Context.Load<OurClass>(Context.GetItemsQuery(condition)).Completed += new EventHandler(Context_LoadCompleted);
/
private void Context_LoadCompleted(object sender, EventArgs e)
{
IEnumerable<OurClass> result = ((LoadOperation<OurClass>)sender).Entities;
//This is where I put a MessageBox to view the returned results and the data was different
//than what was contained in the other result
}
任意のアイデア何これを引き起こす可能性が?私は次に何を見ますか?
EDIT:
いくつかの例のデータはOurClass.OurPropertyは、サーバ側で「テスト」に等しくなりますが、それは、クライアント上で受信されると、それは古い値だった「開発」を等しくなります。 IEnumerableは新しく追加されたレコードを保持し、削除されたレコードは保持しません。以前に存在していたものには、新しい値ではなく古いプロパティ値が含まれます。
一つの理由です。 'OurClass'のセットを返してキー列が' int'の場合、返される各項目にはキーの一意の 'int'があることを確認してください。 (消費者側ではなく、サービス側でこれを確認してください) – EtherDragon
Key列の意味が不明です。私たちの主なキーはIdプロパティとそのGuidです。デフォルトでは、彼らはあなたが話しているものであってはならないので、明らかに同じであることはできません。私は明日もこれを調べます。先端に感謝します。 –
各データ転送オブジェクトをキーとして(プロパティで '[Key]'属性で表されます)EFを使用している場合は、このキーがデータベースから生成されます。 'OurClass'のクラス定義を見て、プロパティは '[Key]'とマークされています – EtherDragon