在我的域服务类中,我希望返回部分对象但不返回任何内容。
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;
}
我在哪里做错了?
答案 0 :(得分:0)
作为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);
}
检查您的域名服务,看看您是否没有出现任何错误或拼写错误
答案 1 :(得分:0)
如图所示,您应该无法访问loadOpKKM
内的loadOpKKM_Completed
。它超出了该方法的范围(除非您有另一个同名属性,否则不应编译)。
我猜你实际上正在访问你网页上另一个名为loadOpKKM
的属性(由于它不是临时加载的,因此将为空)。检查您的设计器文件中的该页面,看看您是否还有一个名为loadOpKKM
的属性/控件。
如果没有,请列出该页面的所有代码(包括设计师文件)。
答案 2 :(得分:0)
正如@Hitech Magic所说,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
}
}