I have this query:
var smallExchangeReport = from ex in exchangeProgReport where !string.IsNullOrEmpty(ex.comment) group ex by new { ex.siteName } into g select new SummuryReportTraffic { siteName = g.Key.siteName, exchangeCounter = g.Where(x => x.Prog1ToProg2Check == 1).Count(), descriptions = (from t in g group t by new { t.comment, t.siteName } into grp select new Description { title = grp.Key.comment, numbers = grp.Select(x => x.comment).Count() }) }; At some point I put it to the dataTable using foreach loop:
foreach (var item in smallExchangeReport) { dr = smrTable.NewRow(); foreach (var d in item.descriptions) { dr[d.title] = d.numbers; } smrTable.Rows.Add(dr); } But I need to put the LINQ result to dataTable without using foreach loop. So I made some changes to my code above according to this link:
DataTable dt = new DataTable(); DataRow dr = dt.NewRow(); IEnumerable<DataRow> smallExchangeReport = from ex in exchangeProgReport.AsEnumerable() where !string.IsNullOrEmpty(ex.comment) group ex by new { ex.siteName } into g select new { siteName = g.Key.siteName, exchangeCounter = g.Where(x => x.Prog1ToProg2Check == 1).Count(), descriptions = (from t in g.AsEnumerable() group t by new { t.comment, t.siteName } into grp select new { title = grp.Key.comment, numbers = grp.Select(x => x.comment).Count() }) }; // Create a table from the query. DataTable boundTable = smallExchangeReport.CopyToDataTable<DataRow>(); But on changed LINQ query I get this error:
Cannot implicitly convert type:'System.Collections.Generic.IEnumerable<<anonymous type: string siteName, int exchangeCounter>>' to 'System.Collections.Generic.IEnumerable<System.Data.DataRow>'. An explicit conversion exists (are you missing a cast?) My question is how to cast the query to make it work?I tryed to cast to(DataRow) the result of the LINQ but it didn't worked.
