I just got into LINQ and read the chapters on it in Pro C# 2008 and the .NET 3.5 Platform and Pro ASP.NET 3.5 in C# 2008 (both from Apress). I have run into an obstacle that I hope is not insurmountable: can I use a data projection when building a DataTable from a DataSet to be used as a datasource for a RadGrid? Andrew Troelsen (Pro C# 2008) states that I cannot, but I have found no corroboration through Google.
For example, given I have an in-memory DataSet, ds, returned from Oracle that I want to use as the primary datasource for all RadGrids in my application (in other words, each RadGrid will take a subset of data from ds). How do I make the following work?
The compiler freaks out on line #3, claiming there is no "GroupBy" function for AsEnumerable(), which is more or less what Troelsen says will happen in his book. The thing is, I HAVE to have these fields grouped.
I suspect that line #1 results in a list of datarows, which cannot be individually grouped, but I don't know LINQ well enough yet.
Any ideas?
tia,
Mark
For example, given I have an in-memory DataSet, ds, returned from Oracle that I want to use as the primary datasource for all RadGrids in my application (in other words, each RadGrid will take a subset of data from ds). How do I make the following work?
| 1 var results = from t in ds.Tables[ 0 ].AsEnumerable() |
| 2 |
| 3 group t by t.Field<string>( "MDEP" ), t.field<string>( "MDEP_DESC" ) into g |
| 4 |
| 5 orderby g.Field<string>( "MDEP" ) |
| 6 |
| 7 select new { |
| 8 MDEP = g.Field<string>( "MDEP" ), |
| 9 MDEP_DESC = g.Field<string>( "MDEP_DESC" ), |
| 10 OA = g.Field<string>( "OA" ), |
| 11 OA_DESC = g.Field<string>( "OA_DESC" ), |
| 12 FY06 = g.Field<Int32>( "FY06" ), |
| 13 FY07 = g.Field<Int32>( "FY07" ), |
| 14 FY08 = g.Field<Int32>( "FY08" ), |
| 15 FY09 = g.Field<Int32>( "FY09" ) |
| 16 }; |
| 17 18 19 DataTable dt = new DataTable(); 20 dt = results.CopyToDataTable(); |
| 18 radGrid1.DataSource = dt; |
The compiler freaks out on line #3, claiming there is no "GroupBy" function for AsEnumerable(), which is more or less what Troelsen says will happen in his book. The thing is, I HAVE to have these fields grouped.
I suspect that line #1 results in a list of datarows, which cannot be individually grouped, but I don't know LINQ well enough yet.
Any ideas?
tia,
Mark