Converti DbContext in Datatable nel primo framework di entity framework del codice

Ciao sto cercando di convertire il risultato DbContext in DataTable . Ho una class cioè ClientTemplateModel che inherits DbContext . In questa class ho un object DbSet , ad esempio public virtual DbSet ImageComments { get; set; } public virtual DbSet ImageComments { get; set; } public virtual DbSet ImageComments { get; set; } . Sto usando il primo framework di quadro del codice .

Ecco la mia domanda.

 using (ClientTemplateModel context = new ClientTemplateModel(connectionString)) { var result = context.ImageComments.Where(p => p.Dcn == dcn).OrderByDescending(p => p.CommentsDateTime); } 

Qui voglio convertire il result in DataTable . Come posso convertirlo?

puoi usare il metodo Extension che converte la tua lista generica in Datatable, puoi usare IQueryable / Ienumerable anche al posto di IList, segui il codice

  public static DataTable ToDataTable(this IList data) { PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(typeof(T)); DataTable table = new DataTable(); foreach (PropertyDescriptor prop in properties) table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType); foreach (T item in data) { DataRow row = table.NewRow(); foreach (PropertyDescriptor prop in properties) row[prop.Name] = prop.GetValue(item) ?? DBNull.Value; table.Rows.Add(row); } return table; } 

se non hai usato il metodo di estensione prima di vedere msdn

fonte: https://stackoverflow.com/a/5805044/1018054

Spero che questo ti aiuti !!!