2015-06-08 30 views
0

我在我的LINQ查詢得到這個錯誤,我不知道爲什麼。當我運行的表是空的,但是當我添加一個破發點力的結果的話,它的工作原理髮現,並增加了在完全此表達式導致副作用,將不會被評估

private void GetSQLOraclelinqData() 
    { 

     var TstarData = GetTrackstarTruckData(); 
     var M5Data = GetM5Data(); 

     DataTable ComTable = new DataTable(); 

     foreach (DataColumn OraColumn in M5Data.Columns) 
     { 
      ComTable.Columns.Add(OraColumn.ColumnName, OraColumn.DataType); 

     } 
     foreach (DataColumn SQLColumn in TstarData.Columns) 
     { 
      if (SQLColumn.ColumnName == "VehicleName") 
       ComTable.Columns.Add(SQLColumn.ColumnName + 2, SQLColumn.DataType); 
      else 
       ComTable.Columns.Add(SQLColumn.ColumnName, SQLColumn.DataType); 

     } 

     var results = TstarData.AsEnumerable().Join(M5Data.AsEnumerable(), 
      a => a.Field<String>("VehicleName"), 
      b => b.Field<String>("Unit_NO"), 
       (a, b) => 
       { 

        DataRow row = ComTable.NewRow(); 
        row.ItemArray = a.ItemArray.Concat(b.ItemArray).ToArray(); 
        ComTable.Rows.Add(row); 
        return row; 

       }); 

     SQLDataTable.ItemsSource = ComTable.DefaultView; 
    } 

回答

0

所有數據添加ToList這樣的:

var results = TstarData.AsEnumerable().Join(M5Data.AsEnumerable(), 
      a => a.Field<String>("VehicleName"), 
      b => b.Field<String>("Unit_NO"), 
       (a, b) => 
       { 

        DataRow row = ComTable.NewRow(); 
        row.ItemArray = a.ItemArray.Concat(b.ItemArray).ToArray(); 
        ComTable.Rows.Add(row); 
        return row; 

       }).ToList(); 
+0

它的工作謝謝你如何關閉這個並給你信用。這只是我第二天在這裏 – AMore