【问题标题】:Entity Framework to Datatable实体框架到数据表
【发布时间】:2018-11-07 23:12:02
【问题描述】:

有没有办法将实体框架查询结果转换为DataTable

有什么方法可以将同期表转换为DataTable?使用 C#

【问题讨论】:

  • 有什么用?看在上帝的份上,告诉我你为什么需要这个。在 ORM 出现之前需要 DataTable。现在 EF 为您提供了一个填充的强类型对象集合,这比 DataTable 方便得多。
  • 是的,我仍然知道我想知道是否有任何内置函数可以这样做

标签: c# entity-framework model-view-controller


【解决方案1】:

您可以使用一些反射和泛型来构建 DataTable。

例如:

   public static DataTable CreateDataTable<T>(IEnumerable<T> entities)
    {
        var dt = new DataTable();

        //creating columns
        foreach (var prop in typeof(T).GetProperties())
        {
            dt.Columns.Add(prop.Name, prop.PropertyType);
        }

        //creating rows
        foreach (var entity in entities)
        {
            var values = GetObjectValues(entity);
            dt.Rows.Add(values);
        }


        return dt;
    }

public static object[] GetObjectValues<T>(T entity)
    {
        var values = new List<object>();
        foreach (var prop in typeof(T).GetProperties())
        {
            values.Add(prop.GetValue(entity));
        }

        return values.ToArray();
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多