动态地将linq查询插入DataTable Rows

时间:2015-05-12 09:00:08

标签: c# linq entity-framework datatable

我目前正在寻找一种方法来动态地将LINQ-Query的所有字段(不包括ID字段)插入到具有匹配列的DataTable的行中。最终目标是将DataTable的bulkInsert / SQLBulkCopy复制到数据库中。

var clearing = from line in ReadCSVFile(e.FullPath)
               select new ClearingData
               {
               //About 200 fields are set here SNIP
               };

//Create a DataTable for Bulk Inserting
DataTable dt = new DataTable();

//Insert the appropriate columns into the DataTable
foreach(var property in typeof(ClearingData).GetProperties().Where(x => x.Name != "CSVReportID"))
{
    dt.Columns.Add(property.Name, Nullable.GetUnderlyingType(property.PropertyType) ?? property.PropertyType);
}           

foreach(ClearingData clear in clearing)
{
//Something like dt.Rows.Add(all Elements in clear.Where(field != "ID"))
}

ClearingData是来自Entity Framework的映射类型,clearing是一个LINQ-Query,它导入200-meg .CSV并创建一个包含所有行和字段的匿名类型。大约有200个字段,这就是为什么我不想手工添加行。

提前感谢您的帮助!

0 个答案:

没有答案