0
これはLINQの簡単な左外部結合です(MSの例のように)。 それはLINQPadに良い作品:LINQ式はLINQPadでうまく動作しますが、Silverlightでは空の結果を返します
from x in Nevtars
join c in Tetsziks on x.NevtarID equals c.NevtarID into ctemp
from subc in ctemp.DefaultIfEmpty()
select new { x.Nev, subc.Tetszes }
The result:
-----------------
Nev Tetszes
Őszike 1
Őzike null
Pintyőke null
Regő null
Rezső null
Szellő null
Szellőke 2
このexpresionシルバーDomainSource側に:
public IQueryable<MyP> GetTetszik()
{
var q2 = from x in this.Context.Nevtars
join c in this.Context.Tetszik on x.NevtarID equals c.NevtarID into ctemp
from subc in ctemp.DefaultIfEmpty()
select new MyP
{
Nev = x.Nev,
Tetszes = (subc == null ? 0 : (Int32)subc.Tetszes)
};
return q2;
}
public class MyP
{
[Key]
public string Nev { get; set; }
public int Tetszes { get; set; }
}
そして、 "エンティティ側" に:
DomainService1 ctx2 = new DomainService1();
xxxGrid.ItemsSource = ctx2.MyPs;
var q2 = ctx2.GetTetszikQuery();
ctx2.Load(q2);
結果が空のグリッドになります... :(
助けてください! ありがとう!
ItemSourceが変更をキャッチしましたが、再割り当てしようとしましたが、結果は同じです。私はシンプルな最初のテーブルを選択してから2番目のテーブルを選択してから、グリッドがテーブルの単純な結果を得ようとしました。 – karist
結果として、割り当てが良好です。 – karist