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