2012-01-26 4 views
0

は、私は、単純なLINQのツーエンティティフレームワーククエリを実行しようとするコードであり、そして私はまた1によって結果の1にアクセスしたい:LINQクエリのトラブルの下

inctDomainContext innn = new inctDomainContext(); 
var exx = from c in innn.cordonnes select c; 
foreach (var i in exx) { 
    //doing something here but the programe doesn't enter the loop 
} 

なぜプログラムはしていませんforeachループに入りますか?

+0

例外はありますか?構文は大丈夫です。 – hyp

+0

exx.Countをチェックしましたか?あなたの答えは – ThePower

答えて

0

SilverlightでWCF Ria Servicesを使用しているようです。これは、EntityFrameworkを直接使用するときの動作とはまったく異なります。あなたの場合、データにアクセスするには、そのデータを「読み込む」必要があります。

これを行うには、ドメインコンテキストで "Load"メソッドを呼び出して、必要なクエリ(場合によってはGetCoordonneQuery())を渡してから、ロード非同期呼び出しが実行されるときにコールバックを渡す必要があります終了です。コールバックはクエリの結果にアクセスできます。ここでは例です:OnLoadCoordonneCompletedが呼び出され

.... 
context.Load(GetCoordonneQuery(),OnLoadCoordonneCompleted,null) 
.... 

void OnLoadCoordonneCompleted(LoadOperation<Coordonne> loadOp) 
{ 
    foreach(var coordonne in loadOp.Entities) 
    { 
     //do something with the data 
    } 
} 

(すなわち:非同期ロードコールが終了したとき)、context.Coordonnesをロードして、必要なデータが含まれています。

希望します。

0

データがありますか?

これを試してみてください:exxAnyfalseある場合

はその後、コレクション内のデータがない
inctDomainContext innn = new inctDomainContext(); 
bool exxAny = innn.cordonnes.Any(); 

、したがって、foreachは何もしません。

+0

thx!ええ。そこにデータがあります!エンティティクエリー quer = innn.GetCordonnesQuery()のcから選択c; essai_grid.ItemsSource = innn.cordonnes; innn.Load(quer);実際には –

+0

! //しようとするとbool exxAny = innn.cordonnes.Any();私はexxAnyに偽りの価値がありました! innn.cordonnesにはデータがありません!しかし、私が// EntityQueryを使うとき quer = from c innn.GetCordonnesQuery()select c。それはデータを返し、私はそれをデータグリッドで視覚化することができます。だから何が問題なの? –