Entity Framework 转换为 Datatable

4

有没有办法将Entity Framework查询结果转换为DataTable

或者

有没有办法将同时性表格转换为DataTable?使用C#。


3
https://dev59.com/JmEi5IYBdhLWcg3wFosL#21672867 - Tim Schmelter
1
为什么?求求你说一下你需要这个的原因。DataTable 在ORM出现之前是必需品,而现在 EF 可以提供一个填充了强类型对象的集合,这比 DataTable 更方便。 - Alexander Petrov
1
是的,我知道,但我还想知道是否有内置函数可以这样做。 - user9202791
1个回答

4
您可以使用反射和泛型来构建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();
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接