[英]LINQ select return type
在我的域服務類中,我想返回對象的一部分,但什么也不返回。
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;
}
我在哪里做錯了?
如@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
}
}
正如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
內部的loadOpKKM_Completed
。 它不在該方法的范圍內(除非您具有相同名稱的另一個屬性,否則不應編譯)。
我猜您實際上是在訪問頁面上的另一個名為loadOpKKM
屬性(該屬性為空,因為它不是臨時加載的屬性)。 檢查該頁面的設計器文件,看看是否還有一個名為loadOpKKM
的屬性/控件。
如果沒有,請列出頁面的所有代碼(包括設計器文件)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.