簡體   English   中英

LINQ選擇返回類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM