LINQ选择返回类型
本文关键字:返回类型 选择 LINQ | 更新日期: 2023-09-27 18:28:07
在我的域服务类中,我想返回部分对象,但什么也不返回。
Silverlight代码:
private void button2_Click(object sender, RoutedEventArgs e)
{
LoadOperation<Employees> loadOpKKM = this._employeeContext.Load(this._employeeContext.GetEmployeesById2Query(1));
loadOpKKM.Completed += new EventHandler(loadOpKKM_Completed);
}
void loadOpKKM_Completed(object sender, EventArgs e)
{
MessageBox.Show(loadOpKKM.Entities.Count().ToString());
}
域服务类别:
public IQueryable<Employees> GetEmployeesById2(int employeeId)
{
var query = from s in ObjectContext.Employees
where (s.EmployeeID == employeeId)
select new Employees()
{
Address = s.Address
};
return query;
}
我哪里做错了?
作为Silverming,GertArnold说你应该首先检查你的表是否设置正确。
private void button2_Click(object sender, RoutedEventArgs e)
{
LoadOperation<Employees> loadOpKKM = this._employeeContext.Load(this._employeeContext.GetEmployeeByIDQuery(1));
loadOpKKM.Completed += new EventHandler(loadOpKKM_Completed);
}
void loadOpKKM_Completed(object sender, EventArgs e)
{
MessageBox.Show(loadOpKKM.Entities.Count().ToString());
}
[Query(IsComposable=false)]
public Employees GetEmployeeByID(int employeeID)
{
return this.ObjectContext.Employees.Single(c => c.EmployeeID == employeeID);
}
查看您的域服务,看看您是否没有犯任何错误或输入错误
您应该无法访问loadOpKKM_Completed
内部的loadOpKKM
,如图所示。它不在该方法的范围内(除非您有另一个同名属性,否则不应编译)。
我猜您实际上正在访问页面上另一个名为loadOpKKM
的属性(该属性将为空,因为它不是加载的临时属性)。检查该页面的设计器文件,看看您是否也有一个名为loadOpKKM
的属性/控件。
如果没有,请列出页面的所有代码(包括设计器文件)
正如@HitechMagic所说,loadOpKKM不在该方法的范围内。
试着这样使用:
private void button2_Click(object sender, RoutedEventArgs e)
{
LoadOperation<Employees> loadOpKKM = this._employeeContext.Load(this._employeeContext.GetEmployeeByIDQuery(1));
loadOpKKM.Completed += new EventHandler(loadOpKKM_Completed);
}
void loadOpKKM_Completed(object sender, EventArgs e)
{
LoadOperation<Employees> loadOpKKM = (LoadOperation<Employees>)sender;
if(loadOpKKM != null)
{
MessageBox.Show(loadOpKKM.Entities.Count().ToString());
}
else
{
//TODO
}
}