标签云

微信群

扫码加入我们

WeChat QR Code

I'm stuck trying to create a dynamic linq extension method that returns a string in JSON format - I'm using System.Linq.Dynamic and Newtonsoft.Json and I can't get the Linq.Dynamic to parse the "cell=new object[]" part. Perhaps too complex? Any ideas? :My Main method:static void Main(string[] args){NorthwindDataContext db = new NorthwindDataContext();var query = db.Customers;string json = JSonify<Customer>.GetJsonTable(query, 2, 10, "CustomerID", new string[] { "CustomerID", "CompanyName", "City", "Country", "Orders.Count"});Console.WriteLine(json);}JSonify classpublic static class JSonify<T>{public static string GetJsonTable(this IQueryable<T> query, int pageNumber, int pageSize, string IDColumnName, string[] columnNames){string selectItems =String.Format(@"new{{{0}} as ID,cell = new object[]{{{1}}}}", IDColumnName, String.Join(",", columnNames));var items = new{page = pageNumber,total = query.Count(),rows =query.Select(selectItems).Skip(pageNumber * pageSize).Take(pageSize)};return JavaScriptConvert.SerializeObject(items);// Should produce this result:// {//"page":2,//"total":91,//"rows"://[//{"ID":"FAMIA","cell":["FAMIA","Familia Arquibaldo","Sao Paulo","Brazil",7]},//{"ID":"FISSA","cell":["FISSA","FISSA Fabrica Inter. Salchichas S.A.","Madrid","Spain",0]},//{"ID":"FOLIG","cell":["FOLIG","Folies gourmandes","Lille","France",5]},//{"ID":"FOLKO","cell":["FOLKO","Folk och fä HB","Bräcke","Sweden",19]},//{"ID":"FRANK","cell":["FRANK","Frankenversand","München","Germany",15]},//{"ID":"FRANR","cell":["FRANR","France restauration","Nantes","France",3]},//{"ID":"FRANS","cell":["FRANS","Franchi S.p.A.","Torino","Italy",6]},//{"ID":"FURIB","cell":["FURIB","Furia Bacalhau e Frutos do Mar","Lisboa","Portugal",8]},//{"ID":"GALED","cell":["GALED","Galería del gastrónomo","Barcelona","Spain",5]},//{"ID":"GODOS","cell":["GODOS","Godos Cocina Típica","Sevilla","Spain",10]}//]// }}}