c# - entity framework code first教程




将模型导出到DataTable (2)

使用MoreLinq是将类转换为DataTable的最好方法,正如S.Akbari已经回答的那样。下面是通过使用System.Reflection来实现此目的的另一种方法

List<EMP> list= db.EMPs.ToList();
DataTable dt = new DataTable();       
PropertyInfo[] Props = typeof(EMP).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (PropertyInfo prop in Props)
{
    //Setting column names as Property names
    dt.Columns.Add(prop.Name);
}

foreach (EMP e in list)
{
    var values = new object[Props.Length];
    for (int i = 0; i < Props.Length; i++)
    {
        //inserting property values to datatable rows
        values[i] = Props[i].GetValue(e, null);
    }
    dt.Rows.Add(values);
}

我想将我的模型数据转换为DataSetDataTable (以Excel格式导出)

db.EMPs.ToList()

dbDataContextEMPsdataclass

如何将此列表导出到DataTable ,我可以将行导出到Excel,但是如何从标题访问列名(列名不应在DataTable手动添加)


您可以使用ToDataTable扩展方法,但需要先安装MoreLinq 。 要安装MoreLINQ ,请在程序包管理器控制台中运行以下命令:

PM> Install-Package morelinq

然后将下面一行添加到您的using指令中:

using MoreLinq;

最后你可以使用ToDataTable扩展方法:

DataTable s = db.EMPs.ToDataTable();




linq