C# LINQ表达式在LINQPad中工作良好,但在Silverlight中返回空结果

C# LINQ表达式在LINQPad中工作良好,但在Silverlight中返回空结果,c#,linq,left-join,C#,Linq,Left Join,这是LINQ中的一个简单的左外连接(如MS示例)。 它在LINQPad中运行良好: 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

这是LINQ中的一个简单的左外连接(如MS示例)。 它在LINQPad中运行良好:

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
Silverlight域源端中的此表达式:

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);